Conversation
- Switch from FLIT_USE_VCS=0 env var to --no-use-vcs CLI flag (flit 3.12.0 does not respect the env var) - Restore twine to prerequisites check - Restore verify_wheel_with_twine call before signing Add release tooling: verification scripts, build fixes, and docs - Add verify_apache_artifacts.py for GPG signature, checksum, and license verification - Add scripts/README.md with build, release, and voter verification instructions (uv-based) - Add .rat-excludes for Apache RAT license header checks - Add verify_ui_build.sh with Apache license header - Fix release helper: add verify_wheel_with_twine function, --dry-run flag, remove -incubating suffix from wheel (invalid per PEP 427), clean up original flit artifacts after creating incubating copies - Add tests, plugin_tests, and representative examples to flit sdist includes
adds uv run to examples Co-authored-by: Stefan Krawczyk <stefan@dagworks.io>
| new_tar_ball = f"dist/{package_name}-{version.lower()}-incubating-src.tar.gz" | ||
| _modify_tarball_for_apache_release(tarball_path[0], new_tar_ball, package_name) | ||
| # Remove original flit tarball (only keep the incubating copy) | ||
| os.remove(tarball_path[0]) |
There was a problem hiding this comment.
What's in position [0]? Is there a risk it's ever something else? Maybe use list.index? Same applies to wheel_file.
|
|
||
| wheel_signed_files = sign_artifacts(wheel_file) | ||
|
|
||
| files_to_upload = [new_tar_ball] + new_tar_ball_singed + [wheel_file] + wheel_signed_files |
There was a problem hiding this comment.
https://docs.astral.sh/ruff/rules/collection-literal-concatenation/
Also typo: singed -> signed
| # Policy on source versus distribution | ||
|
|
||
| Apache Hamilton is an apache-incubating project. As such, we intend to follow all Apache guidelines to | ||
| both the spirit (and when applicable) the letter. |
There was a problem hiding this comment.
| both the spirit (and when applicable) the letter. | |
| both the spirit and (when applicable) the letter. |
| - Apache RAT jar for license checking (optional, for verification) | ||
|
|
||
| ```bash | ||
| # Install uv (if not already installed) |
There was a problem hiding this comment.
| # Install uv (if not already installed) | |
| # Install uv (unless already installed) |
|
|
||
| # Create a virtual environment with build dependencies | ||
| uv venv --python 3.11 | ||
| uv pip install flit twine |
There was a problem hiding this comment.
Perhaps uv sync with a "build-tools" group?
| uv run pytest tests/ -x -q | ||
|
|
||
| # Run plugin tests (requires additional dependencies) | ||
| uv pip install dask graphviz networkx pandera pydantic polars pyarrow scikit-learn |
There was a problem hiding this comment.
Any reason not to include this in the testing group? If there is... Make another group called testing-plugins.
|
|
||
| ```bash | ||
| # Create a fresh environment and install build tools | ||
| uv venv --python 3.11 |
There was a problem hiding this comment.
There is a command to clean the existing venv, won't hurt to add it. (--clean ?)
| ### Hello World (no extra deps) | ||
| ```bash | ||
| cd examples/hello_world | ||
| uv run python my_script.py |
There was a problem hiding this comment.
Should we have uv entry points for all of these? Or do we specifically want to avoid shortcuts in this stage? Applies to all of the below as well.
| print(f" {f}") | ||
| print("\nTo do a real release, re-run without --dry-run.") | ||
| else: | ||
| # Upload artifacts |
There was a problem hiding this comment.
Have you considered https://packaging.python.org/en/latest/guides/using-testpypi/?
There was a problem hiding this comment.
I suggest running ruff check --select=ALL --fix on this file
Once this is merged I can do a release of apache-hamilton.
Changes
How I tested this
Notes
Checklist