Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).
Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.
Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.
Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.
Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."
Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.
Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.
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...