Release 1.2.1 (2026-03-01)¶
Bug fixes¶
-
reorder publish workflow to tag before registry publish (#392) Move SBOM generation and tag/release steps before PyPI publish. Change build/attest/SBOM conditions from pypi_check to tag_check so artifacts are generated for the GitHub release regardless of PyPI status. Fixes #391.
-
correct relative links to mapping-pipeline in api/ensure and api/sync (#400)
-
require name parameter for DELETE Q* methods (#415) Re-generate commands from updated mapping-data.json which adds name_required: true to DELETE QLOCAL, QREMOTE, QALIAS, and QMODEL. These methods now require a name parameter since you cannot delete a queue without specifying which one.
-
LTPA cookie extraction uses prefix matching for suffixed cookie names (#418) Liberty's MQ REST API uses LtpaToken2_
cookie names by default. Changed from exact match to prefix match on LtpaToken2 and store the full cookie name for use in subsequent requests. Enabled the LTPA integration test.
CI¶
-
remove SonarCloud and Code Climate workflows (#378) Removes sonarcloud.yml, codeclimate.yml standalone workflows and both jobs from ci.yml. Neither service is in active use.
-
migrate to three-tier push/PR architecture (#380) Tier 1: local dev scripts (test, lint, typecheck, audit). Tier 2: ci-push.yml (single Python version, no security/gates). Tier 3: ci.yml (full matrix, security via shared workflow, release gates). Security and standards jobs factored out to standard-actions reusable workflow.
-
extract type-check into standalone ci: type-check job (#405) Extract mypy and ty from the unit-tests matrix job into a standalone ci: type-check job. Type checking is static analysis and uses the ci: prefix. Runs on a single Python version (3.14) since type definitions are version-independent.
-
add concurrency group to ci-push workflow (#426) Ensures new pushes cancel in-flight CI runs on the same branch.
Documentation¶
- replace stale script references with st-* commands (#377)
-
fix index page mismatches and restructure nav for LHS sidebar (#396) Add missing Quality Gates and AI Engineering entries to Development index. Add Ensure Methods and Sync Methods to API Reference index. Group Home, Getting Started, Architecture, and Examples under Home section for LHS navigation.
-
merge ensure and sync documentation into single pages (#398) Consolidate ensure-methods.md into api/ensure.md and sync-methods.md into api/sync.md. Update nav to feature ensure/sync after core classes. Fix cross-references in architecture.md and session.md. Update API reference index with Declarative Management section.
-
add cross-repo documentation links to docs site (#420) Include the other-languages.md fragment from mq-rest-admin-common to show links to all language implementations on the docs home page.
Features¶
-
auto-generate all MQSC command methods from mapping-data.json (#413) Eliminates hand-written methods by moving BEGIN marker to encompass all command methods. Updates mapping-data.json with generation metadata (pattern, name_required, name_default). 152 methods now fully generated.
-
add SyncConfig construction validation (#425)
Refactoring¶
-
rename abbreviated local variables to complete English words (#401) Rename internal variables for naming standards compliance (Rule 3):
-
sync.py: cfg -> sync_config, msg -> message
- _mapping_merge.py: msg -> message
- test_sync.py: cfg -> sync_config, err -> error
- test_mapping_merge.py: cmd -> command
No public API changes.
- rename obj_config to object_config in sync.py (#407) Fixes PBP naming convention violation: obj_config abbreviated parameter renamed to object_config across _start_and_poll, _stop_and_poll, and _restart methods.
Testing¶
-
include examples in code coverage metrics (#409) Add --cov=examples to CI and test script, pragma: no cover on main blocks, and 52 unit tests for all 6 example modules achieving 100% branch coverage.
-
add session state populated after command integration test (#423)