Changelog¶
All notable changes to Bijux CLI are documented here. This project adheres to Semantic Versioning and the Keep a Changelog format.
Unreleased¶
Added¶
- (add new entries via Towncrier fragments in
changelog.d/
)
Changed¶
- (add here)
Fixed¶
- (add here)
0.1.3 – 2025-08-20¶
Added¶
- ADR-0005: Zero-root-pollution via Makefile-orchestrated artifact containment (all generated outputs under
artifacts/
). - Curated release assets: zipped bundles for tests (py311/py312/py313) and for lint, quality, security, api, docs, sbom, citation, build, plus consolidated checksums.
- End-to-end automation: GitHub Actions to publish to PyPI, create a GitHub Release with curated bundles, and deploy docs.
Changed¶
- Makefiles + workflows brought into full ADR-0005 compliance: CI uploads/downloads only
artifacts/**
; docs deploy hydrates from CI artifacts and builds fromartifacts/docs/**
.
0.1.2 – 2025-08-17¶
Added¶
- New Documentation Engine: Introduced a new modular documentation builder in
scripts/docs_builder/
that replaces the previous helper script. - CI Artifact Pages: The documentation site now automatically generates detailed pages for all CI artifacts, including tests, linting, code quality, security, API tests, SBOMs, and citation files.
- Release Evidence: The
publish
workflow now downloads all artifacts from theCI
run, packages them asevidence/*.tar.gz
bundles, and attaches them to the GitHub Release for traceability. - Build Hygiene: Makefiles now enforce a "hygienic" build process, ensuring all temporary files, caches, and build outputs are stored under the
artifacts/
directory to prevent root directory pollution.
Changed¶
- CI/CD Overhaul:
- The
ci.yml
workflow now uploads each category of artifact separately for better organization and downstream consumption. - The
docs.yml
workflow now waits for the mainCI
run to complete, downloads all artifacts, and uses them to build a data-rich documentation site. - The
publish.yml
workflow has been streamlined and made more robust, removing the optional "wait for docs" step and improving tag detection.
- The
- Documentation Content: All top-level Markdown documents (
README.md
,USAGE.md
,TESTS.md
,TOOLING.md
,CONTRIBUTING.md
, etc.) have been significantly rewritten and expanded with tables of contents,back-to-top
links, and cross-references to the new artifact pages. - Build System:
- All
Makefile
modules have been refactored to use the new hygienicartifacts/
directory structure for outputs and caches. tox.ini
has been updated to align with the new Makefile targets and to run a comprehensive suite of checks for thepy311
environment, mirroring the full CI validation process.
- All
- API Schema: The OpenAPI
schema.yaml
has been improved with stricter validation (additionalProperties: false
), better descriptions, response links, and more detailed examples. - Source Code: Refactored async handling in
src/bijux_cli/api.py
and improved type safety across multiple modules by removingpyright: ignore
comments and adding explicitcast
calls where necessary.
Fixed¶
- Type Safety: Resolved numerous previously ignored type errors throughout the codebase and test suite.
- API Endpoint Logic: Corrected the item update logic in
src/bijux_cli/httpapi.py
by removing a faulty check for duplicate names that was causing incorrect 409 Conflict errors. - Test Suite: Improved the stability and correctness of E2E tests by enhancing golden file comparisons and fixing brittle assertions.
0.1.1 – 2025-08-14¶
Added¶
- Publish pipeline: GitHub Actions
publish.yml
that publishes viamake publish
only after required checks are green and a tag is present. - Project map:
PROJECT_TREE.md
(anddocs/project_tree.md
) with a curated overview. - Developer Tooling page:
TOOLING.md
(anddocs/tooling.md
) with embedded configs, Makefile snippets, and CI workflows viainclude-markdown
. - Docs assets: Community landing page, Plausible analytics partial, and CSS overrides.
Changed¶
- Docs generator (
scripts/helper_mkdocs.py
): - Copies README, USAGE, TESTS, PROJECT_TREE, and TOOLING into the site with link rewrites and
{#top}
anchors. - Generates mkdocstrings pages for all modules under
src/bijux_cli/**
. - Builds one consolidated API Reference with this structure:
- top: Api Module, Cli Module, Httpapi Module
- sections (collapsed by default): Commands, Contracts, Core, Infra, Services
- nested groups for command subpackages (
config/
,dev/
,history/
,memory/
,plugins/
) beneath Commands.
- Emits
reference/**/index.md
to power Material’s section indexes. - MkDocs config (
mkdocs.yml
): tightened plugin ordering and settings forinclude-markdown
, enabled section indexes, and strict mode; added watch paths for configs and scripts. - README / USAGE: Refined copy; standardized top anchors and links to TESTS.md/PROJECT_TREE.md/TOOLING.md.
- SECURITY.md: Rewritten with clearer reporting, SLAs, scope, and safe harbor.
- Makefiles: macOS-safe env handling; Cairo-less Interrogate wrapper for doc coverage.
- Config: Expanded lints/dictionary.
Fixed¶
- Docs build (strict): resolved broken/unknown links in TOOLING.md and removed duplicate API Reference sections; left sidebar now stays populated when deep-linking into API pages.
- Tests: E2E version fixtures cleaned up.
Packaging¶
- PyPI links corrected:
project.urls
now points to accurate Homepage/Docs/Changelog/Issues/Discussions. - Dynamic versioning from Git tags: Using
hatch-vcs
withdynamic = ["version"]
; annotated tags likev0.1.1
define the release version.commitizen
tags asv$version
. - Richer PyPI description:
hatch-fancy-pypi-readme
renders README.md + CHANGELOG.md on PyPI. - Wheel/Sdist layout: Explicit Hatch build config ensures
py.typed
, licenses, and metadata are included.
0.1.0 – 2025-08-12¶
Added¶
-
Core runtime
- Implemented Dependency Injection kernel, REPL shell, plugin loader, telemetry hooks, and shell completion (bash/zsh/fish).
- Added core modules:
api
,cli
,httpapi
,core/{constants,context,di,engine,enums,exceptions,paths}
.
-
Contracts layer (
contracts/
)- Defined protocols for
audit
,config
,context
,docs
,doctor
,emitter
,history
,memory
,observability
,process
,registry
,retry
,serializer
,telemetry
. - Added
py.typed
markers for downstream type checking.
- Defined protocols for
-
Services layer
- Implemented concrete services for
audit
,config
,docs
,doctor
,history
,memory
. - Built plugin subsystem:
plugins/{entrypoints,groups,hooks,registry}
.
- Implemented concrete services for
-
Infra layer (
infra/
)- Implemented
emitter
,observability
,process
,retry
,serializer
,telemetry
.
- Implemented
-
Command suite
- Added top-level commands:
audit
,docs
,doctor
,help
,repl
,sleep
,status
,version
. - Added
config/
commands:clear
,export
,get
,list
,load
,reload
,set
,unset
,service
. - Added
dev/
commands:di
,list-plugins
,service
. - Added
history/
commands:clear
,service
. - Added
memory/
commands:clear
,delete
,get
,list
,set
,service
. - Added
plugins/
commands:check
,info
,install
,list
,scaffold
,uninstall
.
- Added top-level commands:
-
Structured output & flags
- Added JSON/YAML output via
--format
, pretty printing, and deterministic global flag precedence (ADR-0002).
- Added JSON/YAML output via
-
API contract validation & testing
- Automated lint/validation of
api/*.yaml
with Prance, OpenAPI Spec Validator, Redocly, and OpenAPI Generator. - Added Schemathesis contract testing against the running server.
- Pinned OpenAPI Generator CLI version via
OPENAPI_GENERATOR_VERSION
and automated Node.js toolchain setup in Makefile.
- Automated lint/validation of
-
Documentation tooling
- Integrated MkDocs (Material), mkdocstrings, literate-nav, and ADR index generation.
-
Quality & security pipeline
- Added formatting/linting:
ruff
(+format). - Added typing:
mypy
,pyright
,pytype
. - Added docs style/coverage:
pydocstyle
,interrogate
. - Added code health:
vulture
,deptry
,radon
,codespell
,reuse
. - Added security:
bandit
,pip-audit
. - Added mutation testing:
mutmut
,cosmic-ray
.
- Added formatting/linting:
-
SBOM
- Generated CycloneDX JSON for prod/dev dependencies via
make sbom
(usespip-audit
).
- Generated CycloneDX JSON for prod/dev dependencies via
-
Citation
- Validated
CITATION.cff
and added export to BibTeX/RIS/EndNote formats viamake citation
.
- Validated
-
Makefile architecture
- Modularized the Makefile into
makefiles/*.mk
for maintainability and clear separation of concerns. - Centralized all developer workflows (
test
,lint
,quality
,security
,api
,docs
,build
,sbom
,citation
,changelog
,publish
) in one consistent interface. - Added
bootstrap
target for idempotent virtualenv setup and Git hook installation fromscripts/git-hooks
(skips re-installation if already linked). - Added
all-parallel
target to run independent checks (quality
,security
,api
,docs
) concurrently for faster CI/CD. - Added
make help
for self-documenting targets with grouped sections. - Provided helper macros (
run_tool
,read_pyproject_version
) to standardize tooling invocation.
- Modularized the Makefile into
-
pre-commit
- Added hygiene hooks:
ruff-format
+ruff
,mdformat
, andcodespell
. - Enforced Conventional Commits via commitizen
commit-msg
hook.
- Added hygiene hooks:
-
tox orchestration
- Configured multi-Python test envs (
py311
,py312
,py313
). - Mapped Makefile workflows into tox envs (
lint
,quality
,security
,api
,docs
,build
,sbom
,changelog
,citation
) to ensure reproducibility. - Passed
MAKEFLAGS
to execute Makefile targets inside tox-managed virtualenvs.
- Configured multi-Python test envs (
-
Continuous Integration
- Added GitHub Actions workflow running tox across Python versions with Node.js 20 and Java 17 for API checks.
- Added GitLab CI sample mirroring the GitHub workflow (tox-driven) with artifacts for coverage and API logs.
- CI/CD pipelines directly leverage the modularized Makefile for consistent local/CI behavior.
-
Packaging / PyPI page
- Built dynamic long description via hatch-fancy-pypi-readme from README.md and CHANGELOG.md for PyPI/TestPyPI.
- Packaged with
LICENSES/
,REUSE.toml
,CITATION.cff
, andpy.typed
included in source distributions.
Changed¶
- Released initial public version.
Fixed¶
- None