mgorny, Polish Typowa sytuacja we współczesnym #OpenSource, na przykładzie ekosystemu języka #Python.
Wiele projektów używa biblioteki #FreezeGun, by nadpisywać wskazania zegara na potrzeby testów. FreezeGun powoli przestaje być rozwijany. W końcu zaczyna mieć problemy z nowymi wersjami Pythona. Dystrybucje, takie jak #Gentoo, są odporne na te problemy, bo mogą łatwo dodać lokalne łatki.
Tak więc projekty zaczynają korzystać z #TimeMachine. Niestety, time-machine opiera się na hakowaniu detali implementacji CPythona (w imię wydajności, bo przecież nadpisywanie czasu w testach to wydajnościowe wąskie gardło), więc na #PyPy nie działa w ogóle. Niektóre projekty wspierają FreezeGun i time-machine równocześnie, inne nie.
Czasem time-machine łapie segfaulty na CPythonie. Z czasem coraz więcej segfaultów zostaje zgłoszonych. Nie ma więc zaskoczenia, że nowe zgłoszenia błędów nie spotykają się z odpowiedzią. W międzyczasie, FreezeGun na nowo zaczyna być rozwijany. No i zgadnijcie, co teraz się dzieje…
https://github.com/aio-libs/aiohttp/commit/a7bc5e9eeae7c5c90898411962e9a74bf10a9cef
https://github.com/aio-libs/aiohttp/commit/43f92fae09bcc9692ee96ac1413eda884afa2f63