-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unique list with sorted set #114
Conversation
A sorted set is optimal for this type of functionality because we can use fewer, more-performant Redis calls.
In order to ease the transition from UniqueList being backed by a Redis list, we can fallback to the legacy implementation for read operations. For write operations we first migrate to a sorted set, then retry.
Use the Redis server time as a basis. Then add the current process time. Then add to that the index of the inserted elements as a microsecond component.
Like a UniqueList, but backed by a Redis sorted set rather than a list
* main: Bump version for 1.2.0 Use pipeline for migration too Ensure to pass the pipeline to super Use block parameter to pipeline in Redis#multi (rails#68) Note tested / supported versions of Redis in the Readme (rails#79) Return counter value after incrementing/decrementing Enum Bang setter (rails#82) Add reset to Cycle after_change callbacks Add example in Readme.md Support configuring custom keys via method invocation Use bundle add instead (rails#81)
neration
* main: (21 commits) Bump version for 1.4.0 Update nokogiri for compatibility Revert "Improved version of UniqueList: OrderedSet (rails#76)" (rails#111) Add `last` to lists (rails#97) Improved version of UniqueList: OrderedSet (rails#76) Return Time objects instead of deprecated DateTime (rails#106) Fix possible deserialization of untrusted data Typecast return of Set#take (rails#105) Declare Active Model dependency (rails#107) Address LogSubscriber deprecation (rails#98) Account for time zones in DateTime serializations (rails#102) Add sample to set (rails#100) Bump version for 1.3.0 Allow Redis 5.x Add ltrim to lists Coalesce "current pipeline or redis" into the redis method itself Pefer a thread_mattr_accessor over a thread local variable Delete list of keys in batch (rails#90) Use a thread-local variable for pipeline Revert "Use block parameter to pipeline in Redis#multi (rails#68)" ...
Weird, locally I get the same errors as before: ..F
Failure:
OrderedSetTest#test_prepending_over_limit [/Users/dhh/Work/rails/kredis/test/types/ordered_set_test.rb:81]:
Expected: ["8", "7", "6", "5", "4"]
Actual: ["6", "7", "8", "5", "2"]
bin/test Users/dhh/Work/rails/kredis/test/types/ordered_set_test.rb:78
.F
Failure:
OrderedSetTest#test_prepend [/Users/dhh/Work/rails/kredis/test/types/ordered_set_test.rb:35]:
Expected: ["4", "3", "2", "1"]
Actual: ["1", "2", "3", "4"]
bin/test Users/dhh/Work/rails/kredis/test/types/ordered_set_test.rb:32
..F
Failure:
OrderedSetTest#test_mass_append_maintains_ordering [/Users/dhh/Work/rails/kredis/test/types/ordered_set_test.rb:26]:
--- expected
+++ actual
@@ -1 +1 @@
-["CTNBPOWADM", "JURQHGDWYK", "XFJHDSGYQO", "SIDYNUVGME", "ZLERYOHXUS", "PECJZYQTVW", "ULXBDIOJZN", "ZUVEMQINCK", "VDWYIZRANB", "JETWZDKSMI", "SIXUARLKDP", "QBIGFEKAYM", "CZVPKBYOWU", "DBJGHMLAOC", "LBOWUZMEXJ", "MFHLSCYNZK", "RJPXEUIKVM", "EKSFVDYLUQ", "WOHRKATIGY", "IUNTFJGYWQ", "XRHOAVFESI", "LNXCISBUEF", "UNYLXAKDZH", "AGWSXNTHZP", "UHIJFACEGY", "BNWSLMGFXK", "ESXPZYFMDQ", "JDLKZPWYMT", "FGTKBCWJAI", "DYWIEPNHVM", "BOTKIAQUVD", "HGDWJNUZVX", "YUMGPTZKAS", "AYWPKVIUNZ", "BKNSUZWOYX", "EATVCNZPLD", "MRLNQJAVCZ", "MEZQBTJWFY", "OHYNWCKDBV", "VNCQFAPMRE", "YIATMSUFBL", "FKGCAMZPOI", "JYSWDRNAKL", "DVPJCHQKRG", "NMIDVCPGKE", "WSNDMFIOPY", "AIDQMFLVZH", "KQFICUGMNW", "RQDEPMOCJB", "KMAQJTFBGL", "XDTHFUYWGK", "AKQSTOCGFP", "GPWYNVOISH", "GHRSAPCWQK", "PMEBUGYTDW", "LSQCWMGKUY", "CYISRKUDAN", "WZFXPOBNSY", "GFAUDWLKMS", "SBJMLUHKGF", "VFKOYBRXZD", "IZGPFVRTYJ", "IOFZSRGPEX", "UXOAVGMFQW", "SRNAOICKVW", "JBADKOWPHR", "BTKGFQOEWX", "LCNZJTDHMP", "SCIUQTLDGO", "TSIAOMFDWH", "PZDKVIXUFQ", "CKXUOIWTDQ", "VRELKJZIWA", "SDYTVHUKJF", "DOXRKHBCGW", "AUOLHCPKVB", "QPRZCIVSAD", "ZAUIYDLCKV", "MHAYQROWVP", "UTYRFBPDKH", "MLFDEJIUZW", "SZUXRVYKEM", "FWZTYSBKVJ", "PQEAYMVIUT", "ZWXRBHKVPU", "RQMOYBDVUF", "DQVELWKTZB", "LCDNQXTZKG", "OMYQWCEHVX", "FGDTPRXSMU", "FUVJOASDGT", "VUPXKWGDCE", "DVEROZBQXN", "GUNJAXVFPC", "DUIMVYKSEG", "XLTEBIZQHU", "WEPNVLHGQD", "QFNRIWHKLJ", "YRDQKTBAPS", "YLMKJHRPAT", "MNQDWZYRTX", "GJPWFQBYXK", "ZUXTFEVBDW", "JDUIEHKVRM", "LGKOARFSZH", "BPYZQEWMLF", "UWTFZSXOGD", "WLNMOKDTPB", "XDTAGBMCNU", "HCNPGJAVWS", "GTZLRUVKSX", "ZEMGUHAPIT", "NZSLGRUWDP", "TUELOGFYBV", "BFJGMXKDYA", "QBZPFATNCG", "ETCIKZONBJ", "PIOKWLFQTA", "ERTMKWXADL", "QHTKXVEOYG", "EABMFQZGHX", "XSENTOMHUG", "SCBXJNYIOU", "BVMWSEIXKR", "TRXLFOHAIW", "MOQEXKRTUN", "GIPTRBJKML", "OUWIQTYMFR", "LFCUTMGJYS", "NYGMUEPRFI", "OGAKNEVJSD", "FKDAUPEIHN", "QJBRSOLDNT", "CSQXOBADGL", "LORIBPEAQU", "OSYJEVIWBF", "ILVHQKTWGA", "TGHELQZOWS", "PTLNGZKJEH", "LYTIGMBHZJ", "PRFYVXIQBE", "OYIXHFGVMA", "UVQOBKPHME", "ZPKHAMIVLR", "HMGXIRKJPZ", "CXOMZEGULD", "JYPGWRXTCZ", "AWIQLXPECR", "PANMWLGCYT", "LGRXKFMUPT", "TPHKIYFMCS", "ROSVGWUMEJ", "ZUFPHANSTK", "HLOBNDQSYT", "VLSQJRUPED", "ELDHVSMBPF", "YVXCANIUFR", "EXGSRTJDNW", "RTWAZEMDHI", "LCNTMUEVIH", "PBIHYTAFZN", "RDVYFKUACN", "OUTJKMZCAN", "WTBUKZVODJ", "CZQKEGXVYJ", "ZNPEJGTBUL", "XNIDCRSFOW", "RDUXPYGVCM", "VWTZDLPHCQ", "INCEHZPKWA", "ERMIKOZPWU", "SYCJGRQLFO", "WITSDNBRCJ", "FBPSTLYAHK", "JKXGQOSFEU", "WTCKMNAGXD", "EOSRDIQYCL", "EWBFJCSYQG", "XFITUGCQSZ", "ZDBTQFEKVR", "IGDAYZLWVX", "SFHZVEQJXY", "USYLMZKTCB", "VGXKAEPOMN", "SONRYHDVWL", "ZTICXGBWLR", "OFIDYUKVTE", "GIPEKZSDOQ", "SELFHXDKMN", "CEPMXOIHDT", "TKDWCUMNQP", "TSDEPUFZOJ", "HAIBMJZXUP", "PNCBAVOWIU", "QSZDTFEAJO", "PQVFHIJMWK", "ZOAJUGXLVH", "ODFXUBSYER", "LNKJZHDCOB", "NPCRTZIKWQ", "XMHNVGEUPZ", "MKSCGUWNEQ", "PHYWRMCSKJ", "OQZDUWNBVT", "YDOVSPHKXJ", "LJAKDFYZPI", "TSAZXJWGCB", "NBHEDYUATX", "IQGJAFNMPV", "AMJYOFCXNZ", "KSJANPIEFO", "MAFVTQBWYO", "ICWDLONKRH", "QSZLBOGEKA", "HTMARJOCEU", "CALTMNZIOQ", "PBLCVHAGQT", "NIGDJWSAXF", "SAKLZXJICG", "PVYZWFCJEX", "YMTVQRKGPW", "EMFIKVOCJB", "KRIHVGTUCW", "RALIWCSBYJ", "ZHBKEQVCPR", "WMDBYJOCVQ", "MTXYPDNFKQ", "FKODUAWRMY", "OQZRYLGTAV", "IDQYMWOAPG", "UZAVFMXCTW", "FTHIBLWGSD", "FQANYBRPUE", "MELFXIWJTK", "PKJDFMEYBR", "TCUVBLHSRE", "GUJWEKRAHO", "EHBRJUQXTI", "ALZYSJRBQU", "ITJDQBXOZR", "YEKNIZXDRM", "WRISAVBZNP", "RVLKMUOGFQ", "CZVSPKJYFA", "WIUTYKGXEF", "PGKLVJUDSB", "VJZLDQETMO", "NLKXIJTHAU", "ITBURCDOGM", "UIZNAJPODH", "NTSBYCXMLI", "VELROCKUPI", "GZRTXYFMWH", "SALHTUNCFX", "XAZYKJMCFB", "XSKBMODWVZ", "CJZMWSQRHL", "OJPARKSMQE", "IYVQTEDGUH", "GBEATXKYHQ", "CFYRAVQTBO", "DQPZVSNUFK", "RXKJMENIAP", "HVDQFSNRPW", "UHDXSLVWMN", "MHTSJYLBRD", "WSJRCZOKAL", "ADCVNEQHMG", "TUOYWISKVF", "WYUNSXTFCD", "TVOBPGSUJD", "XWQIMNEHUY", "ANQMUYTDVZ", "IYNMXFTEJG", "HWIJKAGULV", "WSILDCNMRU", "NBHCXUPWRQ", "DUCNHEMVWL", "BKWUXGPRDL", "FDJXISZGMP", "LBXHURMGDF", "GTJEPMHDBO", "QOJFHKWMBP", "IAKLBFZMJC", "YVSPQMNECI", "MOIZQAYJEL", "DQJTGVFCOK", "HWBJCAVTOL", "KXMQVTDPBZ", "GWLQSJZIVU", "DMGOUIEKNL", "ISGCZTHOUV", "DJHRBWQIZY", "OKRQWMJSLH", "SMWAUZFBYO", "ILJCQUYGFX", "DOQPTEABVG", "NTHEBLQDJM", "AGIFEPSNCJ", "EWLQUSGJCH", "UPNZMVYCQA", "WXKREYMASV", "ASVZYIFMDT", "QNGVALFJZP", "NBDRZFVWIM", "GBTPWQOREL", "JKOVEGHZRX", "FHILKQZJRU", "MGPHRTKUXI", "OARVXBEHPN", "FWXGLBHYUC", "YMOXQWAVCG", "AKGYXSHENU", "JTEWBYRZIV", "VBYDZWGINH", "OYUFVZRSJM", "YTARIOVZWK", "KWYCUATPJM", "PACRHMQXUI", "CDTILMZJQF", "NKGQLZHVJS", "UVTKGCXEIZ", "XNHFUATZLR", "JAXMKGOQEB", "NOBAVGDXEP", "LXNYRWPIOD", "TZKWNVYFEP", "GYKNXZVWLF", "SAJUHQLROB", "LUDGHMFEIT", "SDMROLUWKE", "LUCMAIVKEP", "OUFYAWHZDM", "DGREOTXHNQ", "BXMTPDSOFV", "IZBHCXVQPS", "BJEHICGLSV", "YGPCDZIUOV", "BZEDCIUTAS", "EXKLNBOUDS", "KRDGFOHMZW", "ASTLMXDYNC", "QHKSWDZGRE", "EOZHSVCDPA", "JVERYXBOGZ", "CUJOMWPYSV", "ZXMQCVWRFH", "APXUNLFRQE", "INBGOZCQYS", "ZYBGIOFDMH", "HESLYRAZGX", "XZBWMTVPQI", "EORBHIZTDS", "TOFIEJACSD", "BOTPAJXUEH", "ORJFQZYEVC", "ZWSLDYECMO", "CBPXMTGRNL", "ARWBEDTUMZ", "LJCIWQUTFA", "KJIRSQDAGO", "IXASUHDBTJ", "NLBFOMRDVQ", "EGHNFXYCLM", "CKXSEZTWGR", "OUVGHBCMRX", "BDMYVXLZRU", "BVCIUQGWLE", "KBAGVPEXRD", "EQCUPOZBRJ", "YKFMJBXUZW", "ETFXDUAZPH", "KAIJQPLSTD", "XWRPGCUKOI", "AUPYEODGXW", "ZGYLOXCKBN", "ZHDBAWVJCU", "YRJDGHEIPQ", "ZQHDARTPCS", "UCVJIOBQKN", "YLAGVCDUHZ", "ZNXPIAUHYW", "IAKHEPSTFD", "EUBLNFGDRS", "SYBGNDVZPE", "WJEDYFCSHL", "SWCBFMDHJT", "VFGCJXAKZT", "PABYNDKLMU", "TOSAQGZIYJ", "JZBFNRHUAS", "KMSGHEPIAC", "MWLGVIQSCN", "LAITCUQSBV", "FVJSYXZTAR", "VCZEQOSART", "KJFDHNZTUB", "CKFVGBUAYN", "ABIZETVQRK", "VKHYUDIRPT", "UPZFQJRVIN", "GFUMENTIBK", "YOQNFIHXBJ", "CXTBHZVNGA", "NEFIRBVMZJ", "PEWNKHFOMY", "AGIOQWPYJT", "JGNQVDSZLE", "VNKJLUOIGA", "QPOSIUJFTN", "SGUIZKXTFQ", "CPLJEGXYHF", "POTUYGNDJM", "JXYDLESOBP", "BUIHXFSAJK", "XKNYOSIQMH", "ASHLCDWTEQ", "NJRMADHBOS", "JFGZAQURIB", "LFEOPGMRZI", "QESLFCRTMG", "XWETHLNQVM", "ACMWEBJVZI", "IABUZHSEFM", "ROUXCMYPZQ", "UVBZREKQTM", "BFUAEPRYIQ", "AOKIDWGCRX", "VWXTCEYZOJ", "ILKPMCAZUY", "MCEZIUYJOK", "QIHOWGDLKM", "ROFEBNKWGP", "DYHEACSNIR", "GTBYOHMNFU", "WGDMLNEIKF", "CBKJDRQVUI", "EFKTCVOWNX", "MGWLUQPYJO", "VBSOUGQKYX", "WVHPUXZGYO", "UWMHOIZFKB", "MFTBXPKWNL", "JAHDFIZXCR", "WAUXOYBMSF", "IOJMBFVAST", "XUTQVCYFLD", "FRULVGPIJM", "GCXDMNHIRW", "NTIJKAFEVP", "KLXEYQRWDG", "ELJXQTNIPO", "YMNVAILTOP", "FXZSGTUBDL", "DXKZNOMRQP", "GIHXPZWNSB", "TOCBLSRYVQ", "EXMAHIKRJZ", "YDLOMRACFP", "NXZTYFKABD", "IVBTMHSQOF", "CAPWBDRELJ", "MYSGPLKIOV", "JBWOEMZTPF", "RYVECOAZKW", "IPHEUWYGOF", "ZMRHBIASJF", "HNVMXCGEDB", "CXMVNYGKFO", "YHGICPTROX", "KRWSYLUGJB", "SQMIJKTZAF", "WQPBJVZTNR", "IKVBTYRQNL", "WSVKHQDIPA", "NQIHBLXVCS", "IJMPVHANUG", "XGNBOCHTQL", "DJGLQVHKPN", "NBMCATVGXU", "SLWGFBPQMT", "XBVPQANCWH", "GRLJFTZYXA", "NOFGUJEISZ", "OBMSLVCZRP", "XGLBZPKFRS", "UPFTGLCBDJ", "ZOIGMJWUBE", "XFSZKTYMRC", "TNFSPHAZIX", "RNVDLIFPET", "VRDBIEXNYK", "ONVPCEUKQZ", "KDLOHINCAE", "MFQHERUYCL", "TSBMNYIQFA", "YMETUCWBPN", "FBZHAGTXEO", "VKZCRGHSUE", "JHBGRVWQKC", "TJALSMZVKP", "LNMDXYKRGV", "PGAIJHWMCU", "VHYCONMGUR", "EZFXKMWGUY", "XWJVGKOIPT", "DETNBPGKAQ", "ABYZVXDRKQ", "MDCGHNFSVY", "CKVSEHXWRT", "TQWEUOINRS", "LSZAPBHNYK", "MJACTRXELB", "QOMTZLGFID", "ORIFPZLGBX", "IHFUXRCQME", "EZDQHOAVRL", "XEGWOQBIZN", "SCAPJZLHNU", "UOLEAHVCMK", "MHQEDLJVZA", "FZNDTUMJPV", "EFVZUJAHPK", "OJSNMUTRVH", "GFDQCVIOMX", "ZSBINMUQYF", "BJLVISDNMP", "VWECNPRHIS", "KBVPNRDOUL", "GFXLYJURNE", "RGCYITXMQE", "QEUSYVGTWX", "JQFKMHYZEI", "YPIVLWDXZA", "JZAKGEBNDO", "FGWVMYDNHJ", "KWTUQJMRHL", "LUNXTFMIQH", "SFDQLRXAYC", "FBKITLSAQP", "YOJHPMKALB", "ILTFUAMYWZ", "BPQUZHFNVS", "ABSGZJIYOF", "QGFUYKJRLZ", "WDKYGULZJM", "JDIPGTLOXU", "PFZSJCMOVH", "VKUMXWSACI", "GURNCISBXD", "PVELUNOGAD", "TVYZEXFAQO", "JTWFVQEABC", "DFENKISPJC", "QTFWPKZECD", "VZPLJSUNDQ", "VRNXMJTZSD", "AZWKMEHBQC", "YFXMGUIKTD", "ZCIAWHJGDT", "RUMYTPSHLK", "ONBSTEDAXY", "PTMOQUECDX", "OXTKLAMUDY", "MGQITNPKHC", "LJRKDPVZTY", "OUWYDLKARC", "AODKBESIPM", "QEPFSNRUYO", "OJUWFCIQBS", "RKBZYNIFMH", "INCTZAKPLB", "NTYWAJVZUX", "AYWKETVNLI", "RHBOEGIMUC", "GPISDVNMUH", "HUWENDBVOQ", "BLJSRZYDIW", "TUIMXPVSWD", "LTQCAVWUXG", "NPTVEIGXBH", "GESQBAXPHF", "RGEOYJLUTA", "ELTKIBJNGP", "OILBNWGCRU", "VJOKPWSXCF", "XJOFYSTBWL", "YJTFKMSGZR", "YSDTLZKGCJ", "POSJWRKLFC", "FKLUGIQANW", "LXZIHMUYJG", "QSLTDKRZJF", "QXETCZBSGR", "YUDQBNOVHJ", "HDPWFQXCMU", "CTOPZHDXRS", "PIDLTKRYFX", "AQWMIRHUBO", "HMYSKWBVIE", "EYJTGAWPLS", "TKIYLBMRJW", "ZSPYJHBADF", "LQPHSJDZOA", "VAPZFDLTSO", "GWMPEBQCDI", "YIRTHLCEBS", "BUIMNTCHWK", "FBJOWNQSID", "CNHAMDIULP", "PYBZMOSVRL", "ZFKYECOLNB", "CBWLQDXAHJ", "NWETOXHPUG", "IRXGWOADYB", "IGKXFRTEZW", "QXMOTVWRYA", "SDCZFQOGPH", "LXIWSFTZJE", "EWBAZRXUOL", "XKATMLSBZR", "OKSIPYVJZG", "PIKGDHABJX", "XDYHMGCQOL", "TDECNJSXHU", "SWPUTNJGML", "KNZEWMORFX", "FLVCYQTRNH", "BTMUKISXJN", "PWVGZFQTOI", "GKBACSMTVX", "KYUPCBZJLI", "OURIJDCLZH", "UDLOWKJHTR", "IPBLMRZVJD", "GKUAJCVEQL", "ORZYHQNFDT", "ZPGITFCJAO", "DRXUMYQWJN", "BFRNLCXEVZ", "LDROFTEXMV", "CGHDPTNIVA", "KCHDRFWXYZ", "GTEZYICAKD", "TCHJQPMDFX", "VZWXQGHPNK", "DBNKHSMAZG", "VZCILRNHXA", "WOHGSAIEMR", "LTYHPIRNZD", "PFSXUHYBWA", "FJYWDZNTBP", "YPRTEIOKHW", "PGTNVUWCAQ", "KQHTSGPVBJ", "FTVBORMKWY", "KRTABNMLDJ", "YCKOWQXDIE", "DXYQGWNELB", "KDFRVMLGJZ", "AZITOMQCHN", "KNDLPAWCVT", "ARJTYIUDHO", "BTIJNQYXCO", "UCJTSXVPKF", "MAJPLHVNZB", "KFUEILBMYH", "KIVCFHYUZJ", "KTOGSLAYVQ", "WOUKBNEHAZ", "QSBMKWPNHY", "DXHLECRYKA", "NTQDFSGJAV", "BNWTVDQJHY", "HDCUQTKSMG", "XDBPCEMGNZ", "WKCAFRSEJQ", "FYPZIRLGSU", "HCXQWJRMLK", "CNWZTOQEPX", "ONHUPDKQJL", "QNSVAJEBZC", "XSHUOFBPVT", "HGCYEMTAIQ", "STVUHWCPJD", "YJPTUVZHLI", "YRQDPBGEOK", "MQEJVLZHSC", "TXVSOHEDUZ", "XCDOULWKSY", "LMERBDIHUK", "XRHJMGCIFY", "JBWCGARVZN", "GUCPHILZNA", "ITWBLXCJOS", "QTMSCINFPA", "OBJDQAVKXL", "SUBXEIFJPQ", "XDJVBPLNHY", "MGHEBZCUIL", "NLZISDMUJQ", "QRXPETAYOH", "TAJDVMBGRO", "SKPJNDXHYT", "RIYTPAVJDB", "ARNWTIXZBE", "HCRPLYDSUG", "NRDGJZFEUM", "QDEPGFARXL", "LHBTMICQNO", "UBYCVEAIMK", "DLYCNBTOFH", "TBOPGCYQHA", "PDIWLEATMV", "FKXRSILOJW", "KGAFDWPEHI", "ZCXGUMNAPE", "WJERPSLGQU", "FRWMQBODUP", "WIBZMYGLRC", "ZKGFTXNIQB", "PDRLQIMOJV", "KAJECHFZUO", "SKDPVOLGRB", "JOXQUVSAWG", "IOHZKAUFPC", "RZULNAYGCD", "GTADRNHYWV", "HVXPTLDGFQ", "NXOFWAGQJD", "XBSWMHZUNJ", "ECOKBTJLFS", "HFDQJZPOLI", "DCANFSQHWT", "MCHWYFZRKG", "NLHJZCRMTV", "PCVZSOTWKJ", "HEKLJDIPOW", "HQBTEFWLGJ", "TCQWYPGXIN", "LBYPQKINMW", "LYVKEINQGO", "NCTMELFIZK", "PLBTAJVQKX", "LECBNRGUWF", "MRINLUEZSJ", "PTRFKIDLVZ", "DYHPKWBXGA", "OKXRIGBDFT", "ILXAOWNUTC", "BOZNKFUGTM", "IYVTRPXECM", "NHJMYXALZW", "PVHALCEMBG", "HYZRWUGJBF", "RPQVDWHOMG", "HUZBYNKPWF", "OMGFYBDQZI", "VBYEXLDFMH", "XDSUOYAEBZ", "QDBLKUACMH", "EICYSDNMQH", "OXFUAVZKDN", "WFURDALGVI", "EQCXHRDFZS", "ENIWPJZDKB", "HAGJIFKPDM", "OVKJDETLCN", "ANBIFOKXGU", "ZEOJMSANGP", "OKMJNAUTYD", "JELTYRAVIF", "CUZOYKTNDF", "UQYIPSMEHK", "NLCDVKGROA", "ZWQMPTFVUB", "SBFVWPJAKL", "ZSJOKEMYVR", "AYMEGBXFZN", "VUCTAZYXJR", "TIKCPWGXRH", "YCFLHGDQBR", "IZXNBHUVQE", "NVIMZDRJSP", "NOIKZDFHMG", "SKIDMGHEVR", "WLRTJHAGVD", "MTPXBVCNZQ", "CQHRWFLTSP", "JWYTUHPRGV", "LTBCQJZWSN", "PBRCWNDGAU", "ZUFTAHRMBJ", "OTSLAWVEJX", "NGTYPBSEDA", "WCUEPTNJFD", "DZHJQOBVGE", "SBEJXNKVYC", "QCXLMZBVUE", "VAETWZBLFR", "MVCIJGNXST", "KPFQVBDUAE", "EIFVJYRKPM", "GZEOVAXFDU", "OECNSQHZKD", "WZCKSEOYLX", "AGFBNYZVWQ", "OMETJAZUQR", "YNIGOBRMUT", "APIUWCGTBK", "CEXFHPARBG", "HYQREUCJLP", "NQWGYZEDPV", "BYJXKHZGPD", "BCUMSIOGQA", "VZQYUCFNIP", "KQXFNTLBYJ", "LDSBITYVPH", "UOIDQMTSJB", "JQIWFSEPRM", "XNEZOYAKBQ", "RPKSVOTGXC", "RJBOWLFQNP", "ACIDBMFWZG", "PBRLVCFWJQ", "QAZXFUJVLT", "YMAXWBHKDR", "ECWHLFONXY", "SOTNVXCGEH", "DKCTOUPBGA", "YBUMOGNTLR", "FZYJCAKRIW", "MFQYNWIPHC", "QJSGAFIZMY", "HETWOBPYCL", "POUFQKMLTV", "UBFDTGYIEL", "XUHCBFTNDQ", "RTJMYUIXGZ", "WPOLBNUQFH", "ZOWQJNKECT", "YWEZQKTOCV", "EPDZRCHKWA", "ZVOGWESXBC", "INKETBWPRJ", "AKFCGNYXJD", "MHZJNIFCKL", "CYUDSVAPWM", "KEOMLDVIZB", "BPRYZGVTSL", "GPISEBRHFQ", "EJIOKVFAHM", "LIFBDPCMUQ", "QUKATMGRIH", "XDNFUSBMVZ", "XSVIMTUGBR", "RFBITEAUQL", "VUPXCETDAR", "GDENRAYXFC", "IEANQXYOJU", "NRMXWQUHFS", "DHBPVMJRZQ", "NKMRYXIQGE", "YAFHJRZOSN", "DBJQZMSVHI", "OXSZNVWCQM", "JPHMISAGEX", "AGELVQYFOM", "MUXOBRTKQS", "PXJTMISHDW", "IJGATFMXDY", "TLBPVNKSGI", "CLWGDFMKRP", "TUQNMEFPIS", "GCYBOWXTKM", "VPDYUQMOSX", "AQMLWETDGY", "JUFAWVMQDE", "JMERNAWFVD", "QBRNCIEXDM", "EGZNHYTOPB", "PWRGTMSBNQ", "XGHEPZLIQN", "UZFQEXTGPK", "RUTVFIKBNW", "JIACEDBPWT", "DLHGNXSOUE", "ZNLHXABVJS", "KPLETQYZOX", "RTYFMBANCO", "OETJHFUALR", "YDGHBMZOLN", "EGFQZOLBVX", "WGZHPKYOJV", "BNPMGKSAHO", "DFIULCBSVH", "NYXOPLVCIW", "EKFDZVMAHU", "TQOALVRWHF", "YVWSTJKPNM", "MFDYVKQSXO", "LDAGMIJRES", "LRIBJFSOXE", "IJPWHANRQB", "FXNLECSIMG", "NWUGDVAMRK", "MXWJGSRPID", "KBZSWTOXPF", "ERTYJQBVUS", "EGRLYIUDPX", "OXSBUQPDJH", "GYBQRTVDXJ", "NURTKZIEGW", "YQHZSBLIRA", "XTRZYVHGON", "YNAVWEFBUR", "AXVSDMETBY", "JEXLFRCUPT", "KILRBNQFAX", "HMYQNRWBSK", "WTSAQZUDKG", "GTZVCKHRME", "XCPZUABRYW", "NCEVGPJQOK", "WNHTVDZEIB", "QRUVLTYFSM", "IQAYUZDJFX", "XTFPVZGENQ", "GTCXWZHPAY", "NQWVOYHZCR", "DQUCJXAKBM", "CIVZTOJFSG", "LETSJQBGXV", "XCOMUZVNIF", "SYHPNAOCWM", "YATOXCUZVM", "VDKAQOENZT", "GKSBIRQELA", "JEMROGZYLH", "QXIZPWJROY", "LWUYMNCSZP", "HZVSPFUEYB", "YVSGMFBWJT", "DHKJZRCAST", "CHOBKYTIFX", "PDTOZMEUIS", "VSGTENZWDO", "RKXNDOZIWE", "EBYIADNZXT", "HALPEMQFOW", "TBIRPJUZQA", "OKTRCSGLUM", "RWJDEFQYGN", "EZFYANPDVL", "PCHFJEMTGW", "IMVLWZXKPY", "MHXPVIRDUN", "DKFRHQXBJS", "VCFKZYUDJW", "RKBAQHYMXD", "NRFLTVCOYZ", "PDBVZHJSOR", "LJMQCDKWGH", "XSPLDYKBGV", "MZBJPAUWYT", "PLKAHTGCSE", "YUPFBDAHXV", "IBDJMGYKEO", "ATHZRMWCYS", "LCOTJXIENY", "JXLPEMURSC", "KPBYMJWUXS", "FIHJKXCEYV", "RCVGMIDYJH", "RVKICNSBGH", "SCYMIZQWFH", "HYLRVDFIXO", "XQBMRNEASC", "ODSZAEBUFT", "KODSIRVTGE", "TIDNFPUCKB", "KZGSXNAQYE", "JKCQVGIUSB", "VTSMDFBHUW", "MPHRGDZSXU", "CTHORNGZAF", "TADZOKNGWJ", "KBANZVSRFP", "JBIGSYVTHW", "LFWHAGOMCD", "KJZMPTCRUV", "SRZGPFTOXI", "XERJZQAVSW", "KUCYLTHESJ", "WZYPIMECSX", "DMVYGCTZEU", "OKHQVETNSA", "PQESWTRHOL", "BSYCIHFTXZ", "QFBSJVMARO"]
....F
Failure:
OrderedSetTest#test_prepend_nothing [/Users/dhh/Work/rails/kredis/test/types/ordered_set_test.rb:47]:
Expected: ["3", "2", "1"]
Actual: ["3", "1", "2"] But they're not triggering on CI. Maybe a version issue?
|
Thanks for flagging that @dhh. I noticed from your prompt you're running Ruby 3.2.2 locally and tried the same version. I was able to reproduce what you saw. After some investigation it turns out the better performance of Ruby 3.2.2 meant the score generation relied not only on process uptime but also on the element index, and there was bug there where I was incrementing instead of decrementing the score when prepending elements. Fixed in #115 |
…tialize * origin/main: (22 commits) Add kredis_ordered_set for OrderedSet usage in models Add a development console Bump version for 1.5.0 Fix ordered set prepend bug (rails#115) Unique list with sorted set (rails#114) Eliminating Ruby Warnings (rails#112) CI against Redis 7, Ruby 3.1, and Ruby 3.2 (rails#113) Bump version for 1.4.0 Update nokogiri for compatibility Revert "Improved version of UniqueList: OrderedSet (rails#76)" (rails#111) Add `last` to lists (rails#97) Improved version of UniqueList: OrderedSet (rails#76) Return Time objects instead of deprecated DateTime (rails#106) Fix possible deserialization of untrusted data Typecast return of Set#take (rails#105) Declare Active Model dependency (rails#107) Address LogSubscriber deprecation (rails#98) Account for time zones in DateTime serializations (rails#102) Add sample to set (rails#100) Bump version for 1.3.0 ...
See #76 for the details of this change.
Follows the revert in #111 and updates #76 with support for the changes to the way pipelines are used in #78.
See 44e765d which adds support for the pipeline changes.
cc @dhh