Portál AbcLinuxu, 19. dubna 2024 03:25


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
Josef Kufner avatar 6.6.2018 12:00 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: version
Odpovědět | Sbalit | Link | Blokovat | Admin
Obvykle verzi v programech řeším tak, že při buildu si někam uložím výstup z git describe. Prostě vygeneruju jeden malý soubor, který obsahuje definici konstanty, nebo je součástí konfigurace projektu.

U mnoha projektů je vidět ručně udržovaný ChangeLog a commity, které takovou konstantu někde upravují ručně, ale nikdy to není o moc víc jak jednořádková změna. Proč to tedy tak komplikovat?
Hello world ! Segmentation fault (core dumped)
Salamek avatar 6.6.2018 12:05 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Když mam vice jazyku / build scriptu / configuraku v projektu, tak to proste jednoduše nejde, zkoušel jsem používat single point version storage, ale vzdy to dopadlo nějakou prasofunkcionalitou v urcitch skriptech...
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Salamek avatar 6.6.2018 12:12 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Vlastne odpoved je primo v prilozenem konfiguraku, kde se meni verze v PKGBUILD pro archlinux, verze v setup.py (kde byla dříve naprasená funkce co lovila verzi z version/__init__.py) a pak finalne uprava v version/__init__.py kde se drive nachazela taky pochybnost...
A hlavne nezapomen na to ze nektere projekty maji verzi napriklad v hlavickach kazdeho souboru, dokumentaci a tak podobne...
Takhle jsem mohl vsechny version prasarny vyjmout z projektu a nechat tam ciste stringy... navic to za me resi git add+commit+push+pushtag a hlavne mi to nedovoli vydat verzi kdyz mam v repu neulozene zmeny.
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
6.6.2018 14:16 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: version
Tohle se dá často automatizovat pomocí atributu export-subst (viz gitattributes(5)).
Bystroushaak avatar 6.6.2018 12:09 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: version
Odpovědět | Sbalit | Link | Blokovat | Admin
Osobně používám v python projektech parsování changelogu:
#! /usr/bin/env python3
from setuptools import setup
from setuptools import find_packages


changelog = open('CHANGELOG.rst').read()
long_description = open('README.rst').read() + "\n\n" + changelog


def get_version(data):
    def all_same(s):
        return all(x == s[0] for x in s)

    def has_digit(s):
        return any(x.isdigit() for x in s)

    data = data.splitlines()
    return list(
        line for line, underline in zip(data, data[1:])
        if (len(line) == len(underline) and
            all_same(underline) and
            has_digit(line) and
            "." in line),
    )[0]


setup(
    name='...',
    version=get_version(changelog),
    description="...",
    long_description=long_description,
    url='...',

    author='...',
    author_email='...',
    license='MIT',

    packages=find_packages('src'),
    package_dir={'': 'src'},

    zip_safe=False,
    include_package_data=True,
    install_requires=open("requirements.txt").read().splitlines()
)
blog.rfox.eu
Salamek avatar 6.6.2018 12:17 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
No tohle ale pravě resi jen setup.py a CHANGELOG.rst co pak ale s PKGBUILD, hlavickami etc. BTW pouzival jsem neco podobneho, ale nakonec me to nasralo :-D Jinak opreni o changelog neni spatny napad, mozna tam pridam spravu/automaticke generovani changelogu a odpadne srani i s changelogem :-)
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Bystroushaak avatar 6.6.2018 13:24 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: version
Já jsem jeden čas skládal changelog z git logu, ale pak mi došlo, že je to v podstatě nesmysl a že uživatele zajímají spíš ty podstatnější věci (změny api, nová fukncionalita atd), než každá blbost co jsem commitoval.
Salamek avatar 6.6.2018 16:27 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
No me napadlo ze by se commity braly jen takove co by vyhovovaly danemu regexpu ktery si nastavi v .version.yml.
Napr. Commit musi zacinat velkym pismenem, koncit teckou, obsahovat alespon 4 slova a za teckout koncit (Closes|Fixes)\s+#\d+. Protoze dulezite commity by mely mit sve Issue... to alespon cloveka donuti nepsat sracky do commit messages... jinak si bude muset CHANGELOG doplnovat rucne :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Josef Kufner avatar 6.6.2018 18:56 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: version
Spíš by dávalo smysl dát do komentáře commitu nějakou značku s textem a ty pak sesbírat do ChangeLogu. Ale takový komentář se klidně dá připsat do ChangeLogu rovnou a je to bez komplikací.
Hello world ! Segmentation fault (core dumped)
Salamek avatar 6.6.2018 19:20 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
A nebo se taky da rovnou na changelog vykaslat :-) No ta tvoje znacka je vyresena v tom mem predchozim navrhu, proste misto spravne formatovaneho commitu budes v regexpu hledat onu znacku... No zkusim neco vymyslet a otestovat jak mi s tim pujde workflow. :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
6.6.2018 18:13 marbu | skóre: 31 | blog: hromada | Brno
Rozbalit Rozbalit vše Re: version
co pak ale s PKGBUILD
Vygenerovat, případně přegenerovat, ten PKGBUILD na základě setuptools metadat z setup.py? Navíc nevím jakou výhodu má mít PKGBUILD soubor přímo v repu s kódem, když aby to k něčemu bylo, stejně ten PKGBUILD musím udržovat v AURu.
There is no point in being so cool in a cold world.
Salamek avatar 6.6.2018 19:32 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Vygenerovat, případně přegenerovat, ten PKGBUILD na základě setuptools metadat z setup.py

