Commit Graph
23 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Opus 4.8 3bdc8180c7 chore(changelog): archive releases past active window
Trim CHANGELOG.md to the active window and move older entries (4.0.3 through 8.0.4) into docs/changelog/; regenerate the Debian and Fedora package changelogs from the kept entries.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-11 10:46:05 +02:00
kevinveenbirkenbach 9bfbb7c3cb Release version 9.3.0 2026-06-11 10:33:55 +02:00
kevinveenbirkenbach d142431f9c Release version 9.2.0 2026-06-03 10:37:49 +02:00
kevinveenbirkenbach 4a2beaa3e7 Release version 9.1.0 2026-06-01 11:29:42 +02:00
kevinveenbirkenbach 9699ab33b3 Release version 9.0.2 2026-05-29 12:47:55 +02:00
kevinveenbirkenbach b9a3a8762a Release version 9.0.1 2026-05-28 21:19:49 +02:00
kevinveenbirkenbach 3d7bb7b983 Release version 9.0.0 2026-05-28 18:37:57 +02:00
kevinveenbirkenbach 21e878d7cd Release version 8.0.5 2026-05-28 17:50:39 +02:00
kevinveenbirkenbach 91ad89b3f4 Release version 8.0.4 2026-05-28 13:50:57 +02:00
kevinveenbirkenbach b12397e988 Release version 8.0.3 2026-05-28 11:51:38 +02:00
kevinveenbirkenbach 211fbcecf8 Release version 8.0.2 2026-05-28 11:12:31 +02:00
kevinveenbirkenbach fae8fa468a Release version 8.0.1 2026-05-28 09:14:46 +02:00
kevinveenbirkenbachandClaude Opus 4.7 954cb3ff07 fix(debian/changelog): keep source name as infinito-nexus, not infinito-nexus-core
Release 8.0.0 (12e53905f) bumped the changelog's top entry to
`infinito-nexus-core` while every other packaging artefact still
addresses the distro package as `infinito-nexus`:

  * `packaging/arch/PKGBUILD`             pkgname=infinito-nexus
  * `packaging/fedora/infinito-nexus.spec` Name: infinito-nexus
  * `packaging/debian/control`             Source/Package: infinito-nexus
  * `scripts/install/package.sh`           globs for infinito-nexus_*.deb,
                                            infinito-nexus-*.pkg.tar.*,
                                            infinito-nexus-*.rpm

dpkg-source --before-build refused to build because the changelog said
`infinito-nexus-core` while control said `infinito-nexus`; after the
preceding (now reverted) "align control with changelog" attempt, the
dpkg output filename became `infinito-nexus-core_8.0.0-1_all.deb`,
which fails the installer's `infinito-nexus_*.deb` glob check.

The repository name (`infinito-nexus-core`) is unrelated to the
distro-package name. The packaging convention is the short form
`infinito-nexus`. Align the changelog with the rest of the packaging
fleet instead of dragging every other file along.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 19:52:58 +02:00
kevinveenbirkenbach 12e53905fd Release 8.0.0 2026-05-27 17:37:31 +02:00
kevinveenbirkenbachandClaude Opus 4.7 067b191b44 fix(packaging/debian): suppress dh_auto_clean make-recurse
dpkg-buildpackage's debhelper sequence auto-detected the project's
Makefile and invoked 'make -j4 clean' from inside the package-build
sandbox at /tmp/infinito-nexus-debian-build. That recipe's BASH_ENV
sources scripts/meta/env/load.sh -> detect.sh, which (per the SPOT
contract) hard-fails when python3 is not yet on PATH — the package
hasn't been installed yet, so its python3 dependency isn't either.

Mirror the existing override_dh_auto_{build,test,install}: : pattern
to silence the auto-clean recurse. The .deb produced is unchanged
(no build artefacts to clean in the first place).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 01:25:51 +02:00
kevinveenbirkenbachandClaude Opus 4.7 79409ebf10 test(tooling): integrate markdownlint-cli2, ansible-lint, galaxy-importer + fix the resulting baseline
Tooling integration
* add .markdownlint-cli2.jsonc, .ansible-lint, .ansible-lint-ignore
  configs (permissive day-1: cosmetic rules disabled, semantic ones on)
* extend scripts/install/lint.sh with generic install_pip_pkg helper +
  ensure_ansible_lint / ensure_galaxy_importer / ensure_markdownlint_cli2
  ensure_* functions (pip / npm with sudo / --user / --break-system-packages
  fallbacks). install_ansible_tools now also pulls ansible-lint and
  galaxy-importer; new `markdown` install group.
* extend scripts/lint/ansible.sh to run ansible-lint after the existing
  syntax-check.
