Build and packaging library
  • Python 54.1%
  • Makefile 33.7%
  • Shell 12.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann c31dfb4bbf
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m27s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m54s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m0s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m17s
CI / Packaging test (push) Successful in 0s
lib.version.Dependency: Reject unsupported spec operators
The spec split pattern ([=><]+) tokenizes only the =, > and < characters,
so a PEP 440 operator like ~= or != leaves its ~ or ! glued to the package
name: Dependency('pkg~=1.0') parses to base name 'pkg~' with operator '='.
App.__get_project_refs() carries the same pattern inline, so the same specs
corrupt the module name used for the -devel subpackage check. The split
also tolerates operator strings the language does not support, most visibly
==, which parses and renders but raises NotImplementedError only when
expansion is requested.

The spec language supports exactly =, <, <=, > and >=, and boundary
expansion implements all of them. Extend the split pattern with ~ and ! so
that foreign operators tokenize as operator strings, and reject every
operator outside the supported set in Dependency.__parsed_spec() with
Dependency.Error, naming the supported operators. Route
App.__get_project_refs() through Dependency for the name and module parts
instead of the second inline split, so the validation lives in one place.
The catch all in Dependency.__version_boundaries() stays as a backstop
against drift between the allow list and the expansion cases.

The tests drop == from the accepted operator loop, drop the now-unreachable
not-expandable case, and assert that ~=, !=, ~, ==, ===, << and >> are
rejected at parse time with a message naming the operator.

Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.85.1
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-09-11 11:22:33 +02:00
.github/workflows ci.yaml: test-packaging.yaml@{master-test -> master} 2026-06-08 19:43:15 +02:00
bin bin, make, scripts: Re-add files necessary for packaging jw-build 2025-11-14 11:22:50 +01:00
conf conf / scripts: Fix unprivileged "make install" 2026-08-18 17:27:32 +02:00
doc doc: Add subdir 2026-08-19 20:51:11 +02:00
make pkg.sh: Fix broken version macro expansion 2026-09-09 15:55:38 +02:00
scripts pkg.sh: Fix broken version macro expansion 2026-09-09 15:55:38 +02:00
src lib.version.Dependency: Reject unsupported spec operators 2026-09-11 11:22:33 +02:00
test lib.version.Dependency: Reject unsupported spec operators 2026-09-11 11:22:33 +02:00
.gitignore cache.mk: Include from topdir.mk, not make.mk 2026-07-22 14:38:24 +02:00
HASH Release 1.0.0-262@suse-tumbleweed/x86_64 2026-09-10 23:32:02 +00:00
Makefile cache.mk: Include from topdir.mk, not make.mk 2026-07-22 14:38:24 +02:00
RELEASES Release 1.0.0-262@suse-tumbleweed/x86_64 2026-09-10 23:32:02 +00:00
VERSION Start version: 1.0.0-262 2026-09-10 23:10:51 +00:00