A na to existuje nejaky tool ?

Navíc nevím jakou výhodu má mít PKGBUILD soubor přímo v repu s kódem, když aby to k něčemu bylo, stejně ten PKGBUILD musím udržovat v AURu.

Protoze mam CI (na vlastnim HW) ktere mi buildi balicky pri release do meho arch repa a je to tak pro me pohodlnejsi nez to lovit nekde na AUR ?

Jasne mohl bych v CI udelat release, stahnout archiv, spocitat sha256sum, vygenerovat ten PKGBUILD a nahrat jej na AUR, a pak ten balicek sestavit a uploadnout do repa. Ale to je ted pro me zbytecna prace. Ted jsem se jeste dival na AUR a zda se, ze se tam da vlozit jen jeden public key (netestoval jsem) a to situaci celkem komplikuje kdyz CI nemuze mit separe keypair.

Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Salamek avatar 6.6.2018 19:41 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Ah tak kecam: Tip: You can add multiple public keys to your profile by separating them with a newline in the input field. Takze v tom neni problem
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Salamek avatar 6.6.2018 19:35 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Ale samozrejme mas pravdu ze by se hodilo mit PKGBUILD na AUR, ale neni to pro me ted priorita protoze ja uz mam sestaveny balicek v repo :-) A dokud nekdo nevytvori issue ze mu vadi ze neni v AUR...
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
Salamek avatar 6.6.2018 12:20 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
No a hlavne je pro me super jednoduchost kdy proste dam
$ version +
a mam hotovo :-D
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
6.6.2018 13:57 horada | skóre: 3
Rozbalit Rozbalit vše Re: version
Odpovědět | Sbalit | Link | Blokovat | Admin

Gitlab link => 404 The page could not be found or you don't have permission to view it.

Bystroushaak avatar 6.6.2018 13:59 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
Rozbalit Rozbalit vše Re: version
On gitlab se docela hroutí pod náporem. Dával jsem před chvíli importovat nějaké moje repa z Githubu, jen abych si to zkusil a několikrát to hodilo 500.
Salamek avatar 6.6.2018 14:09 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Sorac, ten projekt se naimportoval jako private, a ja si toho nevsiml... ted uz by to melo byt ok
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
6.6.2018 14:28 ewew | skóre: 40 | blog: ewewov_blog
Rozbalit Rozbalit vše Re: version
Odpovědět | Sbalit | Link | Blokovat | Admin

Pekne. ale nie je to komplikované ? Nepoznám tento jazyk ale nešlo by to urobiť tak, že jednotlive súbory budú mať link na súbor s verziou ? 

Root v linuxe : "Root povedal, linux vykona."
Salamek avatar 6.6.2018 16:17 Salamek | skóre: 22 | blog: salamovo
Rozbalit Rozbalit vše Re: version
Ten version file neni jen soubor obsahujici string 1.2.3 ale soubor s libovolnym obsahem, tzn kod, dokumentace, hlaviky souboru etc. proto se to parsuje pomoci regexp.. napr:
__version__ = '1.2.3'
nebo
foo=bar
pkgver=1.2.3
bar=foo
nebo
/**
 * Text
 * This is app version 1.2.3
 * Text...
 */
No a vsude tady treba potrebujes zmenit version na 1.2.4...
Skutečně nemám v plánu zničit Microsoft. Bude to jen zcela neúmyslný vedlejší efekt.
FrostyX avatar 9.6.2018 17:19 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
Rozbalit Rozbalit vše Re: version
Odpovědět | Sbalit | Link | Blokovat | Admin
Hezký tool. Alternativně se dá použít tito nebo rpkg.
FrostyX.cz | 1984 was not supposed to be an instruction manual.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.