* add scripts/lint/markdown.sh and scripts/lint/galaxy.sh runners. The
  galaxy runner parallelizes via xargs (-P=$(nproc)), prints OK/FAIL per
  role, and treats `bare-name dependency` errors as success since our
  roles/ tree is not a Galaxy collection layout. All other Galaxy schema
  errors still fail.
* Makefile: new lint-markdown and lint-galaxy targets, both wired into
  `make lint`.
* CI: new workflows lint-markdown.yml and lint-galaxy.yml; lint-ansible.yml
  now installs ansible-core + ansible-lint; ci-orchestrator wires both
  new lint workflows into lint-gate.

Galaxy schema fixes
* shorten the canonical `galaxy_info.company` block from three lines to
  two ("Kevin Veen-Birkenbach\nhttps://www.veen.world", 45 chars) so it
  stays under Galaxy's hard 50-char limit. Updated everywhere: 229 role
  meta/main.yml plus _CANONICAL_COMPANY in
  tests/lint/repository/test_role_meta_main_galaxy_schema.py.
* shorten 19 over-long role descriptions to <=255 chars.
* add stub READMEs for sys-svc-compose-ca and sys-utils-service-loader.

Markdown baseline fixes
* markdownlint-cli2 --fix run repo-wide (formatting normalization
  across CHANGELOG, role READMEs, docs).
* manual MD041 fixes: prepend H1 in 15 files (CHANGELOG, LICENSE,
  TODO.md helpers, role README templates, etc.).
* MD025 / MD003 / MD001 / MD032 manual fixes for heading-style and
  list-spacing edge cases.
* role README content polish: "## Single Point of Truth (SPOT)" headings
  renamed to "## User data resolution" (D3 self-label rule).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 23:46:37 +02:00
kevinveenbirkenbachandClaude Opus 4.7 66badf258e refactor(changelog): split archive CLI into per-responsibility modules
Break cli/contributing/changelog/archive/__main__.py into four
single-responsibility modules under the same package:

* versioning.py — pad_version / unpad_version / archive_filename
  (the canonical <padded-semver>-<date>.md filename schema).
* archive_dir.py — existing_archives, archived_releases_from_directory,
  build_index_section (filesystem operations on docs/changelog/).
* changelog_md.py — split_into_entries, md_body_after_header,
  trim_and_archive (CHANGELOG.md parsing and trimming, plus the
  always-rebuild-index logic).
* package_mirror.py — mirror_to_debian_changelog,
  mirror_to_rpm_spec_changelog (Debian and RPM regeneration from
  CHANGELOG.md kept entries, with the trailing notice that points at
  docs.infinito.nexus and lists archived versions as plain text).

__main__.py shrinks to argparse plus a thin orchestration layer that
parses CHANGELOG.md once, runs trim_and_archive, reads the populated
archive directory, and mirrors into the package files.

Add `mirror_to_debian_changelog` and `mirror_to_rpm_spec_changelog`
content-idempotency: skip the write when the regenerated content
already matches what is on disk so re-runs leave file mtimes
unchanged. Verified end-to-end: a follow-up run on a fully-processed
tree leaves all three files (CHANGELOG.md, Debian changelog, RPM
spec) byte-identical and mtime-stable.

Replace `datetime.strptime` calls with `date.fromisoformat` so the
DTZ007 lint stays clean: we only need calendar-date parsing for
display formatting, not timezone-aware moments.

Tests follow the same split: one test_<module>.py per source module,
40 tests in total. Shared fixtures live in _helpers.py (underscore
prefix exempts it from the test-file-naming lint), and each test
class explicitly mixes TempRepoMixin with unittest.TestCase so the
test-files-have-tests AST lint sees the direct unittest base.

Update docs/contributing/actions/release.md so the procedure
description matches the current behaviour: package changelogs are
"mirrored" (not "trimmed") from CHANGELOG.md, and the idempotence
section calls out byte-idempotency on each of the three files.

Run the CLI once against the live tree to bring packaging/debian/
changelog and packaging/fedora/infinito-nexus.spec back into sync
with CHANGELOG.md and the docs/changelog/ archive directory.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 16:19:42 +02:00
kevinveenbirkenbach fa7c021525 Release version 7.0.0 2026-05-08 13:22:20 +02:00
kevinveenbirkenbach 15e9693eaf Release version 6.0.0 2026-04-25 17:59:57 +02:00
kevinveenbirkenbach e49631fec6 packaging: add PyYAML runtime dependency 2026-03-20 21:03:11 +01:00
kevinveenbirkenbach ad3f159548 Require Docker Compose in dev packaging 2026-03-19 11:25:49 +01:00
kevinveenbirkenbach d720937763 Fix EL9 RPM Python packaging dependency 2026-03-19 04:33:35 +01:00
kevinveenbirkenbach 3b11d7f469 feat(packaging): add distro packages and install via package metadata 2026-03-19 02:53:15 +01:00