-
Notifications
You must be signed in to change notification settings - Fork 46
feat!: restructure to src/ layout and add semantic release #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Preparing for git worktree usage. This prevents accidentally committing worktree contents to the repository. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR restructures the project into a proper Python package with automated versioning and release management. It transforms the codebase from a simple script-based project into a professionally organized package with semantic versioning, proper entry points, and CI/CD automation.
- Restructured code into
src/netbox_mcp_server/package layout with proper module organization - Added python-semantic-release for automated version management based on conventional commits
- Created package entry points and scripts for cleaner execution (
netbox-mcp-servercommand)
Reviewed Changes
Copilot reviewed 15 out of 21 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Updated dependencies including downgraded click version and added python-semantic-release with all transitive dependencies |
| src/netbox_mcp_server/*.py | Moved source files into proper package structure with updated imports |
| pyproject.toml | Added build system, entry points, and semantic-release configuration |
| tests/*.py | Updated imports to reference new package structure |
| .github/workflows/*.yml | Added CI/CD workflows for testing and automated releases |
| README.md, claude.md, Dockerfile | Updated documentation and configs to use new entry point |
Comments suppressed due to low confidence (1)
src/netbox_mcp_server/server.py:372
- The documentation improvement clarifies that changed_object_type_id expects a numeric ID, but the previous example on lines 382-383 showed an incorrect usage with 'dcim.device' string. While this change improves clarity, consider adding a concrete numeric example to replace the removed incorrect example to help users understand the correct usage pattern.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Summary
Restructures the project to use standard Python src/ layout and adds automated semantic release capabilities via
python-semantic-release.
Breaking Changes
uv run server.py→uv run netbox-mcp-serverargsto usenetbox-mcp-serverinstead ofserver.pyfrom server import→from netbox_mcp_server.server importChanges
Structure
src/netbox_mcp_server/__init__.pywith version export__main__.pyfor module execution supportAutomation
Code
main()function to server.pyDocumentation
Testing
netbox-mcp-serverworkspython -m netbox_mcp_serverworksRelease Plan
When merged, this will automatically trigger a v1.0.0 release via python-semantic-release due to the breaking change in the commit history.