-
Notifications
You must be signed in to change notification settings - Fork 184
Metapackage #1734
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
base: dev
Are you sure you want to change the base?
Metapackage #1734
Conversation
…e new mito metapackage command
…fy included files for wheel distribution
… version checks and automated deployment to PyPI
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
…tallation instructions in README, and remove deprecated GitHub workflows. Introduce new scripts for version bumping and consistency checks across packages.
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.
Sweet. Nice work on this. It's going to be great to not have the messy commands. And make upgrading easy for users too!
There's one important change we need to make which is we want to also deploy these packages to testpypi when merging into dev. This is how we do a lot of testing of the tool and sanity check things before deploying to production.
Oh and also, if we end up not using the |
…Versioning, clarifying versioning scheme and consistency across Mito packages.
use dev version with timestamp
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 adds a pure “mito” metapackage to install both mitosheet
and mito-ai
, centralizes versioning, and modernizes CI/CD with a unified SemVer bump and release workflow.
- Introduces
mito
metapackage withpyproject.toml
and README - Bumps all packages (
mitosheet
,mito-ai
,mito
) to 1.0.0 via a newversion.json
- Overhauls deployment scripts and GitHub Actions for coordinated releases
Reviewed Changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
version.json | New centralized SemVer version file |
mitosheet/package.json | Updated version to 1.0.0 |
mito/pyproject.toml | Added metapackage definition with exact dependencies |
mito/README.md | Added installation and versioning instructions for the metapackage |
mito-ai/package.json | Updated version to 1.0.0 |
deployment/check_versions.py | New script to verify version consistency |
deployment/bump_version.py | Unified bump script for all packages |
deployment/README.md | Updated docs for new bump and deploy scripts |
README.md | Switched install instructions to pip install mito |
.github/workflows/deploy.yml | New consolidated workflow for auto/manual SemVer releases |
Comments suppressed due to low confidence (4)
.github/workflows/deploy.yml:33
- The
set-output
command is deprecated and will break the workflow. Use the new syntax:echo "branch=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_OUTPUT
.
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
.github/workflows/deploy.yml:103
- GitHub Actions expressions do not support the
||
fallback operator. Sinceversion_type
has a default ofpatch
, reference it directly (${{ inputs.version_type }}
) or add a conditional step.
python deployment/bump_version.py "${{ inputs.version_type || 'patch' }}"
deployment/README.md:13
- The README references
deploy.py
, but no such script exists. Update this entry to match the newbump_version.py
andcheck_versions.py
scripts or remove it.
- **`deploy.py`** - Local deployment script for mitosheet
deployment/bump_version.py:123
- [nitpick] The new version‐bumping logic in
bump_all_versions
lacks automated tests. Adding unit tests for each bump type and specific version paths will ensure reliability and catch regressions.
def bump_all_versions(bump_type: str = 'patch', specific_version: Union[str, None] = None) -> str:
version_data = json.load(f) | ||
return version_data['version'] | ||
else: | ||
return '1.0.0' # Default starting version |
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.
[nitpick] Defaulting to 1.0.0
when version.json
is missing may mask configuration errors. Consider raising an explicit error or warning so missing files aren't silently ignored.
Copilot uses AI. Check for mistakes.
Description
This PR introduces the Mito metapackage - a convenience package that automatically installs both
mitosheet
andmito-ai
with a singlepip install mito
command. This addresses user requests for simplified installation and provides a unified entry point for the Mito ecosystem.Key Changes
🎯 Pure Metapackage Implementation
mito/
directory with metapackage configurationmitosheet
andmito_ai
directly1.0.0
,1.0.1
)🤖 Automated CI/CD Pipeline
📦 Package Configuration
mito-ai==1.0.0
,mitosheet==1.0.0
(exact version matching)Motivation
Before: Users needed to install both packages separately:
After: Single command installs everything:
This simplifies:
Testing
✅ Core Functionality Testing
pip install mito
successfully installs both dependenciesimport mitosheet
andimport mito_ai
work after metapackage installation🏗️ Build & Deployment Testing
python -m build
creates correct wheel and sdist🤖 CI/CD Workflow Testing
workflow_dispatch
with and without force-deploy🔄 Real-World Scenarios
Documentation
📝 Required Documentation Updates
Installation Documentation
pip install mito
New Documentation
Developer Documentation
🔗 Documentation Links to Review
🚀 Next Steps After Merge
This metapackage represents a significant improvement in user experience while maintaining full backward compatibility. Users can continue using individual packages or adopt the convenient metapackage approach with unified SemVer versioning.