Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[1.2.2] - 2026-03-02¶
Bug fixes¶
- move PyPI publish before SBOM generation (#430)
[1.2.1] - 2026-03-01¶
Bug fixes¶
- reorder publish workflow to tag before registry publish (#392)
- correct relative links to mapping-pipeline in api/ensure and api/sync (#400)
- require name parameter for DELETE Q* methods (#415)
- LTPA cookie extraction uses prefix matching for suffixed cookie names (#418)
CI¶
- remove SonarCloud and Code Climate workflows (#378)
- migrate to three-tier push/PR architecture (#380)
- extract type-check into standalone ci: type-check job (#405)
- add concurrency group to ci-push workflow (#426)
Documentation¶
- replace stale script references with st-* commands (#377)
- fix index page mismatches and restructure nav for LHS sidebar (#396)
- merge ensure and sync documentation into single pages (#398)
- add cross-repo documentation links to docs site (#420)
Features¶
- auto-generate all MQSC command methods from mapping-data.json (#413)
- add SyncConfig construction validation (#425)
Refactoring¶
- rename abbreviated local variables to complete English words (#401)
- rename obj_config to object_config in sync.py (#407)
Testing¶
- include examples in code coverage metrics (#409)
- add session state populated after command integration test (#423)
[1.2.0] - 2026-02-24¶
CI¶
- add SonarCloud quality analysis to CI (#366)
- add SonarCloud post-merge workflow (#367)
- add Code Climate (Qlty) coverage upload (#369)
- assign unique REST API ports per integration test matrix entry (#372)
Features¶
- run integration tests with same Python version matrix as unit tests (#370)
[1.1.11] - 2026-02-23¶
Bug fixes¶
- update add-to-project action to v1.0.2 (#357)
[1.1.10] - 2026-02-21¶
Bug fixes¶
- scope Python linters to src/ and tests/, sync standard-tooling v1.1.4 (#352)
[1.1.9] - 2026-02-20¶
Documentation¶
- ban MEMORY.md usage in CLAUDE.md (#339)
- ban heredocs in shell commands (#340)
Features¶
- add category prefixes to job names (#338)
- adopt validate_local.sh dispatch architecture (#341)
[1.1.8] - 2026-02-19¶
Bug fixes¶
- sync shared tooling to v1.0.2
- revert Python 3.10 CI matrix expansion (#323)
- sync hook and lint scripts from standards-and-conventions (#324)
CI¶
- auto-add issues to GitHub Project (#319)
Documentation¶
- rename mq-dev-environment references to mq-rest-admin-dev-environment (#325)
Features¶
- sync shared tooling from standard-tooling v1.0.0
- extend CI matrix to Python 3.10+ to discover minimum supported version (#322)
Refactoring¶
- use shared docs-deploy composite action (#329)
- use shared composite actions for publish and release gates (#333)
[1.1.7] - 2026-02-17¶
Bug fixes¶
- sync prepare_release.py empty changelog abort from canonical (#307)
[1.1.6] - 2026-02-17¶
Bug fixes¶
- sync prepare_release.py ruff formatting from canonical (#298)
Features¶
- use GitHub App token for bump PR to trigger CI (#300)
[1.1.5] - 2026-02-16¶
Bug fixes¶
- move SBOM generation after PyPI publish step (#284) (#287)
- sync prepare_release.py merge message fix from canonical (#291)
- sync prepare_release.py changelog conflict fix from canonical (#293)
Styling¶
- fix ruff lint errors in prepare_release.py (#288)
[1.1.4] - 2026-02-16¶
Bug fixes¶
- remove extra blank line in CHANGELOG.md
- disable MD041 for mkdocs snippet-include files
- correct snippets base_path resolution for fragment includes (#267)
- run mike from repo root so snippet base_path resolves in CI (#268)
- remove PR_BUMP_TOKEN and add issue linkage to version bump PR
- rename integration-test job to integration-tests
- move SBOM generation after PyPI publish step (#284)
- sync prepare_release.py with canonical version (#286)
Documentation¶
- migrate from Sphinx to MkDocs Material
- fix attribute names, stale auth claim, and bare pages (#251)
- address medium-severity documentation consistency findings (#253)
- address cross-library documentation consistency nits (#259)
- switch to shared fragment includes from common repo (#264)
- add quality gates documentation page
- remove Python-specific design choices and beta status from rationale
- update CLAUDE.md architecture section for current codebase (#276)
Features¶
- add Tier 1 security tooling (CodeQL, attestations, license compliance)
- add Trivy and Semgrep CI jobs and SBOM generation
Refactoring¶
- convert mapping data from Python module to JSON file (#274)
[1.1.3] - 2026-02-15¶
Bug fixes¶
- add missing MAPPING_DATA entries for integration test failures (#236)
- allow release/* commits in library-release branching model (#244)
Documentation¶
- add nested object flattening design doc and queue status example (#240)
Features¶
- adopt per-project MQ container isolation (#233)
[1.1.2] - 2026-02-13¶
Bug fixes¶
- use PR_BUMP_TOKEN for version bump PR creation (#219)
- prevent release-gates skipped status from blocking auto-merge (#223)
[1.1.1] - 2026-02-13¶
Documentation¶
- add developer setup and contributing guides to Sphinx docs (#215)
Features¶
- migrate MQ dev environment to shared mq-dev-environment repo (#214)
[1.1.0] - 2026-02-12¶
Bug fixes¶
- use PAT and merge strategy for version bump PR (#190)
- skip pre-conventional commits in commit-messages lint
- disable CONNAUTH/CHLAUTH and fix seed idempotency for gateway routing (#200)
- remove unused provisional status labels from MAPPING_DATA (#202)
Documentation¶
- correct platform availability claim in gateway docs (#203)
- fix sync-methods examples to use realistic object types (#207)
Features¶
- add qmstatus and qstatus qualifier mappings (#192)
- add mapping_overrides parameter to MQRESTSession (#194)
- add gateway_qmgr parameter to MQRESTSession (#197)
- add MappingOverrideMode.REPLACE for complete mapping replacement (#205)
- add synchronous start/stop/restart wrappers for channels, listeners, and services (#206)
[1.0.3] - 2026-02-11¶
Bug fixes¶
- merge main back into develop in version bump PR (#186)
[1.0.2] - 2026-02-11¶
Bug fixes¶
- use regular merge for release PRs and refresh deps in version bump (#172)
Documentation¶
- add pymqrest 1.0.0 GA announcement draft (#176)
- use LTPAAuth as default in examples and docs (#181)
Features¶
- add Python 3.12 and 3.13 support (#180)
- include changed attributes in EnsureResult (#178) (#182)
[1.0.1] - 2026-02-10¶
Bug fixes¶
- resolve bare branch names to origin/ in commit-messages.sh (#159)
- use full version in release branch name to avoid collisions (#161)
- allow commits on release/* branches in pre-commit hook (#162)
- merge main into release branch to reconcile squash-merge history (#164)
- use conventional commit message for release merge commit (#165)
- create release branch from main to avoid history pollution (#167)
- generate changelog on develop before creating release branch (#169)
Features¶
- auto-bump patch version after publish, bump to 1.0.1 (#147)
- add changelog with git-cliff and CI validation gate (#149)
- add prepare_release.py to automate release preparation (#160)
[1.0.0] - 2026-02-10¶
Documentation¶
- rewrite README, fix sphinx markdown lint, close lint coverage gap (#145)
Features¶
- bump version to 1.0.0, promote status from experimental to beta (#144)
[0.1.0] - 2026-02-10¶
Bug fixes¶
- prevent docs-only merge-base failures
- make docs-only detection merge-base independent
- satisfy ruff checks for metadata refresh script
- update include directives
- harden response parameter mapping
- standardize shared MQSC attribute mappings
- standardize additional shared attributes
- standardize CFSTRUCT and CLWL mappings
- correct ClusterWorkloadRank mapping
- standardize DESCR mapping
- enforce per-qualifier unique mappings
- normalize client/message/user mappings
- standardize identifiers and LIKE mapping
- normalize QMgr and Like mappings
- normalize Like and QMgr identifiers
- clean stgclass Like override
- normalize SSLPEER and cfstatus recovery mappings
- normalize cfstatus recovery fields
- normalize CLWL PCF names (issue #88)
- expand Msg to Message in PCF overrides (issue #87)
- normalize Identifier to Id (issue #86)
- normalize CFStructType override (issue #82)
- remove name parameter from QMGR and CMDSERV command methods (#100)
- omit responseParameters from non-DISPLAY commands to prevent silent failures (#125)
- configure git identity for annotated tag creation in publish workflow (#143)
Documentation¶
- align repo docs with standards (#12)
- align standards entrypoint with repo type
- adopt standards include bootstrap
- align standards includes
- require uv run for python commands
- archive first-pass docs and capture mqsc list (#70)
- regroup conflicts report
- note codex command policy workaround
- add CLAUDE.md for Claude Code integration (#96)
- document standards compliance gates implementation (#99)
- add Sphinx documentation tree with mapping reference and API docs (#30) (#105)
- rework API reference pages for readability (#108)
- enrich docstrings for session, mapping, and exception modules (#111)
- add docstrings to all MQSC command wrapper methods (#109) (#116)
- fix autodoc rendering by wrapping directives in eval-rst blocks (#117)
- credit both Claude Code and Codex in AI engineering page (#118)
- separate unmapped qualifiers in mapping index, rewrite auth docs (#135)
- remove misleading "yet" from unmapped qualifier description (#137)
- clarify mapping data is bootstrapped from 9.4 docs, now authoritative in source (#141)
Features¶
- add mq container tooling and refresh mqsc output metadata
- add MQ REST session framework
- switch session transport to requests
- add more MQSC helper methods
- expand MQSC command wrappers
- add MQSC qualifier placeholders
- support request key/value mappings
- document response parameter macros (issue #84)
- enable strict attribute mapping by default (#98)
- add WHERE filter support for DISPLAY commands (#101)
- flatten nested objects in command response parameters (#103)
- add practical example scripts with multi-QM Docker environment (#104) (#119)
- add idempotent ensure methods for declarative object management (#75) (#121)
- add ensure_qmgr for idempotent queue manager attribute management (#123)
- add LTPA token and mTLS client certificate authentication (#131)
- add PyPI publication infrastructure (#142)
Refactoring¶
- remove explicit channel_type arg
- move mq rest exceptions to module
- move MQSC command methods to commands module
- rename _build_response_parameter_map to _build_snake_to_mqsc_map (#102)
- expand opaque MQSC shorthands to descriptive snake_case names (#126)
- expand abbreviated snake_case attribute names to descriptive forms (#127)
- expand remaining abbreviated snake_case attribute names (#128)
- expand abbreviated snake_case attribute names (batch 4) (#132)
- use snake_case attribute names exclusively in examples (#133)
- require credentials keyword argument, drop username/password (#134)
- make perform_ltpa_login internal, remove from public docs (#136)
- archive extraction pipeline, use MAPPING_DATA as sole source of truth (#140)
Testing¶
- cover MQREST session helpers
- expand integration display coverage
- generalize integration display and mutating coverage
- run integration lifecycle against local mq