Skip to content

Release 1.2.1 (2026-02-26)

Bug fixes

  • remove nonexistent Python/uv infrastructure from docs workflow (#7) The docs.yml referenced Python setup and uv sync but the Ruby repo has no pyproject.toml. Removed Python setup and mike-command, matching the Go port pattern where docs-deploy handles its own MkDocs setup.

  • add security-events permission to push workflow (#27)

  • ci: redesign CI into three-tier push/PR architecture

Tier 1: local pre-commit scripts (existing). Tier 2: push CI via ci-push.yml (single Ruby version, no security/gates). Tier 3: PR CI via ci.yml (full matrix, security scanners, release gates). ci.yml is now a reusable workflow accepting inputs from ci-push.yml.

  • commit Gemfile.lock for CI reproducibility (#38) Remove Gemfile.lock from .gitignore and commit the lock file so CI uses pinned dependency versions. Prevents silent rubocop upgrades that activate new cops via NewCops: enable.

  • reorder publish workflow to tag before registry publish (#46) Move SBOM generation and tag/release steps before the RubyGems publish step. Gate the publish step on RUBYGEMS_API_KEY secret existence so tagging, releases, and version bump PRs proceed regardless of registry availability. Fixes #45.

CI

  • add workflow to auto-add issues to GitHub Project
  • assign unique REST API ports per integration test matrix entry (#10)
  • ci: assign unique REST API ports per integration test matrix entry

  • add Steep type-check job to CI workflow (#21)

  • feat(tooling): add YARD, Steep, and rubocop-yard development dependencies

Add yard, steep, rubocop-yard to Gemfile. Create Steepfile and .yardopts. Re-enable Style/Documentation cop. Add steep rake task. Exclude doc/yard/ from git.

  • migrate CI to GHCR container images (#25)
  • ci: migrate CI to GHCR container images

  • replace inline security jobs with shared ci-security.yml workflow (#29)

Documentation

  • add MkDocs/mike documentation site (#5)
  • docs: add MkDocs/mike documentation site

Complete documentation tree with 68 pages: project overview, getting started, architecture, API reference, mapping pipeline, ensure/sync methods, examples, design rationale, development guides, and 42 per-qualifier mapping pages. Uses pymdownx.snippets to include shared fragments from mq-rest-admin-common.

Features

  • implement full Ruby port of mq-rest-admin (#3)
  • feat: implement full Ruby port of mq-rest-admin

Complete Ruby gem implementation including: - Session with MQSC command dispatcher and 3-layer mapping pipeline - 148 MQSC command methods (Commands module) - 16 idempotent ensure methods (Ensure module) - 9 synchronous polling methods (Sync module) - Transport layer with mTLS support (net/http, zero runtime deps) - Auth support: BasicAuth, LTPAAuth, CertificateAuth - Mapping overrides with merge/replace modes - CI workflows (test, publish, docs, project) - 243 tests with 100% line and branch coverage - RuboCop clean with zero offenses

Ref mq-rest-admin-common#9

  • run integration tests with same Ruby version matrix as unit tests (#8) Integration tests now run against Ruby 3.2, 3.3, and 3.4 instead of only 3.4, matching the unit test matrix for consistent coverage.

  • add Docker-first test scripts and fix COMPOSE_PROJECT_NAME (#23) Add scripts/dev/test.sh and test-integration.sh for Docker-first testing. Fix COMPOSE_PROJECT_NAME from template placeholder to mq-dev in all 5 MQ wrapper scripts. Update CLAUDE.md with Docker-First Testing documentation.

Refactoring

  • remove test exclusions and refactor oversized test classes (#31) Remove test/*/ exclusions from Metrics/AbcSize, ClassLength, MethodLength, and BlockLength. Refactor tests to pass under the same thresholds as production code: extract duplicated cert generation helper in transport_test, split SessionTest into SessionTest/SessionMappingTest/SessionInternalsTest, split MappingTest into MappingTest/MappingResponseTest.

  • remove remaining .rubocop.yml relaxations for session.rb and mapping.rb (#32) Rename predicates (has_error_codes? -> error_codes?, has_status? -> status?), extract SessionHelpers module with pure-function helpers, refactor mqsc_command into smaller methods, and extract key-value-map handling in mapping.rb. All file-level exclusions and AllowedMethods entries removed.

Testing

  • add integration test suite porting Python reference coverage (#12)
  • test: add integration test suite porting Python reference coverage

Ports ~34 integration tests from the Python reference suite covering display singletons, seeded queues/channels/objects, lifecycle CRUD (9 object types), idempotent ensure operations, gateway multi-QM access, session state, and LTPA auth. Adds rake integration task and updates CI to use it.

Revert

  • remove premature add-to-project workflow