Releases: rafiattrach/m3
v0.4.0
What’s new
- DuckDB + Parquet backend – Local storage now uses DuckDB with Parquet instead of SQLite for faster, more scalable querying.
- Full MIMIC-IV support – Works with the full MIMIC-IV dataset (after you download and copy it into
m3_data/raw). - Simpler CLI –
m3 initnow takes care of the previousdownloadandconvertsteps with a cleaner UX. - MCP + containers – MCP server and config are wired for the DuckDB backend, and the Dockerfile is ready for kAgent/Kubernetes-style deployments.
- CI refresh – Tests and workflows are updated
v0.3.0 - Docker Support & Improved Onboarding
🐳 Docker Support
- Add official Docker images with
lite(SQLite) andbigqueryvariants - Standalone images with baked-in demo database for instant deployment
- Support for both local demo (100 patients) and full BigQuery (365k patients)
📚 Documentation Improvements
- Cleaner Quick Start with side-by-side SQLite/BigQuery configurations
- Add
llms-install.mdfor AI agent setup - Add Citation section with BibTeX for academic use
- Add Related Projects section for community adaptations
- Streamlined installation instructions with
uvxas primary method
🔧 User Experience
- Add
m3-mcpentry point for simpleruvxusage (no--fromneeded) - Update logos across webapp and README
- Add video tutorial references
🧪 Benchmarks & Testing
- Add GPT-OSS-20B EHRSQL benchmark results
- Fix valvuloplasty benchmark model answer
- Add bug/feature/question issue templates
🌐 Webapp
- Replace Formspree with EmailJS for contact form
- Add npm setup instructions to webapp README
- Remove deprecated query interface section
🐛 Bug Fixes
- Fix pre-commit CI uv symlink path
v0.2.0 - Modern Build System with UV + PDM Support
🚀 v0.2.0: Modern Build System with UV + PDM Support
🎯 Major Infrastructure Modernization
This release brings M3 into the modern Python packaging ecosystem, providing significantly faster installation and development workflows while maintaining 100% backwards compatibility.
✨ What's New
⚡ Dual Package Manager Support
Choose the installation method that works best for you:
Traditional (pip) - Unchanged, fully supported
pip install m3-mcpModern (UV) - ⚡ ~3x faster installation
# Install UV (one-time setup)
curl -LsSf https://astral.sh/uv/install.sh | sh
# For development
git clone https://github.com/rafiattrach/m3.git
cd m3
uv venv && uv sync🔧 Modernized Build System
- Build Backend:
setuptools→pdm-backend(more reliable, faster builds) - Dependency Management: Migrated to PEP 735
dependency-groupsstandard - Version Management: File-based versioning for better reproducibility
🏗️ Enhanced Developer Experience
- Faster CI/CD: GitHub Actions now use UV for ~3x faster builds
- Better Lock Files: Deterministic dependency resolution with
uv.lock - Cleaner Packaging: Removed redundant build configuration
📊 Performance Improvements
| Operation | Before (pip) | After (UV) | Speedup |
|---|---|---|---|
| Fresh Install | ~45s | ~15s | 3x faster |
| CI Build | ~2m 30s | ~1m 10s | 2x faster |
| Dev Setup | ~30s | ~10s | 3x faster |
🔄 Migration Summary
| Component | v0.1.5 | v0.2.0 |
|---|---|---|
| Build Backend | setuptools |
pdm-backend |
| Package Manager | pip only |
pip + uv |
| Dependencies | [project.optional-dependencies] |
[project.dependency-groups] |
| CI System | pip-based | UV-powered |
| Version Source | setuptools dynamic | PDM file-based |
✅ Backwards Compatibility Guarantee
What Still Works Exactly the Same:
- ✅ All
pip installcommands and workflows - ✅ All CLI commands (
m3 --version,m3 init, etc.) - ✅ All APIs and functionality
- ✅ All environment variables and configuration
- ✅ All existing documentation and tutorials
What's Enhanced:
- ✅ Faster alternative installation with UV
- ✅ More reliable builds with PDM backend
- ✅ Better development workflow options
🛠️ For Contributors
Development setup is now even easier:
Option 1: Traditional
git clone https://github.com/rafiattrach/m3.git
cd m3
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytestOption 2: Modern (Recommended)
git clone https://github.com/rafiattrach/m3.git
cd m3
uv venv && uv sync --dev
uv run pytest🐛 Bug Fixes & Improvements
- Fixed: Redundant build configuration removed
- Improved: Package metadata handling
- Enhanced: Test execution in CI environments
🔮 Looking Forward
This modernization sets the foundation for:
- Even faster development cycles
- Better dependency resolution
- Enhanced reproducibility across environments
- Future Python packaging standard adoption
📦 Installation
For End Users:
pip install m3-mcp==0.2.0For Developers (Fast):
git clone https://github.com/rafiattrach/m3.git
cd m3 && uv venv && uv syncFull Changelog: v0.1.5...v0.2.0
Questions? Open an issue or check our documentation.
v0.1.5 - Fix data download path
Rename ´data/´ to ´m3_data/´ to avoid user directory conflicts
v0.1.4: Merge pull request #26 from rafiattrach/fix-path-handling
Read-only filesystem errors when using pip install m3-mcp with Claude Desktop
Changed:
✅ Use home directory for data storage (pip installs)
✅ Remove noisy logs on m3 -v or m3 config
✅ Lazy directory creation
Install: pip install m3-mcp==0.1.4
Version 0.1.3 - Config Scripts Packaging Fix
🔧 Version 0.1.3 - Config Scripts Packaging Fix
Critical Bug Fix: Resolves m3 config command failing after pip install with "config script not found" error.
✅ Fixed
- Config scripts packaging: Move
mcp_client_configsto proper location for pip distribution - Data directory detection: Smart detection between development and production environments
- Module imports: Use proper module resolution instead of file paths
📝 Improved
- Version management: Single source of truth in
src/m3/__init__.py
🧪 Verified
- ✅ Development workflow:
git clone→pip install -e .→ all commands working - ✅ All 51 unit tests passing
v0.1.2 - Fix Package Distribution
🐛 Bug Fix
- Fixed missing mcp_client_configs in package distribution
- Resolves `m3 config` command failure after pip install
- Package now includes all necessary configuration scripts
📦 Installation
pip install m3-mcp==0.1.2
v0.1.1 - Automated PyPI Publishing
Release description:
🚀 What's New
- Automated PyPI Publishing: Releases now automatically publish to PyPI
- Secure OIDC Authentication: No API keys needed - uses GitHub's trusted publishing
- Proper Team Attribution: All authors credited
- Tag-Based Versioning: Git tags automatically control PyPI versions
🔧 Technical Changes
- Added GitHub Actions workflow for secure PyPI publishing
- Environment protection with approval gates
- Comprehensive testing before each publish
📦 Installation
pip install m3-mcp
For contributors: Normal development workflow unchanged - just create GitHub releases when ready to publish!