Re: [python] Je k dispozici novější verze?
On 12/4/18 8:11 AM, Petr Blahoš wrote: [...] Já jsem to na začátku neřekl jasně, Chtěl jsem pouze použít ty funkce pipu, které umí vyextrahovat verzi z názvy souboru, a verze porovnat. Protože to číslování verzí, když uvážíme veškeré bety a rc a různé formáty je zatraceně složitý, takže by bylo lepší použít už existující funkce spíš než to psát, a to i přesto, že ty balíčky, o kterých mluvíme jsou moje, takže to jejich schéma verzování znám, a můžu to postavit přímo na ně. Ahoj! pip není knihovna, nemá veřejné funkce. Jeho vnitřnosti se mění dost často na to, aby se nevyplatilo ho importovat. Určité části pipu se postupně reimplementují ve znovupoužitelných knihovnách, ale parsování jmen wheel souborů v tomhle myslím není moc priorita. Naštěstí je relativně jednoduché. Jména wheelů jsou standardizována v [PEP 427]. Části jména souboru jsou oddělené pomlčkama, a verze je druhá část. (Specifikace dál říká, že ty části jsou navíc pozměněné aby obsahovaly jen písmena/čísla/tečku. Ale validní verze nemůže obsahovat jiné znaky, takže ji lze z jména wheelu korektně získat.) Verze a jejich porovnání jsou standardizovány v [PEP 440], ale tam je to trochu složitější než `name.split('-')[1]`. Naštěstí na porovnávání verzí existuje oficiální knihovna [packaging]. Chceš třídu `packaging.version.Version`. Implementace v pipu je ještě složitější, protože pip se umí postarat i o starší způsoby verzování, které už by jako wheel nemělo být možné vydat. (Ani se nedají rozumně zakódovat do jména wheelu.) Tyhle způsoby nebyly standardizované; "správně" je porovnat byl ideál kterému se dá přibližovat, ale nedá se ho dosáhnout. Pro úplnost: na verze pip aktuálně používá [heuristiku] která se snaží být kompatibilní s [distutils.version], jehož [nedokumentované] třídy LooseVersion a StrictVersion jsou sbírka černé magie (s odpovídajícím komentářem!), resp. nepovedený pokus to nějak vyřešit. Asi si dokážeš představit, že udržovat kód který takové věci dělá není jednoduché. To je asi hlavní důvod proč samotný pip nemá API a je tendence standardizované/korektní části dávat z pipu ven do knihoven jako `packaging`. [PEP 427]: https://www.python.org/dev/peps/pep-0427/#file-name-convention [PEP 503]: https://www.python.org/dev/peps/pep-0503/#normalized-names [packaging]: https://packaging.pypa.io/en/latest/version/ [heuristiku]: https://github.com/pypa/pip/blob/873662179aebbf5eacdf681078f47bbfe5ee6149/src/pip/_vendor/distlib/version.py [distutils.version]: https://github.com/python/cpython/blob/master/Lib/distutils/version.py [nedokumentované]: https://docs.python.org/3/distutils/apiref.html#module-distutils.version ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Wow! Moc pěkně popsaný. po 3. 12. 2018 v 19:46 odesílatel Petr Blahoš napsal: > >> To je na nějakých desktopech? Na Windows nebo tak něčem? >>> >> Ano. Desktopech, a Windows. Ikdyž to podle mě nedělá rozdíl. >> > > Malinkatý rozdíl např. v nástrojích, které lze nebo je vhodné použít :) > No, tak z tohoto pohledu je to rozdíl zatraceně velkej. > Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké >>> HA/nepřerušený běh? >>> >> V noci nestačí, HA/nepřeušený běh se řešit musí. >> >> >>> >>> Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují? >>> >> >> No, jen tak zběžně znám, ale nedovedu si představit, jak konkrétně zrovna >> tohle >> udělat. Já totiž neřeším problém jak na tu stanici něco dostat nebo jak >> tam něco >> spustit, ale jak co nejjednoduššeji v tom běžícím program poznat, že se >> má ukončit. >> Nebo se v něčem nějak škaredě mýlím? >> >> A nechápejte mě špatně, já to umím udělat, ale říkám si, že pip už řeší >> tu otázku, zda >> tohle je novější verze než tamto, a doufal jsem, že ta jeho funkcionalita >> půjde využít. >> > > Pip je package manager. Ty řešíš nějaký řekněme deployment. Takže v tom > cítím jistou impedanci :) Pravděpodobně by spíš řešení, které bys chtěl, > mohlo někde uvnitř obsahovat pip, než aby to řešil pip samotný. > Já jsem to na začátku neřekl jasně, Chtěl jsem pouze použít ty funkce pipu, které umí vyextrahovat verzi z názvy souboru, a verze porovnat. Protože to číslování verzí, když uvážíme veškeré bety a rc a různé formáty je zatraceně složitý, takže by bylo lepší použít už existující funkce spíš než to psát, a to i přesto, že ty balíčky, o kterých mluvíme jsou moje, takže to jejich schéma verzování znám, a můžu to postavit přímo na ně. > > ...jak konkrétně zrovna tohle udělat. Já totiž neřeším problém jak na tu >> stanici něco dostat nebo jak tam něco spustit, ale jak co nejjednoduššeji v >> tom běžícím program poznat, že se má ukončit. >> > > Takže to, jak to na tu stanici dostat, už máš vyřešené? Výborně :) Tak > stačí poslat tomu běžícímu procesu SIGTERM, což je standardní cesta, jak > nějakému procesu naznačit, že je očekáván jeho graceful shutdown. Ten nový > proces lze spustit nějak automaticky nějakým process managementem (na > Linuxu systemd, na Windows taky něco bude), nebo ten nový proces lze > spustit rovnou a sdělit mu PID toho původního procesu, aby mohl počkat na > jeho skončení. > > Nad tímhle bych doporučoval zamyslet se - aby to všechno neřešil dotyčný > program, ale spíš tooling okolo a ten dotyčný program by měl umět jenom dvě > věci - tu věc, kterou dělá, a korektně se ukončit na příkaz zvenčí :) > > Restart procesu lze řešit i včetně předání resourců (naslouchajícího > socketu apod.) nastávajícímu procesu, dělá to např. uwsgi. Ale je to hodně > pokročilé a asi to sem nepatří, jen jsem chtěl napsat, že to jde. Řešit > toto takhle do hloubky není úplně jednoduchá problematika. > https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html > Já vám ty linuxy docela závidím. > Jak tuto situaci řeším já (v našem případě pro deployment docker > kontejnerů): > - použil bych config management tool (Ansible, Salt apod.), aby na > cílových strojích udržoval aktuální verzi "deployment skriptu" > - ten deployment skript je pak zároveň i spuštěn přes ten config mgmt tool > - deployment skript se podívá, jestli je k dispozici nová verze; pokud ne, > ukončí se > - deployment skript stáhne novou verzi (v našem případě docker registry, > ale může to být cokoliv, včetně FTP, S3, nebo se to tam dá natlačit opět > tím Ansiblem) > - deployment skript ukončí předchozí instanci (starou verzi) a spustí > novou instanci z nové verze (v našem případě jde o docker kontejnery, ve > tvém asi půjde o procesy, nebo nějaké windows services?) > - hotovo :) > > Mimochodem, zrovna management dockeru zvládají config management tooly > (Salt, Ansible) samy o sobě, ale postupem času se mi nastřádaly důvody, > proč jsem si to chtěl napsat sám. To už je nad rámec této diskuze :) > > Ten deployment skript může provádět jednu z mnoha strategií: > - dělat hloupý stop + start > - trochu chytřejší stop + start + check + případný rollback > - ještě trochu chytřejší start (nové verze) + check + switch + stop (staré > verze) (aneb blue-green deployment) > - ještě víc ultimátnější start + check + koordinovaný distribuovaný switch > v celém clusteru + stop > > > Jestli se nějakým "deployment skriptem" vůbec nechceš zabývat, tak si do > toho programu udělej jednoduché ukončení sebe sama, pokud se na určitém > místě na disku objeví nová verze tohoto programu. No a prostě dostaň na > disk novou verzi toho programu. Ale můj point tady je, že v ideálním > případě by se o to neměl starat ten program, ale tooling okolo (to je ten > deployment skript). > Ano, takhle jsem to od začátku myslel, ovšem jak píšeš, že v ideálním případě by se o to neměl starat ten program, ale tooling okolo, je pravda. Docela už jsme se dostali dost daleko od p
Re: [python] Je k dispozici novější verze?
po 3. 12. 2018 v 19:46 odesílatel Petr Blahoš napsal: > To je na nějakých desktopech? Na Windows nebo tak něčem? >> > Ano. Desktopech, a Windows. Ikdyž to podle mě nedělá rozdíl. > Malinkatý rozdíl např. v nástrojích, které lze nebo je vhodné použít :) > > >> Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké >> HA/nepřerušený běh? >> > V noci nestačí, HA/nepřeušený běh se řešit musí. > > >> >> Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují? >> > > No, jen tak zběžně znám, ale nedovedu si představit, jak konkrétně zrovna > tohle > udělat. Já totiž neřeším problém jak na tu stanici něco dostat nebo jak > tam něco > spustit, ale jak co nejjednoduššeji v tom běžícím program poznat, že se má > ukončit. > Nebo se v něčem nějak škaredě mýlím? > > A nechápejte mě špatně, já to umím udělat, ale říkám si, že pip už řeší tu > otázku, zda > tohle je novější verze než tamto, a doufal jsem, že ta jeho funkcionalita > půjde využít. > Pip je package manager. Ty řešíš nějaký řekněme deployment. Takže v tom cítím jistou impedanci :) Pravděpodobně by spíš řešení, které bys chtěl, mohlo někde uvnitř obsahovat pip, než aby to řešil pip samotný. ...jak konkrétně zrovna tohle udělat. Já totiž neřeším problém jak na tu > stanici něco dostat nebo jak tam něco spustit, ale jak co nejjednoduššeji v > tom běžícím program poznat, že se má ukončit. > Takže to, jak to na tu stanici dostat, už máš vyřešené? Výborně :) Tak stačí poslat tomu běžícímu procesu SIGTERM, což je standardní cesta, jak nějakému procesu naznačit, že je očekáván jeho graceful shutdown. Ten nový proces lze spustit nějak automaticky nějakým process managementem (na Linuxu systemd, na Windows taky něco bude), nebo ten nový proces lze spustit rovnou a sdělit mu PID toho původního procesu, aby mohl počkat na jeho skončení. Nad tímhle bych doporučoval zamyslet se - aby to všechno neřešil dotyčný program, ale spíš tooling okolo a ten dotyčný program by měl umět jenom dvě věci - tu věc, kterou dělá, a korektně se ukončit na příkaz zvenčí :) Restart procesu lze řešit i včetně předání resourců (naslouchajícího socketu apod.) nastávajícímu procesu, dělá to např. uwsgi. Ale je to hodně pokročilé a asi to sem nepatří, jen jsem chtěl napsat, že to jde. Řešit toto takhle do hloubky není úplně jednoduchá problematika. https://uwsgi-docs.readthedocs.io/en/latest/articles/TheArtOfGracefulReloading.html Jak tuto situaci řeším já (v našem případě pro deployment docker kontejnerů): - použil bych config management tool (Ansible, Salt apod.), aby na cílových strojích udržoval aktuální verzi "deployment skriptu" - ten deployment skript je pak zároveň i spuštěn přes ten config mgmt tool - deployment skript se podívá, jestli je k dispozici nová verze; pokud ne, ukončí se - deployment skript stáhne novou verzi (v našem případě docker registry, ale může to být cokoliv, včetně FTP, S3, nebo se to tam dá natlačit opět tím Ansiblem) - deployment skript ukončí předchozí instanci (starou verzi) a spustí novou instanci z nové verze (v našem případě jde o docker kontejnery, ve tvém asi půjde o procesy, nebo nějaké windows services?) - hotovo :) Mimochodem, zrovna management dockeru zvládají config management tooly (Salt, Ansible) samy o sobě, ale postupem času se mi nastřádaly důvody, proč jsem si to chtěl napsat sám. To už je nad rámec této diskuze :) Ten deployment skript může provádět jednu z mnoha strategií: - dělat hloupý stop + start - trochu chytřejší stop + start + check + případný rollback - ještě trochu chytřejší start (nové verze) + check + switch + stop (staré verze) (aneb blue-green deployment) - ještě víc ultimátnější start + check + koordinovaný distribuovaný switch v celém clusteru + stop Jestli se nějakým "deployment skriptem" vůbec nechceš zabývat, tak si do toho programu udělej jednoduché ukončení sebe sama, pokud se na určitém místě na disku objeví nová verze tohoto programu. No a prostě dostaň na disk novou verzi toho programu. Ale můj point tady je, že v ideálním případě by se o to neměl starat ten program, ale tooling okolo (to je ten deployment skript). Docela už jsme se dostali dost daleko od původní otázky "Existuje nějaké API, které je schopné říct mi, jaká je aktuální nainstalovaná verze balíčku, a jestli verze na vzdáleném úložišti je novější?", ale přijde mi, že ta původní otázka moc nereflektovala skutečný původní problém. Nebo respektive API, které je schopné ti říct, zda je na vzdáleném úložišti novější balíček, by jaksi mělo poskytovat to vzdálené úložiště, tak se podívej do jeho dokumentace :) Nebo aspoň do zdrojového kódu klienta toho vzdáleného úložiště :) Verzi sebe sama by měl program znát. Nebo použiješ např. pip freeze. Verzi .whl souboru by mělo jít získat z názvu toho souboru, myslím, že je toto dokonce i standardizované, ale nejsem si jistý. Nebo používej nějaký pomocný soubor s číslem verze. Např. když si do requirements.txt napíšu " http://cdn.example.com/foobar-1.0.2-py3-none-any.whl";, případně "
Re: [python] Je k dispozici novější verze?
Jasně, chápu. pip API jako takové (z pythonu) nepodporuje, viz https://pip.pypa.io/en/latest/user_guide/#using-pip-from-your-program takže pokud k tomu chceš využít pip tak jedně tak jak je tam popsáno. Dalšé možností je napsat si vlastní parser pro pypi.org ale oficialní public HTTP API, pokud vím, neexistuje. -- Radim On Mon, Dec 3, 2018 at 7:35 PM Petr Blahoš wrote: > On Mon, Dec 3, 2018 at 4:38 PM Radim Novotny > wrote: > >> Pardon, tak tady máš API: >> >> pip list --outdated --format=json >> > > To je o něco lepší, a aby bylo jasno, jsem Tobě i ostatním vděčný za > veškeré podněty, > a když něco rozporuju, tak proto, že doufám, že se společně dostaneme k > něčemu lepšímu. > > >> A pokud to pořád není podle tebe API, tak "čo vy si predstavujete pod >> takým slovom API" ? >> >> > Není to API. Je to volání externího programu a parsování výstupu. > Analogie: os.listdir je API. > Parsování výstupu ls není API. > > -- > Petr > > >> -- >> Radim >> >> On Mon, Dec 3, 2018 at 4:33 PM Petr Blahoš wrote: >> >>> Jenže to není API. Jistěže to můžu spustit a parsovat výstup, >>> ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu. >>> -- >>> Petr >>> >>> On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny >>> wrote: >>> Tohle by mělo fungovat pip list --outdated a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo --find-links jako obvykle. Radim On Mon, Dec 3, 2018 at 4:18 PM Petr Messner wrote: > Když uděláš novou verzi aplikace, tak v následujícím deploy procesu > (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. > Tohle? Nebo něco jiného? > > PM > > po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš > napsal: > >> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, >> bude >> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím >> soubor, >> a ono mi to řekne: Je / není novější, než ten nainstalovaný. >> >> -- >> Petr >> >> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka < >> jirka.vejra...@gmail.com> wrote: >> >>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? >>> >>> Jirka >>> >>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: >>> Ahoj, tak už máme solidně fungující pip, takže když uděláme pip install -U balíčekwhl, tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho běžící aplikaci, a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto případě aplikaci ukončím, zaktualizuju, a znovu spustím). Existuje nějaké API, které je schopné říct mi, jaká je aktuální nainstalovaná verze balíčku, a jestli verze na vzdáleném úložišti je novější? Díky, Petr -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> >>> >>> -- >>> https://blahos.com/ >>> https://traceability.cz/ >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
> > To je na nějakých desktopech? Na Windows nebo tak něčem? > Ano. Desktopech, a Windows. Ikdyž to podle mě nedělá rozdíl. > Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké > HA/nepřerušený běh? > V noci nestačí, HA/nepřeušený běh se řešit musí. > > Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují? > No, jen tak zběžně znám, ale nedovedu si představit, jak konkrétně zrovna tohle udělat. Já totiž neřeším problém jak na tu stanici něco dostat nebo jak tam něco spustit, ale jak co nejjednoduššeji v tom běžícím program poznat, že se má ukončit. Nebo se v něčem nějak škaredě mýlím? A nechápejte mě špatně, já to umím udělat, ale říkám si, že pip už řeší tu otázku, zda tohle je novější verze než tamto, a doufal jsem, že ta jeho funkcionalita půjde využít. -- Petr > PM > > > > > po 3. 12. 2018 v 16:30 odesílatel Petr Blahoš napsal: > >> Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze >> balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně >> převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat, >> ale >> musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu, >> shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty >> počítače >> musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí, >> tak >> si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak >> dozvědět, >> že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má >> zaktualizovat. >> >> -- >> Petr >> >> >> >> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner >> wrote: >> >>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu >>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. >>> Tohle? Nebo něco jiného? >>> >>> PM >>> >>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: >>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, a ono mi to řekne: Je / není novější, než ten nainstalovaný. -- Petr On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka wrote: > Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? > > Jirka > > On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: > >> Ahoj, >> >> tak už máme solidně fungující pip, takže když uděláme pip install -U >> balíčekwhl, >> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho >> běžící aplikaci, >> a v ní bych se potřeboval ptát, jestli existuje nová verze (v >> kterémžto případě aplikaci >> ukončím, zaktualizuju, a znovu spustím). >> >> Existuje nějaké API, které je schopné říct mi, jaká je aktuální >> nainstalovaná verze >> balíčku, a jestli verze na vzdáleném úložišti je novější? >> >> Díky, >> Petr >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
On Mon, Dec 3, 2018 at 4:38 PM Radim Novotny wrote: > Pardon, tak tady máš API: > > pip list --outdated --format=json > To je o něco lepší, a aby bylo jasno, jsem Tobě i ostatním vděčný za veškeré podněty, a když něco rozporuju, tak proto, že doufám, že se společně dostaneme k něčemu lepšímu. > A pokud to pořád není podle tebe API, tak "čo vy si predstavujete pod > takým slovom API" ? > > Není to API. Je to volání externího programu a parsování výstupu. Analogie: os.listdir je API. Parsování výstupu ls není API. -- Petr > -- > Radim > > On Mon, Dec 3, 2018 at 4:33 PM Petr Blahoš wrote: > >> Jenže to není API. Jistěže to můžu spustit a parsovat výstup, >> ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu. >> -- >> Petr >> >> On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny >> wrote: >> >>> Tohle by mělo fungovat >>> >>> pip list --outdated >>> >>> a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo >>> --find-links jako obvykle. >>> >>> Radim >>> >>> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner >>> wrote: >>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. Tohle? Nebo něco jiného? PM po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: > Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude > na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím > soubor, > a ono mi to řekne: Je / není novější, než ten nainstalovaný. > > -- > Petr > > On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka < > jirka.vejra...@gmail.com> wrote: > >> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? >> >> Jirka >> >> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: >> >>> Ahoj, >>> >>> tak už máme solidně fungující pip, takže když uděláme pip install -U >>> balíčekwhl, >>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho >>> běžící aplikaci, >>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v >>> kterémžto případě aplikaci >>> ukončím, zaktualizuju, a znovu spustím). >>> >>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální >>> nainstalovaná verze >>> balíčku, a jestli verze na vzdáleném úložišti je novější? >>> >>> Díky, >>> Petr >>> -- >>> https://blahos.com/ >>> https://traceability.cz/ >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
To je na nějakých desktopech? Na Windows nebo tak něčem? Jde o aktualizaci programů v noci, nebo se fakt musí řešit nějaké HA/nepřerušený běh? Asi znáš věci jako Ansible, Chocolatey... V čem konkrétně nevyhovují? PM po 3. 12. 2018 v 16:30 odesílatel Petr Blahoš napsal: > Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze > balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně > převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat, ale > musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu, > shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty > počítače > musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí, > tak > si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak > dozvědět, > že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má > zaktualizovat. > > -- > Petr > > > > On Mon, Dec 3, 2018 at 4:18 PM Petr Messner > wrote: > >> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu >> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. >> Tohle? Nebo něco jiného? >> >> PM >> >> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: >> >>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude >>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, >>> a ono mi to řekne: Je / není novější, než ten nainstalovaný. >>> >>> -- >>> Petr >>> >>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka >>> wrote: >>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? Jirka On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: > Ahoj, > > tak už máme solidně fungující pip, takže když uděláme pip install -U > balíčekwhl, > tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho > běžící aplikaci, > a v ní bych se potřeboval ptát, jestli existuje nová verze (v > kterémžto případě aplikaci > ukončím, zaktualizuju, a znovu spustím). > > Existuje nějaké API, které je schopné říct mi, jaká je aktuální > nainstalovaná verze > balíčku, a jestli verze na vzdáleném úložišti je novější? > > Díky, > Petr > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> >>> >>> -- >>> https://blahos.com/ >>> https://traceability.cz/ >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Pardon, tak tady máš API: pip list --outdated --format=json A pokud to pořád není podle tebe API, tak "čo vy si predstavujete pod takým slovom API" ? -- Radim On Mon, Dec 3, 2018 at 4:33 PM Petr Blahoš wrote: > Jenže to není API. Jistěže to můžu spustit a parsovat výstup, > ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu. > -- > Petr > > On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny > wrote: > >> Tohle by mělo fungovat >> >> pip list --outdated >> >> a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo >> --find-links jako obvykle. >> >> Radim >> >> On Mon, Dec 3, 2018 at 4:18 PM Petr Messner >> wrote: >> >>> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu >>> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. >>> Tohle? Nebo něco jiného? >>> >>> PM >>> >>> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: >>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, a ono mi to řekne: Je / není novější, než ten nainstalovaný. -- Petr On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka wrote: > Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? > > Jirka > > On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: > >> Ahoj, >> >> tak už máme solidně fungující pip, takže když uděláme pip install -U >> balíčekwhl, >> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho >> běžící aplikaci, >> a v ní bych se potřeboval ptát, jestli existuje nová verze (v >> kterémžto případě aplikaci >> ukončím, zaktualizuju, a znovu spustím). >> >> Existuje nějaké API, které je schopné říct mi, jaká je aktuální >> nainstalovaná verze >> balíčku, a jestli verze na vzdáleném úložišti je novější? >> >> Díky, >> Petr >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Jenže to není API. Jistěže to můžu spustit a parsovat výstup, ale to je tupé. To už si verzi balíčku můžu vytahovat ze zipu. -- Petr On Mon, Dec 3, 2018 at 4:29 PM Radim Novotny wrote: > Tohle by mělo fungovat > > pip list --outdated > > a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo > --find-links jako obvykle. > > Radim > > On Mon, Dec 3, 2018 at 4:18 PM Petr Messner > wrote: > >> Když uděláš novou verzi aplikace, tak v následujícím deploy procesu >> (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. >> Tohle? Nebo něco jiného? >> >> PM >> >> po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: >> >>> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude >>> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, >>> a ono mi to řekne: Je / není novější, než ten nainstalovaný. >>> >>> -- >>> Petr >>> >>> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka >>> wrote: >>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? Jirka On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: > Ahoj, > > tak už máme solidně fungující pip, takže když uděláme pip install -U > balíčekwhl, > tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho > běžící aplikaci, > a v ní bych se potřeboval ptát, jestli existuje nová verze (v > kterémžto případě aplikaci > ukončím, zaktualizuju, a znovu spustím). > > Existuje nějaké API, které je schopné říct mi, jaká je aktuální > nainstalovaná verze > balíčku, a jestli verze na vzdáleném úložišti je novější? > > Díky, > Petr > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> >>> >>> -- >>> https://blahos.com/ >>> https://traceability.cz/ >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Ano. Ovšem ten deploy proces vypadá tak, že se někam nahraje nová verze balíčku, a nějaké množství počítačů si tu novou verzi musí nějak opatrně převzít. Opatrně znamená, že je nemůžu jenom tak zabít a přeinstalovat, ale musím počkat, až tam něco doběhne, zařídit, aby se to nerozběhlo znovu, shodit aplikaci, nainstalovat, a spustit znovu. Dále, ne všechny ty počítače musí nutně běžet, proto ten deploy vypadá tak, že když se počítač spustí, tak si zaktualizuje na poslední verzi, ale když běží, tak se musí nějak dozvědět, že se má zaktualizovat. A teď řeším tu část: Dozvědět se, že se má zaktualizovat. -- Petr On Mon, Dec 3, 2018 at 4:18 PM Petr Messner wrote: > Když uděláš novou verzi aplikace, tak v následujícím deploy procesu > (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. > Tohle? Nebo něco jiného? > > PM > > po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: > >> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude >> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, >> a ono mi to řekne: Je / není novější, než ten nainstalovaný. >> >> -- >> Petr >> >> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka >> wrote: >> >>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? >>> >>> Jirka >>> >>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: >>> Ahoj, tak už máme solidně fungující pip, takže když uděláme pip install -U balíčekwhl, tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho běžící aplikaci, a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto případě aplikaci ukončím, zaktualizuju, a znovu spustím). Existuje nějaké API, které je schopné říct mi, jaká je aktuální nainstalovaná verze balíčku, a jestli verze na vzdáleném úložišti je novější? Díky, Petr -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Tohle by mělo fungovat pip list --outdated a pokud máš balíčky jinde jak na pypi tak to bere i --index-url nebo --find-links jako obvykle. Radim On Mon, Dec 3, 2018 at 4:18 PM Petr Messner wrote: > Když uděláš novou verzi aplikace, tak v následujícím deploy procesu > (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. > Tohle? Nebo něco jiného? > > PM > > po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: > >> Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude >> na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, >> a ono mi to řekne: Je / není novější, než ten nainstalovaný. >> >> -- >> Petr >> >> On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka >> wrote: >> >>> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? >>> >>> Jirka >>> >>> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: >>> Ahoj, tak už máme solidně fungující pip, takže když uděláme pip install -U balíčekwhl, tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho běžící aplikaci, a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto případě aplikaci ukončím, zaktualizuju, a znovu spustím). Existuje nějaké API, které je schopné říct mi, jaká je aktuální nainstalovaná verze balíčku, a jestli verze na vzdáleném úložišti je novější? Díky, Petr -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> >> >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Když uděláš novou verzi aplikace, tak v následujícím deploy procesu (nějaký skript, nebo ideálně spuštěný automaticky přes CI) se tato nasadí. Tohle? Nebo něco jiného? PM po 3. 12. 2018 v 16:02 odesílatel Petr Blahoš napsal: > Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude > na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, > a ono mi to řekne: Je / není novější, než ten nainstalovaný. > > -- > Petr > > On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka > wrote: > >> Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? >> >> Jirka >> >> On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: >> >>> Ahoj, >>> >>> tak už máme solidně fungující pip, takže když uděláme pip install -U >>> balíčekwhl, >>> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho >>> běžící aplikaci, >>> a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto >>> případě aplikaci >>> ukončím, zaktualizuju, a znovu spustím). >>> >>> Existuje nějaké API, které je schopné říct mi, jaká je aktuální >>> nainstalovaná verze >>> balíčku, a jestli verze na vzdáleném úložišti je novější? >>> >>> Díky, >>> Petr >>> -- >>> https://blahos.com/ >>> https://traceability.cz/ >>> ___ >>> Python mailing list >>> python@py.cz >>> http://www.py.cz/mailman/listinfo/python >>> >>> Visit: http://www.py.cz >>> >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > > > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Tohle je ale API warehousu, můj balíček vůbec na warehousu nebude, bude na nějakým místním disku. Já jsem spíš doufal, že tomu předhodím soubor, a ono mi to řekne: Je / není novější, než ten nainstalovaný. -- Petr On Mon, Dec 3, 2018 at 3:51 PM Jirka Vejrazka wrote: > Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? > > Jirka > > On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: > >> Ahoj, >> >> tak už máme solidně fungující pip, takže když uděláme pip install -U >> balíčekwhl, >> tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho >> běžící aplikaci, >> a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto >> případě aplikaci >> ukončím, zaktualizuju, a znovu spustím). >> >> Existuje nějaké API, které je schopné říct mi, jaká je aktuální >> nainstalovaná verze >> balíčku, a jestli verze na vzdáleném úložišti je novější? >> >> Díky, >> Petr >> -- >> https://blahos.com/ >> https://traceability.cz/ >> ___ >> Python mailing list >> python@py.cz >> http://www.py.cz/mailman/listinfo/python >> >> Visit: http://www.py.cz >> > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- https://blahos.com/ https://traceability.cz/ ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Je k dispozici novější verze?
Neco jako https://warehouse.pypa.io/api-reference/#available-apis ? Jirka On Mon, 3 Dec 2018 at 15:48, Petr Blahoš wrote: > Ahoj, > > tak už máme solidně fungující pip, takže když uděláme pip install -U > balíčekwhl, > tak ho to nainstaluje. Teď si ale představte, že mám nějakou dlouho běžící > aplikaci, > a v ní bych se potřeboval ptát, jestli existuje nová verze (v kterémžto > případě aplikaci > ukončím, zaktualizuju, a znovu spustím). > > Existuje nějaké API, které je schopné říct mi, jaká je aktuální > nainstalovaná verze > balíčku, a jestli verze na vzdáleném úložišti je novější? > > Díky, > Petr > -- > https://blahos.com/ > https://traceability.cz/ > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz