Skip to content

Conversation

Falamarcao
Copy link
Collaborator

🐙 chore: enhance CI/CD, versioning, and testing setup

This PR doesn’t add flashy features.
No rainbows. No unicorns.
But under the hood? We’ve just made the whole project significantly more mature, reliable, and ready-for-adulthood.

What’s changed?

Cleaner version & description loading
Switched to importlib.metadata to read version and description directly from the installed package metadata.
No more hardcoded strings, no more TOML parsing hacks. Just Python, behaving as intended.

🧪 New test for UVX functionality
Because uvx is used in MCP clients, and we shouldn’t assume it just works.
Added a test to verify the app starts and responds correctly under uvx — closing a quiet but real blind spot.

🔧 CI/CD pipeline now runs on main — with auto-publish attempts
Every push to main triggers:

  • Full test suite (via reusable 1_tests.yml) — only if there are .py file changes
  • If tests pass: attempt release via 2_release.yml
    • Build and publish to PyPI 📦
    • Build and push Docker image 🐳

⚠️ No version checks. No clever diffing.
If the version already exists on PyPI? The upload fails — and that’s the point.
It means we forgot to bump the version.
So we fix it. Next time.

This is “fail-fast, learn-fast” packaging. No shame in the game — just faster feedback.


Why this matters:

  • Less ceremony, more automation
  • And yes — the robots now handle the boring stuff so we can focus on the fun stuff

• use importlib.metadata for version and description in Settings
• add CI/CD pipeline on main branch for testing and auto-release pypi and docker
• add new test for UVX functionality to ensure reliability
@Falamarcao Falamarcao merged commit b0f37c0 into main Aug 12, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant