Conversation
- Bump __VERSION__ to 0.2.0 and update version-pinned test - Add CHANGELOG.md documenting Phase 1-6 changes since 0.1.5 - Add .github/workflows/release.yml for PyPI Trusted Publishing on tag push - Remove legacy setup.cfg, requirements.txt, MANIFEST.in (superseded by pyproject.toml) - Add CLAUDE.md project guidance - Ignore development_plan.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Prepares the 0.2.0 release. Substantial refactor focused on robustness, testability, and packaging modernization. Public API is fully preserved — all method names, signatures, and return types from 0.1.5 are unchanged.
See CHANGELOG.md for the full per-section breakdown.
Highlights since 0.1.5
timeout(default 30s), automatic retry with exponential backoff on 429/500/502/503/504, structured logging under thecomanage_apilogger (no credentials/bodies logged),NullHandlerregistered._*.pymodule exports a mixin class;ComanageApiinherits from all 9. Eliminates the 60-method passthrough wrapper layer. Centralized HTTP helpers (_get,_post,_put,_delete,_get_by_entity).cous_edit()parent_id=0now correctly clears parent vs. keeps existing;ssh_keys_add()no longer sends literal"None"for missing comments; invalid enum values now raiseValueErrorinstead ofTypeError.requests-mock, covering all 9 endpoint modules.pyproject.toml(PEP 621); removedsetup.cfg,requirements.txt,MANIFEST.in; min Python bumped to 3.9;uvadopted as the dev package manager.ci.yml) runsruff+pytestmatrix (3.9–3.12) on push and PR. Newrelease.ymlpublishes to PyPI on tag push via Trusted Publishing (OIDC, no API tokens).Release process after merge
fabric-testbed/python-comanage-api, workflowrelease.yml, environmentpypi).pypiGitHub Environment in repo settings.release.ymlworkflow builds, tests, and publishes to PyPI automatically.Test plan
uv run ruff check .— cleanuv run pytest -v— 138 passeduv build— produces sdist + wheel for 0.2.0uvx twine check dist/*— both artifacts PASSED🤖 Generated with Claude Code