-
Notifications
You must be signed in to change notification settings - Fork 1
Over-haul of CI #166
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
Over-haul of CI #166
Conversation
The objective of the project is to be able to do SQL stuff without a CrateDB instance, so it does not make any sense to have one.
Removed 3.8 which reached EOL and ignored 3.9 which reaches it soon. https://devguide.python.org/versions/
* Use uv in pipelines * Add path for more fine-controlled executions fixes crate#39 * Change parent project to uv * Update metadata
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.
Excellent! 💯
release_javascript: | ||
uses: ./.github/workflows/release_javascript.yml | ||
release_python: | ||
uses: ./.github/workflows/release_python.yml |
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.
Nice!
urls.changelog = "https://github.com/crate/cratedb-sqlparse/blob/main/CHANGES.md" | ||
urls.documentation = "https://github.com/crate/cratedb-sqlparse" | ||
urls.homepage = "https://github.com/crate/cratedb-sqlparse" | ||
urls.repository = "https://github.com/crate/cratedb-sqlparse" | ||
|
||
[project.urls] | ||
Homepage = "https://github.com/crate/cratedb-sqlparse" | ||
Documentation = "https://github.com/crate/cratedb-sqlparse" | ||
Repository = "https://github.com/crate/cratedb-sqlparse" | ||
Changelog = "https://github.com/crate/cratedb-sqlparse/releases" |
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.
Is this section compatible with the convention pyproject-fmt
proposes?
poe format
doesn't do it differently?
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'd say so, I was actually getting errors when testing/building in python 3.14 if I recall and changing it this way fixed it, this is afaik the pep621 way of doing it, https://packaging.python.org/en/latest/specifications/well-known-project-urls/ so if pyproject-fmt
complained (by not following the spec) I'd ditch it
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.
pyproject-fmt
is not complaining. It just applies formatting conventions and is not violating PEP621 at all, it just applies a different formatting. I'd not ditch it, because it provides a canonical form for the project metadata file, with the same benefit for collaborative development like the other code formatters are providing it.
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 was a conditional statement
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.
Hi again. This patch explains better what I was referring to.
python -m pip install build twine | ||
cd cratedb_sqlparse_py | ||
python -m build | ||
twine check dist/{*.tar.gz,*.whl} |
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.
If you like it, a variant of those incantations could be:
cd cratedb_sqlparse_py
python -m pip install '.[release]'
poe release
cratedb-sqlparse/cratedb_sqlparse_py/pyproject.toml
Lines 87 to 90 in 6542f48
release = [ | |
"build<2", | |
"twine<7", | |
] |
cratedb-sqlparse/cratedb_sqlparse_py/pyproject.toml
Lines 221 to 224 in 6542f48
release = [ | |
{ cmd = "python -m build" }, | |
{ cmd = "twine upload dist/*" }, | |
] |
In this spirit, CI and manual procedures will be synchronized, through the canonical poe release
command.
Lines 109 to 113 in 6542f48
#### Manual release. | |
Optionally, build the package and upload to PyPI manually. | |
```shell | |
uv run poe release | |
``` |
For a long time I was unhappy with how the setup of this project ended up being, it was prone to breaking and made maintenance annoying. I've simplified and improve things to address these issues:
Summary of the changes / Why this is an improvement
Checklist