Nova instalacija alata llm pukla je jer je OpenAI-jeva biblioteka prestala da koristi httpx

Izdanje 0.32.1 vezuje OpenAI-jev paket za Python ispod verzije 3.0.0, da bi nove instalacije opet radile. U samom alatu llm ništa se nije promijenilo: uvozio je httpx, a oslanjao se na to da će ga OpenAI-jev paket povući sa sobom, pa kad je taj paket izbacio httpx, zavisnost prosto više nije stizala. Malo je to izdanje, ali pouka ga nadživljava.

llm je alat za komandnu liniju kojim se razgovara s modelima, a instalira se kao paket za Python. Dvadeset prvog avgusta objavljeno je izdanje 0.32.1 čiji je cio sadržaj jedno ograničenje verzije: OpenAI-jev paket za Python sada je vezan ispod 3.0.0. Razlog vrijedi više od same ispravke. Šta je puklo, a da niko ništa nije mijenjao OpenAI-jeva biblioteka za Python prestala je da koristi httpx . I llm koristi httpx , ali ga nikad nije naveo kao svoju zavisnost. Dobijao ga je posredno, jer je instalacija OpenAI-jevog paketa ranije povlačila i httpx . Onog trenutka kad to prestane da važi, novoj instalaciji alata llm nedostaje biblioteka koju uvozi, dok sve postojeće instalacije rade dalje — stari httpx im je već stajao na disku. Ta nesimetričnost čini ovu vrstu kvara skupom. Ne može se ponoviti na računaru nekoga ko alat drži instaliran već neko vrijeme, pojavljuje se samo u čistim okruženjima, a izdanje koje ga je izazvalo pripada nekom drugom. Ispravka i ono što dolazi poslije nje Vezivanje verzije je privremeno rješenje, i tačno je: vraća ispravnu instalaciju danas, bez prepisivanja koda. Prava popravka je zakazana za 0.33, kojim llm prelazi na httpx2 . Pravilo koje se iz ovoga nosi dalje starije je od svih ovih paketa. Navedi ono što uvoziš. Zavisnost koja stiže kroz tuđi spisak zahtjeva je zavisnost nad kojom nemaš kontrolu, i nestaje po tuđem rasporedu umjesto po tvom — a upravo se to ovdje i desilo. Koga ovo stvarno pogađa Svakoga ko je llm instalirao iznova između OpenAI-jevog izdanja i verzije 0.32.1, a tu spada svaki posao u neprekidnoj integraciji koji se gradi od nule, svaka slika kontejnera ponovo sagrađena u tom razmaku i svako ko je tih dana pratio neko uputstvo. Nadogradnja, ili instalacija od sada, to rješava. Ako i sam isporučuješ alat u Pythonu koji obavija tuđi SDK, ovo je provjera od petnaest minuta koju vrijedi uraditi: ispiši šta uvoziš, uporedi s onim što navodiš kao zavisnost, i računaj da će se razlika zatvoriti sama, u najgorem trenutku.