Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.
Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.
Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Po roce od vydání verze 15.5 bylo vydáno openSUSE Leap 15.6. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.
Byla vydána nová verze 256 správce systému a služeb systemd (GitHub). Nově mimo jiné s run0 jako alternativou k sudo.
Společnost Oracle oznámila spolupráci s Google Cloudem, OpenAI a Microsoftem.
Zítra začne v Brně na FIT VUT třídenní open source komunitní konference DevConf.CZ 2024. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
Google Chrome 126 byl prohlášen za stabilní. Nejnovější stabilní verze 126.0.6478.55 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Již nějaký ten pátek ve svých projektech používám pomocný script version.py který byl modifikován speciálně pro daný projekt a zajišťoval tyto věci:
V posledním projektu se ale s tímto scriptem vyskytly nějaké ty problémy a bylo třeba jej trochu poupravit, a v tu chvíli nastala ta nemilá situace kdy v x projektech byl zastaralý na míru pro projekt upravený version.py...
No co teď s tím že ? Řešení je jasné:
Přetavení version.py do univerzálního toolu na hromadnou změnu version stringu v projektu který může použít každý komu se hodí.A tak vznikl version (Ehm, GitHub)(GitLab)
$ version
NEBO
$ version status
$ version 1.0.1
NEBO
$ version mark 1.0.1
Pro posun se používá příkaz "+" ve formátu (+{1-3})({\d+}) kde první skupina detekuje počet "+" a dle toho určuje zda li se jedná o patch(+)/minor(++)/major(+++) změnu, druhá skupina určuje číslo posunu dané verze (default: 1)
+
Znamená posun o jedna v patch version++
Znamená posun o jedna v minor version+++
Znamená posun o jedna v major version+2
Znamená posun o dva v patch version++2
Znamená posun o dva v minor version+++2
Znamená posun o dva v major versionTakže příkazy pak vypadají takto
$ version + #pro posun o 1 v patch verzi OR $ version +10 #pro posun o 10 v patch verzi OR $ version ++1 #pro posun o 1 v minor verzi
Pro více možností viz:
version --help
Main entry-point into the 'version' application.
This is a version
License: GPL-3.0
Website: https://github.com/Salamek/version
Command details:
mark Mark project specified by --project_dir by <version>.
status Show current --project_dir version.
Usage:
version mark <version> [-p DIR] [-c FILE] [--dry] [--all_yes]
version status [-p DIR] [-c FILE]
version
version <version> [-p DIR] [-c FILE] [--dry] [--all_yes]
version (-h | --help)
version (-v | --version)
Options:
--dry Run as usually but don't change anything.
-p DIR --project_dir=DIR Project directory, if not set current is used.
-y --all_yes Answer YES to all prompts.
-d --project_dir=DIR Project directory, if not set current is used.
-c FILE --config_file=FILE Path to config file, if not set --project_dir/version.conf is used
--version Show version.
Přidejte repozitář těmito příkazy
$ wget -O - https://apt.salamek.cz/apt/conf/salamek.gpg.key|sudo apt-key add - $ echo "deb https://apt.salamek.cz/apt all main" | sudo tee /etc/apt/sources.list.d/salamek.cz.list
Pak můžete nainstalovat python3-version pomocí
$ apt update && apt install python3-version
Přidejte repozitář na konec souboru /etc/pacman.conf
[salamek] Server = https://arch.salamek.cz/any SigLevel = Optional
a pak nainstalujte příkazem
$ pacman -Sy version
Tohle všechno se samozřejmě neobejde bez nějaké té konfigurace která je uložena v $PROJECT_ROOT/.version.yml (Pouze REGEXPS a VERSION_FILES jsou povinné):
# GIT Configuration GIT: AUTO_COMMIT: true # Autocommitnout modifikované version soubory (default: true) AUTO_TAG: true # Vytvořit GIT TAG s novou verzí (default: true) AUTO_PUSH: true # Automaticky pushnout na server false=disabled, true=enabled, 'remote_name'=enabled and push to remote_name (default: true) COMMIT_MESSAGE: 'New version {version}' # Text použít v commit message {version} je kotva pro version string (default: 'New version {version}') # Pole regexpů použitých pro nalezení version stringů v VERSION_FILES # Klíč je název regexpu a hodnota je samotný regexp # Přidejte své vlastní a smažte neužitečné REGEXPS: 'python': __version__\s*=\s*\'(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\' # Regexp for version format commonly used in python 'setup.py': version\s*=\s*\'(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)\' # Regexp for version format commonly used in python setup.py 'PKGBUILD': pkgver\s*=\s*(?P<version>.*) # Regexp used in PKGBUILD # Pole version souborů které mají být nalezeny a upraven, glob formát cest je podporován # Klíč je glob cesta a hodnota je jméno regexpu který se má použít k nalezení version string v nalezených souborech # Přidejte své vlastní a smažte neužitečné VERSION_FILES: 'version/__init__.py': 'python' 'setup.py': 'setup.py' 'archlinux/PKGBUILD': 'PKGBUILD'Tak snad se to někomu z vás bude hodit
Tiskni Sdílej:
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?
export-subst
(viz gitattributes(5)
).
#! /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() )
co pak ale s PKGBUILDVygenerovat, 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.
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.
$ version +a mam hotovo
Gitlab link => 404 The page could not be found or you don't have permission to view it.
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 ?
__version__ = '1.2.3'nebo
foo=bar pkgver=1.2.3 bar=foonebo
/** * Text * This is app version 1.2.3 * Text... */No a vsude tady treba potrebujes zmenit version na 1.2.4...