-
Notifications
You must be signed in to change notification settings - Fork 13
Migrate from pipenv to uv
#1047
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
d75009a to
c6146d7
Compare
so, fixed the regexp to support groovy
5e0ccb5 to
b2eda83
Compare
Add Groovy config to jvm_test_pattern
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Release for v1.103.2
.github/workflows/publish.yml
Outdated
| with: | ||
| user: __token__ | ||
| password: ${{ secrets.PYPI_API_TOKEN }} | ||
| run: uv publish --token ${{ secrets.PYPI_API_TOKEN }} |
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.
I think we should define a new token as different name.
We should keep to be able to publish v1 and v2
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.
That's right. I'm going to update the token when I create a new package in PyPI.
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| matrix: | ||
| os: [ubuntu-22.04, windows-latest] |
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.
Don't we need to set multiple Python versions?
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.
With uv, we only need to support a specified version. In this case, that's 3.13 in .python-version.
| ## Prerequisite | ||
|
|
||
| - \>= Python 3.6 | ||
| - \>= Python 3.13 |
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.
Don't we support from 3.6? Is it ok??
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.
Same #1047 (comment)
|
Q: Will we continue to use this repo? If that’s the case, we’d want to be able to maintain both v1 and v2. |
Support groovy file in the maven profile
Release for v1.104.1
Fix robot ci failure
[LCHIB-612] Add a workaround for handling timezone abbreviations in d…
Release for v1.105.1
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 migrates the development environment from pipenv to uv, updating project configuration, CLI commands, and CI workflows to leverage the performance and modern features of uv.
- Migrates dependency and Python version management from pipenv to uv
- Updates configuration files (pyproject.toml, setup.cfg, .python-version) and documentation accordingly
- Revamps CI/CD workflows by removing pipenv steps and introducing uv-based actions
Reviewed Changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| setup.cfg | Updated python_requires and removed duplicate dependency definitions |
| pyproject.toml | Added complete project metadata and uv configuration |
| launchable/version.py | Replaced pkg_resources usage with importlib.metadata |
| README.md | Updated installation and task commands from pipenv to uv |
| Pipfile | Removed as part of the migration |
| .python-version | Updated Python version from 3.6.15 to 3.13 |
| .github/workflows/test.yml | Revamped CI workflow using uv for dependency installing, testing, linting, etc. |
| .github/workflows/python-package.yml | Removed obsolete pipenv-based workflow |
| .github/workflows/publish.yml | Simplified publish workflow using uv publish command |
| .github/workflows/e2e.yml | Updated workflow with new branch condition and uv integration for end-to-end tests |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Yes, we will continue to use this repo.
That's right. In |
| set -x | ||
| launchable verify |
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.
don't change the command name??
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.
I will change the command name in another PR.
pyproject.toml
Outdated
| "click>=8.1", | ||
| "requests>=2.25", | ||
| "urllib3>=1.26", | ||
| "junitparser>=2.0.0", |
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.
in main branch, we updated the junitparser to v4
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.
Okay, I'm going to backport the main branch. Thank you for noticing!
| dynamic = ["version"] | ||
|
|
||
| [project.urls] | ||
| Homepage = "https://launchableinc.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.
Don't you change the information in this PR?
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.
I will change it in another PR as well as the command name. Thanks for reminding me.
Konboi
left a comment
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.
Left a comment, but I'll approve not to block your task
.github/workflows/publish.yml
Outdated
| with: | ||
| user: __token__ | ||
| password: ${{ secrets.PYPI_API_TOKEN }} | ||
| run: uv publish --token ${{ secrets.PYPI_API_TOKEN }} |
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.
It should probably be fine, but just to prevent anything from accidentally running on this branch and getting uploaded to PyPI,
could you temporarily change the variable name to something safer?
Change PYPI_API_TOKEN to SMART_TESTS_PYPI_API_TOKEN to prevent accidental publishing during development on feature branches. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|



Summary
This PR migrates the Launchable CLI development environment from
pipenvtouv, a modern Python package and project manager. This change brings significant performance improvements and simplifies the development workflow.🚀 Key Benefits
Performance Improvements
Simplified Python Version Management
Modern Tooling
📋 Changes Made
Configuration Updates
PipfileandPipfile.lock(replaced bypyproject.tomlanduv.lock)Development Workflow
uv run poe <task>uv run poe test- Run testsuv run poe lint- Code lintinguv run poe type- Type checkinguv run poe format- Code formattinguv run poe build- Build packagesCI/CD Improvements
uv tool installfor global CLI installationDocumentation Updates
🔧 Migration Guide for Developers
Before (pipenv)
pip install pipenv pipenv install --dev pipenv shell pipenv run testAfter (uv)
Key Advantages for Users
🧪 Testing
🔄 Breaking Changes
For End Users
launchableCLI functionality remains identicalpip install launchablefrom PyPIFor Contributors
uv run poe <task>instead ofpipenv run <task>📚 Additional Notes
Rename Github Actions files
python-publish.ymltopublish.ymlpython-package.ymltotest.ymlDependency Changes
pkg_resourcesto standard libraryimportlib.metadatafor version detectionPython Version Management
The
.python-versionfile serves as the authoritative source for the Python version requirement. When updating Python versions in the future, update these files:.python-versionpyproject.toml(requires-python)setup.cfg(python_requires)This migration positions the Launchable CLI for modern Python development practices while maintaining full backward compatibility for end users.