You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hamilton.apache.org by Stefan Krawczyk <st...@gmail.com> on 2026/04/04 05:20:05 UTC
[VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Hi all,
This is a call for a vote on releasing Apache Hamilton apache-hamilton
1.90.0-incubating, release candidate 0.
This release includes the following changes (see CHANGELOG for details):
Features:
> - While loop DFS implementation (#1483)
> - Async data validator support
> - Add `unpack_fields` annotation for unpacking structured fields (#1305)
> - Expose DAG validation as LLM tools via MCP (#1490)
> - Add NDJSON support in polars (#1431)
> - Enhance visualization with display_name tag support
Bug fixes:
> - Fix `@resolve` decorator not calling `validate()` on returned decorators
> (#1524)
> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> - Fix spark failures on Python 3.14
> - Fix local (Windows) tests (#1302)
> - Fix typer version requirement for click 8.3 help compatibility
Performance:
> - Use deque for BFS queue in graph traversal (#1494)
Platform changes:
> - Drop Python 3.8 and 3.9 support
> - Add Python 3.13 and 3.14 support
> - Remove usage telemetry (PostHog) (#1512)
> - Remove RayWorkflows (#1359)
> - Update `dlt` plugin with changes to `loader_file_format`
> - Package renamed from sf-hamilton to apache-hamilton
The artifacts for this release candidate can be found at:
https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
The Git tag to be voted upon is: apache-hamilton-v1.90.0-incubating-RC0
The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
But the functional release is from this commit from main:
e84ed90b4428d777449b9bfc413ed86ee41a77c9
Release artifacts are signed with the following key:
FE668E857E89A11C5E5C000CA8D3D15600545C61
The KEYS file is available at:
https://downloads.apache.org/incubator/hamilton/KEYS
Please download, verify, and test the release candidate. You can find the
instructions to do so here
<https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release>
(and
if you're having issues following them please reply and I'll help).
The vote will run for a minimum of 72 hours, likely much longer due to the
holiday.
Please vote:
[ ] +1 Release this package as Apache Hamilton apache-hamilton
1.90.0-incubating
[ ] +0 No opinion
[ ] -1 Do not release this package because... (Please provide a reason)
Checklist for reference:
[ ] Incubating in name.
[ ] Download links are valid.
[ ] Checksums and signatures.
[ ] LICENSE/NOTICE/DISCLAIMER files exist
[ ] No unexpected binary files
[ ] All source files have ASF headers
[ ] Can compile from source
On behalf of the Apache Hamilton PPMC,
Stefan Krawczyk
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Jarek Potiuk <ja...@potiuk.com>.
Sorry I was not around - but I've been 1000% busy. Will do better next time.
On Mon, Apr 20, 2026 at 2:23 AM Stefan Krawczyk <st...@gmail.com>
wrote:
> thanks PJ! I'm calling the vote. +4: Stefan, Jernej, Elijah, PJ. Email
> result in a few.
>
>
> On Sun, Apr 19, 2026 at 11:49 AM PJ Fanning <fa...@apache.org> wrote:
>
> > +1 binding for the IPMC vote
> >
> > [x] Incubating in name.
> > [x] Download links are valid.
> > [x] Checksums and signatures.
> > [x] LICENSE/NOTICE/DISCLAIMER files exist
> > [x] No unexpected binary files
> > [x] All source files have ASF headers
> > [ ] Can compile from source
> >
> > I just concentrated on checking the source release and the contents of
> the
> > whl file. I did not attempt to build the artifacts.
> >
> > On 2026/04/18 21:01:13 Stefan Krawczyk wrote:
> > > Hey mentors,
> > >
> > > Can someone claim verifying this RC please? I'm okay waiting, I would
> > just
> > > like to know who's turn it is to help please.
> > >
> > > Cheers,
> > >
> > > Stefan
> > >
> > > On Sun, Apr 12, 2026, 11:20 PM Stefan Krawczyk <
> > stefan.krawczyk@gmail.com>
> > > wrote:
> > >
> > > > Awesome, if one of the mentors has time to check, then we can call
> this
> > > > vote or not.
> > > >
> > > > You can try this gist to make it easier on you:
> > > > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc
> > > >
> > > > Cheers,
> > > >
> > > > Stefan
> > > >
> > > > On Sun, Apr 12, 2026 at 7:20 AM Jernej Frank <
> > > > jernej.frank@physics.ox.ac.uk> wrote:
> > > >
> > > >> Thanks for that, this works! Maybe we can put this script into the
> > repo?
> > > >>
> > > >> Happy to change to +1 for me.
> > > >>
> > > >> Best,
> > > >> Jernej
> > > >> ________________________________
> > > >> From: Stefan Krawczyk <st...@gmail.com>
> > > >> Sent: 11 April 2026 22:03
> > > >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> > > >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> > > >> 1.90.0-incubating (release candidate 0)
> > > >>
> > > >> in a fresh directory (not repo)*.
> > > >>
> > > >> On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <
> > > >> stefan.krawczyk@gmail.com>
> > > >> wrote:
> > > >>
> > > >> > @jernej, do you want to try again? I created this gist that is a
> > script
> > > >> > that walks through the process:
> > > >> > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
> > > >> >
> > > >> > You don't need to use the scripts to validate -- and that's not
> what
> > > >> we're
> > > >> > voting on. If you use the above script, it should set everything
> up
> > > >> fresh
> > > >> > if you do it in a fresh repo and have `uv` installed.
> > > >> >
> > > >> > On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
> > > >> > jernej.frank@physics.ox.ac.uk> wrote:
> > > >> >
> > > >> >> Hey, I tried following the verification readme and use the
> scripts:
> > > >> >>
> > > >>
> > https://github.com/apache/hamilton/tree/main/scripts#verification-script
> > > >> >> and could not get a lot of things working out of the box.
> > > >> >>
> > > >> >> -1
> > > >> >>
> > > >> >> Checklist for reference:
> > > >> >>
> > > >> >> [x] Incubating in name.
> > > >> >> [x] Download links are valid.
> > > >> >> The actual link is fine but the readme is wrong
> > > >> >> ```
> > > >> >> svn export
> > > >> >>
> > > >>
> >
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
> > > >> >> hamilton-rc${RC}
> > > >> >>
> > > >> >> svn: E170000: URL '
> > > >> >>
> > > >>
> >
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0
> > > >> '
> > > >> >> doesn't exist
> > > >> >> ```
> > > >> >> [ ] Checksums and signatures.
> > > >> >> I can verify gpg keys but the readme is missing a -src in the
> name
> > for
> > > >> >> the source.
> > > >> >> ```
> > > >> >> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
> > > >> >> ${PACKAGE}-${VERSION}-incubating.tar.gz
> > > >> >> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc':
> No
> > such
> > > >> >> file or directory
> > > >> >> gpg: verify signatures failed: No such file or directory
> > > >> >> ```
> > > >> >>
> > > >> >> The wheel gpg keys worked.
> > > >> >> I could not get sha verification working:
> > > >> >> ```
> > > >> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
> > > >> >> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such
> > file
> > > >> or
> > > >> >> directory
> > > >> >>
> > > >> >> shasum -a 512 -c
> ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
> > > >> >> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no
> > > >> properly
> > > >> >> formatted SHA checksum lines found
> > > >> >>
> > > >> >> shasum -a 512 -c ${WHEEL_NAME}.sha512
> > > >> >> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no
> properly
> > > >> >> formatted SHA checksum lines found
> > > >> >> ```
> > > >> >>
> > > >> >> Similarly, in case of using the script at the end:
> > > >> >> ```
> > > >> >> # Run from the extracted source directory
> > > >> >> (${PACKAGE}-${VERSION}-incubating/)
> > > >> >> # Verify GPG signatures and SHA512 checksums
> > > >> >> uv run python scripts/verify_apache_artifacts.py signatures
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Verifying Signatures and Checksums
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >> Found 2 artifact(s) to verify:
> > > >> >>
> > > >> >> Verifying: apache_hamilton-1.90.0.tar.gz
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569
> > bytes)
> > > >> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> > > >> >> ✗ Signature file not found
> > > >> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> > > >> >> ✗ Checksum file not found
> > > >> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> > > >> >> ✓ Archive is readable and contains 706 files
> > > >> >>
> > > >> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl
> > (475,199
> > > >> >> bytes)
> > > >> >> Verifying GPG signature:
> > apache_hamilton-1.90.0-py3-none-any.whl.asc
> > > >> >> ✗ Signature file not found
> > > >> >> Verifying SHA512 checksum:
> > > >> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> > > >> >> ✗ Checksum file not found
> > > >> >> Checking wheel readability:
> > apache_hamilton-1.90.0-py3-none-any.whl
> > > >> >> ✓ Wheel is readable and contains 151 files
> > > >> >>
> > > >> >>
> > > >> >> ❌ Verification failed.
> > > >> >> ```
> > > >> >> [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > > >> >> See above and below, there's some files in the examples that
> don't
> > have
> > > >> >> licenceses but are part of the source package.
> > > >> >> [x] No unexpected binary files
> > > >> >> [ ] All source files have ASF headers
> > > >> >> I ran the provided script, but rat-excludes seems not to be
> found.
> > Some
> > > >> >> of these files admit comments so they could have licence headers
> > > >> >> ```
> > > >> >> # Verify license headers (requires Apache RAT)
> > > >> >> uv run python scripts/verify_apache_artifacts.py licenses
> --rat-jar
> > > >> >> apache-rat-0.15.jar
> > > >> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> Extracting archive...
> > > >> >> ✓ Extracted to temp directory
> > > >> >> ⚠️ Warning: .rat-excludes not found, running without
> excludes
> > > >> >> Running Apache RAT (XML format for parsing)...
> > > >> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> > > >> >> Running Apache RAT (text format for review)...
> > > >> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> > > >> >> Parsing RAT report...
> > > >> >> ✓ Scanned 706 files
> > > >> >> ✓ Found 33 files with license issues
> > > >> >>
> > > >> >> ⚠️ License Issues Found:
> > > >> >>
> > > >> >> Unapproved Licenses (33 files):
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> > > >> >> ... and 23 more
> > > >> >>
> > > >> >> 📄 Reports saved:
> > > >> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> > > >> >> - dist/rat-report-apache_hamilton-1-90-0.txt
> > (human-readable)
> > > >> >>
> > > >> >> ❌ License check failed!
> > > >> >>
> > > >> >> ❌ Verification failed.
> > > >> >> ```
> > > >> >> [x] Can compile from source
> > > >> >>
> > > >> >> *
> > > >> >> the tar extracts into `apache_hamilton-1.90.0` so `cd
> > > >> >> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
> > > >> >> *
> > > >> >> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected
> > > >> argument
> > > >> >> '--clean' found`
> > > >> >> *
> > > >> >> flit worked and could install wheel
> > > >> >> *
> > > >> >> cannot install test dependencies: `error: Distribution
> > > >> `lancedb==0.30.2 @
> > > >> >> registry+https://pypi.org/simple` <https://pypi.org/simple> <
> https://pypi.org/simple> <
> > https://pypi.org/simple> <
> > > >> https://pypi.org/simple> can't be
> > > >> >> installed because it doesn't have a source distribution or wheel
> > for
> > > >> the
> > > >> >> current platform` — seems like uv cannot resolve lance db. I am
> on
> > > >> `hint:
> > > >> >> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
> > > >> >> *
> > > >> >> hello_world runs -ish: only constructing the dag at the end fais
> > if you
> > > >> >> don't have graphviz: `ERROR:hamilton.graph: graphviz is required
> > for
> > > >> >> visualizing the function graph. Install it with: pip install
> > > >> >> "sf-hamilton[visualization]" or pip install graphviz`
> > > >> >>
> > > >> >>
> > > >> >> Complete verification output:
> > > >> >> ```
> > > >> >> # Verify everything
> > > >> >> uv run python scripts/verify_apache_artifacts.py all --rat-jar
> > > >> >> apache-rat-0.15.jar
> > > >> >>
> > > >> >> # Inspect artifact contents
> > > >> >> uv run python scripts/verify_apache_artifacts.py list-contents
> > > >> >> dist/apache-hamilton-1.90.0-incubating.tar.gz
> > > >> >> uv run python scripts/verify_apache_artifacts.py list-contents
> > > >> >> dist/apache_hamilton-1.90.0-py3-none-any.whl
> > > >> >>
> > > >> >> # Validate wheel metadata
> > > >> >> uv run python scripts/verify_apache_artifacts.py twine-check
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Complete Apache Artifacts Verification
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >>
> > > >> >> [1/2] Verifying signatures and checksums...
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Verifying Signatures and Checksums
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >> Found 4 artifact(s) to verify:
> > > >> >>
> > > >> >> Verifying: rat-report-apache_hamilton-1-90-0.xml
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml
> (236,467
> > > >> bytes)
> > > >> >> Verifying GPG signature:
> > rat-report-apache_hamilton-1-90-0.xml.asc
> > > >> >> ✗ Signature file not found
> > > >> >> Verifying SHA512 checksum:
> > > >> rat-report-apache_hamilton-1-90-0.xml.sha512
> > > >> >> ✗ Checksum file not found
> > > >> >>
> > > >> >> Verifying: apache_hamilton-1.90.0.tar.gz
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569
> > bytes)
> > > >> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> > > >> >> ✗ Signature file not found
> > > >> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> > > >> >> ✗ Checksum file not found
> > > >> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> > > >> >> ✓ Archive is readable and contains 706 files
> > > >> >>
> > > >> >> Verifying: rat-report-apache_hamilton-1-90-0.txt
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt
> (128,073
> > > >> bytes)
> > > >> >> Verifying GPG signature:
> > rat-report-apache_hamilton-1-90-0.txt.asc
> > > >> >> ✗ Signature file not found
> > > >> >> Verifying SHA512 checksum:
> > > >> rat-report-apache_hamilton-1-90-0.txt.sha512
> > > >> >> ✗ Checksum file not found
> > > >> >>
> > > >> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl
> > (475,199
> > > >> >> bytes)
> > > >> >> Verifying GPG signature:
> > apache_hamilton-1.90.0-py3-none-any.whl.asc
> > > >> >> ✗ Signature file not found
> > > >> >> Verifying SHA512 checksum:
> > > >> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> > > >> >> ✗ Checksum file not found
> > > >> >> Checking wheel readability:
> > apache_hamilton-1.90.0-py3-none-any.whl
> > > >> >> ✓ Wheel is readable and contains 151 files
> > > >> >>
> > > >> >>
> > > >> >> [2/2] Verifying licenses with Apache RAT...
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Verifying Licenses with Apache RAT
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >> Found 1 tar.gz artifact(s) to check:
> > > >> >>
> > > >> >>
> > > >> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> > > >> >>
> > > >> >>
> > > >>
> >
> --------------------------------------------------------------------------------
> > > >> >> Extracting archive...
> > > >> >> ✓ Extracted to temp directory
> > > >> >> ⚠️ Warning: .rat-excludes not found, running without
> excludes
> > > >> >> Running Apache RAT (XML format for parsing)...
> > > >> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> > > >> >> Running Apache RAT (text format for review)...
> > > >> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> > > >> >> Parsing RAT report...
> > > >> >> ✓ Scanned 706 files
> > > >> >> ✓ Found 33 files with license issues
> > > >> >>
> > > >> >> ⚠️ License Issues Found:
> > > >> >>
> > > >> >> Unapproved Licenses (33 files):
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> > > >> >> -
> > > >> >>
> > > >>
> >
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> > > >> >> ... and 23 more
> > > >> >>
> > > >> >> 📄 Reports saved:
> > > >> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> > > >> >> - dist/rat-report-apache_hamilton-1-90-0.txt
> > (human-readable)
> > > >> >>
> > > >> >> ❌ License check failed!
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Verification Summary
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >> Results:
> > > >> >> Signatures & Checksums: ❌ FAIL
> > > >> >> License Compliance: ❌ FAIL
> > > >> >>
> > > >> >> ❌ Verification failed.
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Listing Artifact Contents
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >>
> > > >> >> ❌ Artifact not found:
> dist/apache-hamilton-1.90.0-incubating.tar.gz
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Listing Artifact Contents
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >>
> > > >> >> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Total files: 151
> > > >> >>
> > > >> >> Top-level structure:
> > > >> >> apache_hamilton-1.90.0.dist-info (7 files)
> > > >> >> hamilton (144 files)
> > > >> >>
> > > >> >> Files:
> > > >> >>
> > > >> >> apache_hamilton-1.90.0.dist-info/METADATA
> > > >> >> 22,665
> > > >> >> apache_hamilton-1.90.0.dist-info/RECORD
> > > >> >> 13,565
> > > >> >> apache_hamilton-1.90.0.dist-info/WHEEL
> > > >> >> 82
> > > >> >> apache_hamilton-1.90.0.dist-info/entry_points.txt
> > > >> >> 421
> > > >> >> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
> > > >> >> 554
> > > >> >> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
> > > >> >> 12,602
> > > >> >> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
> > > >> >> 182
> > > >> >> hamilton/__init__.py
> > > >> >> 1,086
> > > >> >> hamilton/ad_hoc_utils.py
> > > >> >> 5,677
> > > >> >> hamilton/async_driver.py
> > > >> >> 19,548
> > > >> >> hamilton/base.py
> > > >> >> 19,860
> > > >> >> hamilton/caching/__init__.py
> > > >> >> 785
> > > >> >> hamilton/caching/adapter.py
> > > >> >> 61,482
> > > >> >> hamilton/caching/cache_key.py
> > > >> >> 2,497
> > > >> >> hamilton/caching/fingerprinting.py
> > > >> >> 9,986
> > > >> >> hamilton/caching/stores/__init__.py
> > > >> >> 785
> > > >> >> hamilton/caching/stores/base.py
> > > >> >> 8,529
> > > >> >> hamilton/caching/stores/file.py
> > > >> >> 5,229
> > > >> >> hamilton/caching/stores/memory.py
> > > >> >> 11,159
> > > >> >> hamilton/caching/stores/sqlite.py
> > > >> >> 9,965
> > > >> >> hamilton/caching/stores/utils.py
> > > >> >> 1,370
> > > >> >> hamilton/cli/__init__.py
> > > >> >> 785
> > > >> >> hamilton/cli/__main__.py
> > > >> >> 9,202
> > > >> >> hamilton/cli/commands.py
> > > >> >> 4,446
> > > >> >> hamilton/cli/logic.py
> > > >> >> 10,338
> > > >> >> hamilton/common/__init__.py
> > > >> >> 3,075
> > > >> >> hamilton/contrib/__init__.py
> > > >> >> 1,644
> > > >> >> hamilton/data_quality/__init__.py
> > > >> >> 785
> > > >> >> hamilton/data_quality/base.py
> > > >> >> 6,890
> > > >> >> hamilton/data_quality/default_validators.py
> > > >> >> 21,184
> > > >> >> hamilton/data_quality/pandera_validators.py
> > > >> >> 4,493
> > > >> >> hamilton/dataflows/__init__.py
> > > >> >> 27,999
> > > >> >> hamilton/dataflows/template/README.md
> > > >> >> 958
> > > >> >> hamilton/dataflows/template/__init__.py
> > > >> >> 1,721
> > > >> >> hamilton/dataflows/template/author.md
> > > >> >> 940
> > > >> >> hamilton/dataflows/template/requirements.txt
> > > >> >> 0
> > > >> >> hamilton/dataflows/template/tags.json
> > > >> >> 98
> > > >> >> hamilton/dataflows/template/valid_configs.jsonl
> > > >> >> 3
> > > >> >> hamilton/dev_utils/__init__.py
> > > >> >> 785
> > > >> >> hamilton/dev_utils/deprecation.py
> > > >> >> 7,774
> > > >> >> hamilton/driver.py
> > > >> >> 95,686
> > > >> >> hamilton/execution/__init__.py
> > > >> >> 785
> > > >> >> hamilton/execution/debugging_utils.py
> > > >> >> 2,041
> > > >> >> hamilton/execution/executors.py
> > > >> >> 18,833
> > > >> >> hamilton/execution/graph_functions.py
> > > >> >> 16,527
> > > >> >> hamilton/execution/grouping.py
> > > >> >> 17,480
> > > >> >> hamilton/execution/state.py
> > > >> >> 23,957
> > > >> >> hamilton/experimental/__init__.py
> > > >> >> 1,100
> > > >> >> hamilton/experimental/databackend.py
> > > >> >> 1,397
> > > >> >> hamilton/experimental/decorators/__init__.py
> > > >> >> 785
> > > >> >> hamilton/experimental/decorators/parameterize_frame.py
> > > >> >> 8,684
> > > >> >> hamilton/experimental/h_async.py
> > > >> >> 1,057
> > > >> >> hamilton/experimental/h_cache.py
> > > >> >> 15,259
> > > >> >> hamilton/experimental/h_dask.py
> > > >> >> 1,166
> > > >> >> hamilton/experimental/h_databackends.py
> > > >> >> 5,075
> > > >> >> hamilton/experimental/h_ray.py
> > > >> >> 1,124
> > > >> >> hamilton/experimental/h_spark.py
> > > >> >> 1,223
> > > >> >> hamilton/function_modifiers/README
> > > >> >> 2,672
> > > >> >> hamilton/function_modifiers/__init__.py
> > > >> >> 3,812
> > > >> >> hamilton/function_modifiers/adapters.py
> > > >> >> 38,908
> > > >> >> hamilton/function_modifiers/base.py
> > > >> >> 33,403
> > > >> >> hamilton/function_modifiers/configuration.py
> > > >> >> 13,422
> > > >> >> hamilton/function_modifiers/delayed.py
> > > >> >> 9,448
> > > >> >> hamilton/function_modifiers/dependencies.py
> > > >> >> 10,014
> > > >> >> hamilton/function_modifiers/expanders.py
> > > >> >> 56,117
> > > >> >> hamilton/function_modifiers/macros.py
> > > >> >> 73,755
> > > >> >> hamilton/function_modifiers/metadata.py
> > > >> >> 17,253
> > > >> >> hamilton/function_modifiers/recursive.py
> > > >> >> 40,426
> > > >> >> hamilton/function_modifiers/validation.py
> > > >> >> 12,484
> > > >> >> hamilton/function_modifiers_base.py
> > > >> >> 1,462
> > > >> >> hamilton/graph.py
> > > >> >> 50,459
> > > >> >> hamilton/graph_types.py
> > > >> >> 10,478
> > > >> >> hamilton/graph_utils.py
> > > >> >> 1,656
> > > >> >> hamilton/htypes.py
> > > >> >> 17,746
> > > >> >> hamilton/io/__init__.py
> > > >> >> 1,183
> > > >> >> hamilton/io/data_adapters.py
> > > >> >> 7,987
> > > >> >> hamilton/io/default_data_loaders.py
> > > >> >> 5,617
> > > >> >> hamilton/io/materialization.py
> > > >> >> 21,578
> > > >> >> hamilton/io/utils.py
> > > >> >> 5,073
> > > >> >> hamilton/lifecycle/__init__.py
> > > >> >> 2,053
> > > >> >> hamilton/lifecycle/api.py
> > > >> >> 31,981
> > > >> >> hamilton/lifecycle/base.py
> > > >> >> 44,599
> > > >> >> hamilton/lifecycle/default.py
> > > >> >> 32,890
> > > >> >> hamilton/log_setup.py
> > > >> >> 1,714
> > > >> >> hamilton/models.py
> > > >> >> 3,265
> > > >> >> hamilton/node.py
> > > >> >> 17,153
> > > >> >> hamilton/plugins/README.md
> > > >> >> 2,659
> > > >> >> hamilton/plugins/__init__.py
> > > >> >> 785
> > > >> >> hamilton/plugins/dask_extensions.py
> > > >> >> 1,518
> > > >> >> hamilton/plugins/dlt_extensions.py
> > > >> >> 5,585
> > > >> >> hamilton/plugins/geopandas_extensions.py
> > > >> >> 1,572
> > > >> >> hamilton/plugins/h_dask.py
> > > >> >> 15,566
> > > >> >> hamilton/plugins/h_ddog.py
> > > >> >> 22,392
> > > >> >> hamilton/plugins/h_diskcache.py
> > > >> >> 6,683
> > > >> >> hamilton/plugins/h_experiments/__init__.py
> > > >> >> 892
> > > >> >> hamilton/plugins/h_experiments/__main__.py
> > > >> >> 2,181
> > > >> >> hamilton/plugins/h_experiments/cache.py
> > > >> >> 1,395
> > > >> >> hamilton/plugins/h_experiments/data_model.py
> > > >> >> 2,180
> > > >> >> hamilton/plugins/h_experiments/hook.py
> > > >> >> 7,240
> > > >> >> hamilton/plugins/h_experiments/server.py
> > > >> >> 12,493
> > > >> >> hamilton/plugins/h_kedro.py
> > > >> >> 5,583
> > > >> >> hamilton/plugins/h_logging.py
> > > >> >> 15,225
> > > >> >> hamilton/plugins/h_mcp/__init__.py
> > > >> >> 1,068
> > > >> >> hamilton/plugins/h_mcp/__main__.py
> > > >> >> 1,137
> > > >> >> hamilton/plugins/h_mcp/_helpers.py
> > > >> >> 4,152
> > > >> >> hamilton/plugins/h_mcp/_templates.py
> > > >> >> 13,528
> > > >> >> hamilton/plugins/h_mcp/server.py
> > > >> >> 12,392
> > > >> >> hamilton/plugins/h_mlflow.py
> > > >> >> 14,442
> > > >> >> hamilton/plugins/h_narwhals.py
> > > >> >> 4,677
> > > >> >> hamilton/plugins/h_openlineage.py
> > > >> >> 13,129
> > > >> >> hamilton/plugins/h_opentelemetry.py
> > > >> >> 5,928
> > > >> >> hamilton/plugins/h_pandas.py
> > > >> >> 10,633
> > > >> >> hamilton/plugins/h_pandera.py
> > > >> >> 4,952
> > > >> >> hamilton/plugins/h_polars.py
> > > >> >> 12,507
> > > >> >> hamilton/plugins/h_polars_lazyframe.py
> > > >> >> 11,561
> > > >> >> hamilton/plugins/h_pyarrow.py
> > > >> >> 2,177
> > > >> >> hamilton/plugins/h_pydantic.py
> > > >> >> 4,962
> > > >> >> hamilton/plugins/h_ray.py
> > > >> >> 9,130
> > > >> >> hamilton/plugins/h_rich.py
> > > >> >> 5,181
> > > >> >> hamilton/plugins/h_schema.py
> > > >> >> 18,307
> > > >> >> hamilton/plugins/h_slack.py
> > > >> >> 3,634
> > > >> >> hamilton/plugins/h_spark.py
> > > >> >> 63,268
> > > >> >> hamilton/plugins/h_threadpool.py
> > > >> >> 5,036
> > > >> >> hamilton/plugins/h_tqdm.py
> > > >> >> 4,665
> > > >> >> hamilton/plugins/h_vaex.py
> > > >> >> 5,034
> > > >> >> hamilton/plugins/huggingface_extensions.py
> > > >> >> 7,839
> > > >> >> hamilton/plugins/ibis_extensions.py
> > > >> >> 2,970
> > > >> >> hamilton/plugins/jupyter_magic.py
> > > >> >> 24,929
> > > >> >> hamilton/plugins/kedro_extensions.py
> > > >> >> 3,267
> > > >> >> hamilton/plugins/lightgbm_extensions.py
> > > >> >> 2,961
> > > >> >> hamilton/plugins/matplotlib_extensions.py
> > > >> >> 3,738
> > > >> >> hamilton/plugins/mlflow_extensions.py
> > > >> >> 8,856
> > > >> >> hamilton/plugins/numpy_extensions.py
> > > >> >> 3,221
> > > >> >> hamilton/plugins/pandas_extensions.py
> > > >> >> 66,288
> > > >> >> hamilton/plugins/plotly_extensions.py
> > > >> >> 5,010
> > > >> >> hamilton/plugins/polars_extensions.py
> > > >> >> 2,345
> > > >> >> hamilton/plugins/polars_implementations.py
> > > >> >> 1,028
> > > >> >> hamilton/plugins/polars_lazyframe_extensions.py
> > > >> >> 10,889
> > > >> >> hamilton/plugins/polars_post_1_0_0_extensions.py
> > > >> >> 30,733
> > > >> >> hamilton/plugins/polars_pre_1_0_0_extension.py
> > > >> >> 29,649
> > > >> >> hamilton/plugins/pydantic_extensions.py
> > > >> >> 3,840
> > > >> >> hamilton/plugins/pyspark_pandas_extensions.py
> > > >> >> 1,551
> > > >> >> hamilton/plugins/sklearn_plot_extensions.py
> > > >> >> 4,326
> > > >> >> hamilton/plugins/spark_extensions.py
> > > >> >> 3,236
> > > >> >> hamilton/plugins/vaex_extensions.py
> > > >> >> 1,673
> > > >> >> hamilton/plugins/xgboost_extensions.py
> > > >> >> 2,762
> > > >> >> hamilton/plugins/yaml_extensions.py
> > > >> >> 2,554
> > > >> >> hamilton/registry.py
> > > >> >> 8,588
> > > >> >> hamilton/settings.py
> > > >> >> 845
> > > >> >> hamilton/telemetry.py
> > > >> >> 1,772
> > > >> >> hamilton/version.py
> > > >> >> 807
> > > >> >>
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >> Verifying Wheel Metadata with Twine
> > > >> >>
> > > >> >>
> > > >>
> >
> ================================================================================
> > > >> >>
> > > >> >>
> > > >> >> Checking apache_hamilton-1.90.0-py3-none-any.whl...
> > > >> >> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
> > > >> >>
> > > >> >> ✅ All wheels passed twine validation
> > > >> >>
> > > >> >> ✅ Verification completed successfully!
> > > >> >> ```
> > > >> >>
> > > >> >> Maybe for some of the things it is just me doing something stupid
> > (but
> > > >> >> not sure what since I copy-paste the readme commands and just fix
> > the
> > > >> file
> > > >> >> names).
> > > >> >>
> > > >> >> Best,
> > > >> >> Jernej
> > > >> >>
> > > >> >> ________________________________
> > > >> >> From: Elijah ben Izzy <el...@alumni.brown.edu>
> > > >> >> Sent: 07 April 2026 05:37
> > > >> >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> > > >> >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> > > >> >> 1.90.0-incubating (release candidate 0)
> > > >> >>
> > > >> >> Nice work. Checks performed:
> > > >> >> [x] Verified GPG signature (Good signature, key
> > > >> >> FE668E857E89A11C5E5C000CA8D3D15600545C61)
> > > >> >> [x] Verified SHA-512 checksums
> > > >> >> [x] "incubating" in source tarball filename
> > > >> >> [x] LICENSE, NOTICE, DISCLAIMER present and correct
> > > >> >> [x] ASF license headers present in source files
> > > >> >> [x] No unexpected binary files
> > > >> >> [x] Built and installed from source (Python 3.13)
> > > >> >> [x] Ran hello_world example successfully
> > > >> >>
> > > >> >> + 1 (binding)
> > > >> >>
> > > >> >> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
> > > >> >> stefan.krawczyk@gmail.com>
> > > >> >> wrote:
> > > >> >>
> > > >> >> > Oh I forgot to link to it, but to hopefully make it faster to
> > verify
> > > >> >> > the verification
> > > >> >> > script
> > > >> >> > <
> > > >> >> >
> > > >> >>
> > > >>
> >
> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> > > >> >> > >
> > > >> >> > should help (see these instructions
> > > >> >> > <
> > > >> >>
> > > >>
> > https://github.com/apache/hamilton/tree/main/scripts#verification-script
> > > >> >> > >).
> > > >> >> >
> > > >> >> > Otherwise I have noticed the README instructions for
> verification
> > > >> have
> > > >> >> some
> > > >> >> > incorrect paths -- please adjust for that and you should be
> able
> > to
> > > >> >> follow
> > > >> >> > the instructions.
> > > >> >> >
> > > >> >> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
> > > >> >> stefan.krawczyk@gmail.com
> > > >> >> > >
> > > >> >> > wrote:
> > > >> >> >
> > > >> >> > > Hi all,
> > > >> >> > >
> > > >> >> > > This is a call for a vote on releasing Apache Hamilton
> > > >> apache-hamilton
> > > >> >> > > 1.90.0-incubating, release candidate 0.
> > > >> >> > >
> > > >> >> > > This release includes the following changes (see CHANGELOG
> for
> > > >> >> details):
> > > >> >> > >
> > > >> >> > > Features:
> > > >> >> > >> - While loop DFS implementation (#1483)
> > > >> >> > >> - Async data validator support
> > > >> >> > >> - Add `unpack_fields` annotation for unpacking structured
> > fields
> > > >> >> (#1305)
> > > >> >> > >> - Expose DAG validation as LLM tools via MCP (#1490)
> > > >> >> > >> - Add NDJSON support in polars (#1431)
> > > >> >> > >> - Enhance visualization with display_name tag support
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > Bug fixes:
> > > >> >> > >> - Fix `@resolve` decorator not calling `validate()` on
> > returned
> > > >> >> > >> decorators (#1524)
> > > >> >> > >> - Fix is_submodule substring match causing spurious DAG
> nodes
> > > >> (#1485)
> > > >> >> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> > > >> >> > >> - Fix spark failures on Python 3.14
> > > >> >> > >> - Fix local (Windows) tests (#1302)
> > > >> >> > >> - Fix typer version requirement for click 8.3 help
> > compatibility
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > Performance:
> > > >> >> > >> - Use deque for BFS queue in graph traversal (#1494)
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > Platform changes:
> > > >> >> > >> - Drop Python 3.8 and 3.9 support
> > > >> >> > >> - Add Python 3.13 and 3.14 support
> > > >> >> > >> - Remove usage telemetry (PostHog) (#1512)
> > > >> >> > >> - Remove RayWorkflows (#1359)
> > > >> >> > >> - Update `dlt` plugin with changes to `loader_file_format`
> > > >> >> > >> - Package renamed from sf-hamilton to apache-hamilton
> > > >> >> > >
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > The artifacts for this release candidate can be found at:
> > > >> >> > >
> > > >> >> > >
> > > >> >> >
> > > >> >>
> > > >>
> >
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > The Git tag to be voted upon is:
> > > >> >> apache-hamilton-v1.90.0-incubating-RC0
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> > > >> >> > >
> > > >> >> > > But the functional release is from this commit from main:
> > > >> >> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> > > >> >> > >
> > > >> >> > > Release artifacts are signed with the following key:
> > > >> >> > >
> > > >> >> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
> > > >> >> > >
> > > >> >> > > The KEYS file is available at:
> > > >> >> > > https://downloads.apache.org/incubator/hamilton/KEYS
> > > >> >> > >
> > > >> >> > > Please download, verify, and test the release candidate. You
> > can
> > > >> find
> > > >> >> the
> > > >> >> > > instructions to do so here
> > > >> >> > > <
> > > >> >> >
> > > >> >>
> > > >>
> >
> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
> > > >> >> >
> > > >> >> > (and
> > > >> >> > > if you're having issues following them please reply and I'll
> > help).
> > > >> >> > >
> > > >> >> > > The vote will run for a minimum of 72 hours, likely much
> longer
> > > >> due to
> > > >> >> > the
> > > >> >> > > holiday.
> > > >> >> > >
> > > >> >> > > Please vote:
> > > >> >> > >
> > > >> >> > > [ ] +1 Release this package as Apache Hamilton
> apache-hamilton
> > > >> >> > > 1.90.0-incubating
> > > >> >> > > [ ] +0 No opinion
> > > >> >> > > [ ] -1 Do not release this package because... (Please
> provide a
> > > >> >> reason)
> > > >> >> > >
> > > >> >> > > Checklist for reference:
> > > >> >> > >
> > > >> >> > > [ ] Incubating in name.
> > > >> >> > > [ ] Download links are valid.
> > > >> >> > > [ ] Checksums and signatures.
> > > >> >> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > > >> >> > > [ ] No unexpected binary files
> > > >> >> > > [ ] All source files have ASF headers
> > > >> >> > > [ ] Can compile from source
> > > >> >> > >
> > > >> >> > >
> > > >> >> > > On behalf of the Apache Hamilton PPMC,
> > > >> >> > >
> > > >> >> > > Stefan Krawczyk
> > > >> >> > >
> > > >> >> >
> > > >> >>
> > > >> >
> > > >>
> > > >
> > >
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Stefan Krawczyk <st...@gmail.com>.
thanks PJ! I'm calling the vote. +4: Stefan, Jernej, Elijah, PJ. Email
result in a few.
On Sun, Apr 19, 2026 at 11:49 AM PJ Fanning <fa...@apache.org> wrote:
> +1 binding for the IPMC vote
>
> [x] Incubating in name.
> [x] Download links are valid.
> [x] Checksums and signatures.
> [x] LICENSE/NOTICE/DISCLAIMER files exist
> [x] No unexpected binary files
> [x] All source files have ASF headers
> [ ] Can compile from source
>
> I just concentrated on checking the source release and the contents of the
> whl file. I did not attempt to build the artifacts.
>
> On 2026/04/18 21:01:13 Stefan Krawczyk wrote:
> > Hey mentors,
> >
> > Can someone claim verifying this RC please? I'm okay waiting, I would
> just
> > like to know who's turn it is to help please.
> >
> > Cheers,
> >
> > Stefan
> >
> > On Sun, Apr 12, 2026, 11:20 PM Stefan Krawczyk <
> stefan.krawczyk@gmail.com>
> > wrote:
> >
> > > Awesome, if one of the mentors has time to check, then we can call this
> > > vote or not.
> > >
> > > You can try this gist to make it easier on you:
> > > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc
> > >
> > > Cheers,
> > >
> > > Stefan
> > >
> > > On Sun, Apr 12, 2026 at 7:20 AM Jernej Frank <
> > > jernej.frank@physics.ox.ac.uk> wrote:
> > >
> > >> Thanks for that, this works! Maybe we can put this script into the
> repo?
> > >>
> > >> Happy to change to +1 for me.
> > >>
> > >> Best,
> > >> Jernej
> > >> ________________________________
> > >> From: Stefan Krawczyk <st...@gmail.com>
> > >> Sent: 11 April 2026 22:03
> > >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> > >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> > >> 1.90.0-incubating (release candidate 0)
> > >>
> > >> in a fresh directory (not repo)*.
> > >>
> > >> On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <
> > >> stefan.krawczyk@gmail.com>
> > >> wrote:
> > >>
> > >> > @jernej, do you want to try again? I created this gist that is a
> script
> > >> > that walks through the process:
> > >> > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
> > >> >
> > >> > You don't need to use the scripts to validate -- and that's not what
> > >> we're
> > >> > voting on. If you use the above script, it should set everything up
> > >> fresh
> > >> > if you do it in a fresh repo and have `uv` installed.
> > >> >
> > >> > On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
> > >> > jernej.frank@physics.ox.ac.uk> wrote:
> > >> >
> > >> >> Hey, I tried following the verification readme and use the scripts:
> > >> >>
> > >>
> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> > >> >> and could not get a lot of things working out of the box.
> > >> >>
> > >> >> -1
> > >> >>
> > >> >> Checklist for reference:
> > >> >>
> > >> >> [x] Incubating in name.
> > >> >> [x] Download links are valid.
> > >> >> The actual link is fine but the readme is wrong
> > >> >> ```
> > >> >> svn export
> > >> >>
> > >>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
> > >> >> hamilton-rc${RC}
> > >> >>
> > >> >> svn: E170000: URL '
> > >> >>
> > >>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0
> > >> '
> > >> >> doesn't exist
> > >> >> ```
> > >> >> [ ] Checksums and signatures.
> > >> >> I can verify gpg keys but the readme is missing a -src in the name
> for
> > >> >> the source.
> > >> >> ```
> > >> >> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
> > >> >> ${PACKAGE}-${VERSION}-incubating.tar.gz
> > >> >> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No
> such
> > >> >> file or directory
> > >> >> gpg: verify signatures failed: No such file or directory
> > >> >> ```
> > >> >>
> > >> >> The wheel gpg keys worked.
> > >> >> I could not get sha verification working:
> > >> >> ```
> > >> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
> > >> >> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such
> file
> > >> or
> > >> >> directory
> > >> >>
> > >> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
> > >> >> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no
> > >> properly
> > >> >> formatted SHA checksum lines found
> > >> >>
> > >> >> shasum -a 512 -c ${WHEEL_NAME}.sha512
> > >> >> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
> > >> >> formatted SHA checksum lines found
> > >> >> ```
> > >> >>
> > >> >> Similarly, in case of using the script at the end:
> > >> >> ```
> > >> >> # Run from the extracted source directory
> > >> >> (${PACKAGE}-${VERSION}-incubating/)
> > >> >> # Verify GPG signatures and SHA512 checksums
> > >> >> uv run python scripts/verify_apache_artifacts.py signatures
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Verifying Signatures and Checksums
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >> Found 2 artifact(s) to verify:
> > >> >>
> > >> >> Verifying: apache_hamilton-1.90.0.tar.gz
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569
> bytes)
> > >> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> > >> >> ✗ Signature file not found
> > >> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> > >> >> ✗ Checksum file not found
> > >> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> > >> >> ✓ Archive is readable and contains 706 files
> > >> >>
> > >> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl
> (475,199
> > >> >> bytes)
> > >> >> Verifying GPG signature:
> apache_hamilton-1.90.0-py3-none-any.whl.asc
> > >> >> ✗ Signature file not found
> > >> >> Verifying SHA512 checksum:
> > >> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> > >> >> ✗ Checksum file not found
> > >> >> Checking wheel readability:
> apache_hamilton-1.90.0-py3-none-any.whl
> > >> >> ✓ Wheel is readable and contains 151 files
> > >> >>
> > >> >>
> > >> >> ❌ Verification failed.
> > >> >> ```
> > >> >> [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > >> >> See above and below, there's some files in the examples that don't
> have
> > >> >> licenceses but are part of the source package.
> > >> >> [x] No unexpected binary files
> > >> >> [ ] All source files have ASF headers
> > >> >> I ran the provided script, but rat-excludes seems not to be found.
> Some
> > >> >> of these files admit comments so they could have licence headers
> > >> >> ```
> > >> >> # Verify license headers (requires Apache RAT)
> > >> >> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
> > >> >> apache-rat-0.15.jar
> > >> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> Extracting archive...
> > >> >> ✓ Extracted to temp directory
> > >> >> ⚠️ Warning: .rat-excludes not found, running without excludes
> > >> >> Running Apache RAT (XML format for parsing)...
> > >> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> > >> >> Running Apache RAT (text format for review)...
> > >> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> > >> >> Parsing RAT report...
> > >> >> ✓ Scanned 706 files
> > >> >> ✓ Found 33 files with license issues
> > >> >>
> > >> >> ⚠️ License Issues Found:
> > >> >>
> > >> >> Unapproved Licenses (33 files):
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> > >> >> ... and 23 more
> > >> >>
> > >> >> 📄 Reports saved:
> > >> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> > >> >> - dist/rat-report-apache_hamilton-1-90-0.txt
> (human-readable)
> > >> >>
> > >> >> ❌ License check failed!
> > >> >>
> > >> >> ❌ Verification failed.
> > >> >> ```
> > >> >> [x] Can compile from source
> > >> >>
> > >> >> *
> > >> >> the tar extracts into `apache_hamilton-1.90.0` so `cd
> > >> >> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
> > >> >> *
> > >> >> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected
> > >> argument
> > >> >> '--clean' found`
> > >> >> *
> > >> >> flit worked and could install wheel
> > >> >> *
> > >> >> cannot install test dependencies: `error: Distribution
> > >> `lancedb==0.30.2 @
> > >> >> registry+https://pypi.org/simple` <https://pypi.org/simple> <
> https://pypi.org/simple> <
> > >> https://pypi.org/simple> can't be
> > >> >> installed because it doesn't have a source distribution or wheel
> for
> > >> the
> > >> >> current platform` — seems like uv cannot resolve lance db. I am on
> > >> `hint:
> > >> >> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
> > >> >> *
> > >> >> hello_world runs -ish: only constructing the dag at the end fais
> if you
> > >> >> don't have graphviz: `ERROR:hamilton.graph: graphviz is required
> for
> > >> >> visualizing the function graph. Install it with: pip install
> > >> >> "sf-hamilton[visualization]" or pip install graphviz`
> > >> >>
> > >> >>
> > >> >> Complete verification output:
> > >> >> ```
> > >> >> # Verify everything
> > >> >> uv run python scripts/verify_apache_artifacts.py all --rat-jar
> > >> >> apache-rat-0.15.jar
> > >> >>
> > >> >> # Inspect artifact contents
> > >> >> uv run python scripts/verify_apache_artifacts.py list-contents
> > >> >> dist/apache-hamilton-1.90.0-incubating.tar.gz
> > >> >> uv run python scripts/verify_apache_artifacts.py list-contents
> > >> >> dist/apache_hamilton-1.90.0-py3-none-any.whl
> > >> >>
> > >> >> # Validate wheel metadata
> > >> >> uv run python scripts/verify_apache_artifacts.py twine-check
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Complete Apache Artifacts Verification
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >>
> > >> >> [1/2] Verifying signatures and checksums...
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Verifying Signatures and Checksums
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >> Found 4 artifact(s) to verify:
> > >> >>
> > >> >> Verifying: rat-report-apache_hamilton-1-90-0.xml
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467
> > >> bytes)
> > >> >> Verifying GPG signature:
> rat-report-apache_hamilton-1-90-0.xml.asc
> > >> >> ✗ Signature file not found
> > >> >> Verifying SHA512 checksum:
> > >> rat-report-apache_hamilton-1-90-0.xml.sha512
> > >> >> ✗ Checksum file not found
> > >> >>
> > >> >> Verifying: apache_hamilton-1.90.0.tar.gz
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569
> bytes)
> > >> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> > >> >> ✗ Signature file not found
> > >> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> > >> >> ✗ Checksum file not found
> > >> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> > >> >> ✓ Archive is readable and contains 706 files
> > >> >>
> > >> >> Verifying: rat-report-apache_hamilton-1-90-0.txt
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073
> > >> bytes)
> > >> >> Verifying GPG signature:
> rat-report-apache_hamilton-1-90-0.txt.asc
> > >> >> ✗ Signature file not found
> > >> >> Verifying SHA512 checksum:
> > >> rat-report-apache_hamilton-1-90-0.txt.sha512
> > >> >> ✗ Checksum file not found
> > >> >>
> > >> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl
> (475,199
> > >> >> bytes)
> > >> >> Verifying GPG signature:
> apache_hamilton-1.90.0-py3-none-any.whl.asc
> > >> >> ✗ Signature file not found
> > >> >> Verifying SHA512 checksum:
> > >> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> > >> >> ✗ Checksum file not found
> > >> >> Checking wheel readability:
> apache_hamilton-1.90.0-py3-none-any.whl
> > >> >> ✓ Wheel is readable and contains 151 files
> > >> >>
> > >> >>
> > >> >> [2/2] Verifying licenses with Apache RAT...
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Verifying Licenses with Apache RAT
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >> Found 1 tar.gz artifact(s) to check:
> > >> >>
> > >> >>
> > >> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> > >> >>
> > >> >>
> > >>
> --------------------------------------------------------------------------------
> > >> >> Extracting archive...
> > >> >> ✓ Extracted to temp directory
> > >> >> ⚠️ Warning: .rat-excludes not found, running without excludes
> > >> >> Running Apache RAT (XML format for parsing)...
> > >> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> > >> >> Running Apache RAT (text format for review)...
> > >> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> > >> >> Parsing RAT report...
> > >> >> ✓ Scanned 706 files
> > >> >> ✓ Found 33 files with license issues
> > >> >>
> > >> >> ⚠️ License Issues Found:
> > >> >>
> > >> >> Unapproved Licenses (33 files):
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> > >> >> -
> > >> >>
> > >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> > >> >> ... and 23 more
> > >> >>
> > >> >> 📄 Reports saved:
> > >> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> > >> >> - dist/rat-report-apache_hamilton-1-90-0.txt
> (human-readable)
> > >> >>
> > >> >> ❌ License check failed!
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Verification Summary
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >> Results:
> > >> >> Signatures & Checksums: ❌ FAIL
> > >> >> License Compliance: ❌ FAIL
> > >> >>
> > >> >> ❌ Verification failed.
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Listing Artifact Contents
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >>
> > >> >> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Listing Artifact Contents
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >>
> > >> >> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Total files: 151
> > >> >>
> > >> >> Top-level structure:
> > >> >> apache_hamilton-1.90.0.dist-info (7 files)
> > >> >> hamilton (144 files)
> > >> >>
> > >> >> Files:
> > >> >>
> > >> >> apache_hamilton-1.90.0.dist-info/METADATA
> > >> >> 22,665
> > >> >> apache_hamilton-1.90.0.dist-info/RECORD
> > >> >> 13,565
> > >> >> apache_hamilton-1.90.0.dist-info/WHEEL
> > >> >> 82
> > >> >> apache_hamilton-1.90.0.dist-info/entry_points.txt
> > >> >> 421
> > >> >> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
> > >> >> 554
> > >> >> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
> > >> >> 12,602
> > >> >> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
> > >> >> 182
> > >> >> hamilton/__init__.py
> > >> >> 1,086
> > >> >> hamilton/ad_hoc_utils.py
> > >> >> 5,677
> > >> >> hamilton/async_driver.py
> > >> >> 19,548
> > >> >> hamilton/base.py
> > >> >> 19,860
> > >> >> hamilton/caching/__init__.py
> > >> >> 785
> > >> >> hamilton/caching/adapter.py
> > >> >> 61,482
> > >> >> hamilton/caching/cache_key.py
> > >> >> 2,497
> > >> >> hamilton/caching/fingerprinting.py
> > >> >> 9,986
> > >> >> hamilton/caching/stores/__init__.py
> > >> >> 785
> > >> >> hamilton/caching/stores/base.py
> > >> >> 8,529
> > >> >> hamilton/caching/stores/file.py
> > >> >> 5,229
> > >> >> hamilton/caching/stores/memory.py
> > >> >> 11,159
> > >> >> hamilton/caching/stores/sqlite.py
> > >> >> 9,965
> > >> >> hamilton/caching/stores/utils.py
> > >> >> 1,370
> > >> >> hamilton/cli/__init__.py
> > >> >> 785
> > >> >> hamilton/cli/__main__.py
> > >> >> 9,202
> > >> >> hamilton/cli/commands.py
> > >> >> 4,446
> > >> >> hamilton/cli/logic.py
> > >> >> 10,338
> > >> >> hamilton/common/__init__.py
> > >> >> 3,075
> > >> >> hamilton/contrib/__init__.py
> > >> >> 1,644
> > >> >> hamilton/data_quality/__init__.py
> > >> >> 785
> > >> >> hamilton/data_quality/base.py
> > >> >> 6,890
> > >> >> hamilton/data_quality/default_validators.py
> > >> >> 21,184
> > >> >> hamilton/data_quality/pandera_validators.py
> > >> >> 4,493
> > >> >> hamilton/dataflows/__init__.py
> > >> >> 27,999
> > >> >> hamilton/dataflows/template/README.md
> > >> >> 958
> > >> >> hamilton/dataflows/template/__init__.py
> > >> >> 1,721
> > >> >> hamilton/dataflows/template/author.md
> > >> >> 940
> > >> >> hamilton/dataflows/template/requirements.txt
> > >> >> 0
> > >> >> hamilton/dataflows/template/tags.json
> > >> >> 98
> > >> >> hamilton/dataflows/template/valid_configs.jsonl
> > >> >> 3
> > >> >> hamilton/dev_utils/__init__.py
> > >> >> 785
> > >> >> hamilton/dev_utils/deprecation.py
> > >> >> 7,774
> > >> >> hamilton/driver.py
> > >> >> 95,686
> > >> >> hamilton/execution/__init__.py
> > >> >> 785
> > >> >> hamilton/execution/debugging_utils.py
> > >> >> 2,041
> > >> >> hamilton/execution/executors.py
> > >> >> 18,833
> > >> >> hamilton/execution/graph_functions.py
> > >> >> 16,527
> > >> >> hamilton/execution/grouping.py
> > >> >> 17,480
> > >> >> hamilton/execution/state.py
> > >> >> 23,957
> > >> >> hamilton/experimental/__init__.py
> > >> >> 1,100
> > >> >> hamilton/experimental/databackend.py
> > >> >> 1,397
> > >> >> hamilton/experimental/decorators/__init__.py
> > >> >> 785
> > >> >> hamilton/experimental/decorators/parameterize_frame.py
> > >> >> 8,684
> > >> >> hamilton/experimental/h_async.py
> > >> >> 1,057
> > >> >> hamilton/experimental/h_cache.py
> > >> >> 15,259
> > >> >> hamilton/experimental/h_dask.py
> > >> >> 1,166
> > >> >> hamilton/experimental/h_databackends.py
> > >> >> 5,075
> > >> >> hamilton/experimental/h_ray.py
> > >> >> 1,124
> > >> >> hamilton/experimental/h_spark.py
> > >> >> 1,223
> > >> >> hamilton/function_modifiers/README
> > >> >> 2,672
> > >> >> hamilton/function_modifiers/__init__.py
> > >> >> 3,812
> > >> >> hamilton/function_modifiers/adapters.py
> > >> >> 38,908
> > >> >> hamilton/function_modifiers/base.py
> > >> >> 33,403
> > >> >> hamilton/function_modifiers/configuration.py
> > >> >> 13,422
> > >> >> hamilton/function_modifiers/delayed.py
> > >> >> 9,448
> > >> >> hamilton/function_modifiers/dependencies.py
> > >> >> 10,014
> > >> >> hamilton/function_modifiers/expanders.py
> > >> >> 56,117
> > >> >> hamilton/function_modifiers/macros.py
> > >> >> 73,755
> > >> >> hamilton/function_modifiers/metadata.py
> > >> >> 17,253
> > >> >> hamilton/function_modifiers/recursive.py
> > >> >> 40,426
> > >> >> hamilton/function_modifiers/validation.py
> > >> >> 12,484
> > >> >> hamilton/function_modifiers_base.py
> > >> >> 1,462
> > >> >> hamilton/graph.py
> > >> >> 50,459
> > >> >> hamilton/graph_types.py
> > >> >> 10,478
> > >> >> hamilton/graph_utils.py
> > >> >> 1,656
> > >> >> hamilton/htypes.py
> > >> >> 17,746
> > >> >> hamilton/io/__init__.py
> > >> >> 1,183
> > >> >> hamilton/io/data_adapters.py
> > >> >> 7,987
> > >> >> hamilton/io/default_data_loaders.py
> > >> >> 5,617
> > >> >> hamilton/io/materialization.py
> > >> >> 21,578
> > >> >> hamilton/io/utils.py
> > >> >> 5,073
> > >> >> hamilton/lifecycle/__init__.py
> > >> >> 2,053
> > >> >> hamilton/lifecycle/api.py
> > >> >> 31,981
> > >> >> hamilton/lifecycle/base.py
> > >> >> 44,599
> > >> >> hamilton/lifecycle/default.py
> > >> >> 32,890
> > >> >> hamilton/log_setup.py
> > >> >> 1,714
> > >> >> hamilton/models.py
> > >> >> 3,265
> > >> >> hamilton/node.py
> > >> >> 17,153
> > >> >> hamilton/plugins/README.md
> > >> >> 2,659
> > >> >> hamilton/plugins/__init__.py
> > >> >> 785
> > >> >> hamilton/plugins/dask_extensions.py
> > >> >> 1,518
> > >> >> hamilton/plugins/dlt_extensions.py
> > >> >> 5,585
> > >> >> hamilton/plugins/geopandas_extensions.py
> > >> >> 1,572
> > >> >> hamilton/plugins/h_dask.py
> > >> >> 15,566
> > >> >> hamilton/plugins/h_ddog.py
> > >> >> 22,392
> > >> >> hamilton/plugins/h_diskcache.py
> > >> >> 6,683
> > >> >> hamilton/plugins/h_experiments/__init__.py
> > >> >> 892
> > >> >> hamilton/plugins/h_experiments/__main__.py
> > >> >> 2,181
> > >> >> hamilton/plugins/h_experiments/cache.py
> > >> >> 1,395
> > >> >> hamilton/plugins/h_experiments/data_model.py
> > >> >> 2,180
> > >> >> hamilton/plugins/h_experiments/hook.py
> > >> >> 7,240
> > >> >> hamilton/plugins/h_experiments/server.py
> > >> >> 12,493
> > >> >> hamilton/plugins/h_kedro.py
> > >> >> 5,583
> > >> >> hamilton/plugins/h_logging.py
> > >> >> 15,225
> > >> >> hamilton/plugins/h_mcp/__init__.py
> > >> >> 1,068
> > >> >> hamilton/plugins/h_mcp/__main__.py
> > >> >> 1,137
> > >> >> hamilton/plugins/h_mcp/_helpers.py
> > >> >> 4,152
> > >> >> hamilton/plugins/h_mcp/_templates.py
> > >> >> 13,528
> > >> >> hamilton/plugins/h_mcp/server.py
> > >> >> 12,392
> > >> >> hamilton/plugins/h_mlflow.py
> > >> >> 14,442
> > >> >> hamilton/plugins/h_narwhals.py
> > >> >> 4,677
> > >> >> hamilton/plugins/h_openlineage.py
> > >> >> 13,129
> > >> >> hamilton/plugins/h_opentelemetry.py
> > >> >> 5,928
> > >> >> hamilton/plugins/h_pandas.py
> > >> >> 10,633
> > >> >> hamilton/plugins/h_pandera.py
> > >> >> 4,952
> > >> >> hamilton/plugins/h_polars.py
> > >> >> 12,507
> > >> >> hamilton/plugins/h_polars_lazyframe.py
> > >> >> 11,561
> > >> >> hamilton/plugins/h_pyarrow.py
> > >> >> 2,177
> > >> >> hamilton/plugins/h_pydantic.py
> > >> >> 4,962
> > >> >> hamilton/plugins/h_ray.py
> > >> >> 9,130
> > >> >> hamilton/plugins/h_rich.py
> > >> >> 5,181
> > >> >> hamilton/plugins/h_schema.py
> > >> >> 18,307
> > >> >> hamilton/plugins/h_slack.py
> > >> >> 3,634
> > >> >> hamilton/plugins/h_spark.py
> > >> >> 63,268
> > >> >> hamilton/plugins/h_threadpool.py
> > >> >> 5,036
> > >> >> hamilton/plugins/h_tqdm.py
> > >> >> 4,665
> > >> >> hamilton/plugins/h_vaex.py
> > >> >> 5,034
> > >> >> hamilton/plugins/huggingface_extensions.py
> > >> >> 7,839
> > >> >> hamilton/plugins/ibis_extensions.py
> > >> >> 2,970
> > >> >> hamilton/plugins/jupyter_magic.py
> > >> >> 24,929
> > >> >> hamilton/plugins/kedro_extensions.py
> > >> >> 3,267
> > >> >> hamilton/plugins/lightgbm_extensions.py
> > >> >> 2,961
> > >> >> hamilton/plugins/matplotlib_extensions.py
> > >> >> 3,738
> > >> >> hamilton/plugins/mlflow_extensions.py
> > >> >> 8,856
> > >> >> hamilton/plugins/numpy_extensions.py
> > >> >> 3,221
> > >> >> hamilton/plugins/pandas_extensions.py
> > >> >> 66,288
> > >> >> hamilton/plugins/plotly_extensions.py
> > >> >> 5,010
> > >> >> hamilton/plugins/polars_extensions.py
> > >> >> 2,345
> > >> >> hamilton/plugins/polars_implementations.py
> > >> >> 1,028
> > >> >> hamilton/plugins/polars_lazyframe_extensions.py
> > >> >> 10,889
> > >> >> hamilton/plugins/polars_post_1_0_0_extensions.py
> > >> >> 30,733
> > >> >> hamilton/plugins/polars_pre_1_0_0_extension.py
> > >> >> 29,649
> > >> >> hamilton/plugins/pydantic_extensions.py
> > >> >> 3,840
> > >> >> hamilton/plugins/pyspark_pandas_extensions.py
> > >> >> 1,551
> > >> >> hamilton/plugins/sklearn_plot_extensions.py
> > >> >> 4,326
> > >> >> hamilton/plugins/spark_extensions.py
> > >> >> 3,236
> > >> >> hamilton/plugins/vaex_extensions.py
> > >> >> 1,673
> > >> >> hamilton/plugins/xgboost_extensions.py
> > >> >> 2,762
> > >> >> hamilton/plugins/yaml_extensions.py
> > >> >> 2,554
> > >> >> hamilton/registry.py
> > >> >> 8,588
> > >> >> hamilton/settings.py
> > >> >> 845
> > >> >> hamilton/telemetry.py
> > >> >> 1,772
> > >> >> hamilton/version.py
> > >> >> 807
> > >> >>
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >> Verifying Wheel Metadata with Twine
> > >> >>
> > >> >>
> > >>
> ================================================================================
> > >> >>
> > >> >>
> > >> >> Checking apache_hamilton-1.90.0-py3-none-any.whl...
> > >> >> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
> > >> >>
> > >> >> ✅ All wheels passed twine validation
> > >> >>
> > >> >> ✅ Verification completed successfully!
> > >> >> ```
> > >> >>
> > >> >> Maybe for some of the things it is just me doing something stupid
> (but
> > >> >> not sure what since I copy-paste the readme commands and just fix
> the
> > >> file
> > >> >> names).
> > >> >>
> > >> >> Best,
> > >> >> Jernej
> > >> >>
> > >> >> ________________________________
> > >> >> From: Elijah ben Izzy <el...@alumni.brown.edu>
> > >> >> Sent: 07 April 2026 05:37
> > >> >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> > >> >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> > >> >> 1.90.0-incubating (release candidate 0)
> > >> >>
> > >> >> Nice work. Checks performed:
> > >> >> [x] Verified GPG signature (Good signature, key
> > >> >> FE668E857E89A11C5E5C000CA8D3D15600545C61)
> > >> >> [x] Verified SHA-512 checksums
> > >> >> [x] "incubating" in source tarball filename
> > >> >> [x] LICENSE, NOTICE, DISCLAIMER present and correct
> > >> >> [x] ASF license headers present in source files
> > >> >> [x] No unexpected binary files
> > >> >> [x] Built and installed from source (Python 3.13)
> > >> >> [x] Ran hello_world example successfully
> > >> >>
> > >> >> + 1 (binding)
> > >> >>
> > >> >> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
> > >> >> stefan.krawczyk@gmail.com>
> > >> >> wrote:
> > >> >>
> > >> >> > Oh I forgot to link to it, but to hopefully make it faster to
> verify
> > >> >> > the verification
> > >> >> > script
> > >> >> > <
> > >> >> >
> > >> >>
> > >>
> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> > >> >> > >
> > >> >> > should help (see these instructions
> > >> >> > <
> > >> >>
> > >>
> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> > >> >> > >).
> > >> >> >
> > >> >> > Otherwise I have noticed the README instructions for verification
> > >> have
> > >> >> some
> > >> >> > incorrect paths -- please adjust for that and you should be able
> to
> > >> >> follow
> > >> >> > the instructions.
> > >> >> >
> > >> >> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
> > >> >> stefan.krawczyk@gmail.com
> > >> >> > >
> > >> >> > wrote:
> > >> >> >
> > >> >> > > Hi all,
> > >> >> > >
> > >> >> > > This is a call for a vote on releasing Apache Hamilton
> > >> apache-hamilton
> > >> >> > > 1.90.0-incubating, release candidate 0.
> > >> >> > >
> > >> >> > > This release includes the following changes (see CHANGELOG for
> > >> >> details):
> > >> >> > >
> > >> >> > > Features:
> > >> >> > >> - While loop DFS implementation (#1483)
> > >> >> > >> - Async data validator support
> > >> >> > >> - Add `unpack_fields` annotation for unpacking structured
> fields
> > >> >> (#1305)
> > >> >> > >> - Expose DAG validation as LLM tools via MCP (#1490)
> > >> >> > >> - Add NDJSON support in polars (#1431)
> > >> >> > >> - Enhance visualization with display_name tag support
> > >> >> > >
> > >> >> > >
> > >> >> > > Bug fixes:
> > >> >> > >> - Fix `@resolve` decorator not calling `validate()` on
> returned
> > >> >> > >> decorators (#1524)
> > >> >> > >> - Fix is_submodule substring match causing spurious DAG nodes
> > >> (#1485)
> > >> >> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> > >> >> > >> - Fix spark failures on Python 3.14
> > >> >> > >> - Fix local (Windows) tests (#1302)
> > >> >> > >> - Fix typer version requirement for click 8.3 help
> compatibility
> > >> >> > >
> > >> >> > >
> > >> >> > > Performance:
> > >> >> > >> - Use deque for BFS queue in graph traversal (#1494)
> > >> >> > >
> > >> >> > >
> > >> >> > > Platform changes:
> > >> >> > >> - Drop Python 3.8 and 3.9 support
> > >> >> > >> - Add Python 3.13 and 3.14 support
> > >> >> > >> - Remove usage telemetry (PostHog) (#1512)
> > >> >> > >> - Remove RayWorkflows (#1359)
> > >> >> > >> - Update `dlt` plugin with changes to `loader_file_format`
> > >> >> > >> - Package renamed from sf-hamilton to apache-hamilton
> > >> >> > >
> > >> >> > >
> > >> >> > >
> > >> >> > > The artifacts for this release candidate can be found at:
> > >> >> > >
> > >> >> > >
> > >> >> >
> > >> >>
> > >>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> > >> >> > >
> > >> >> > >
> > >> >> > > The Git tag to be voted upon is:
> > >> >> apache-hamilton-v1.90.0-incubating-RC0
> > >> >> > >
> > >> >> > >
> > >> >> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> > >> >> > >
> > >> >> > > But the functional release is from this commit from main:
> > >> >> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> > >> >> > >
> > >> >> > > Release artifacts are signed with the following key:
> > >> >> > >
> > >> >> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
> > >> >> > >
> > >> >> > > The KEYS file is available at:
> > >> >> > > https://downloads.apache.org/incubator/hamilton/KEYS
> > >> >> > >
> > >> >> > > Please download, verify, and test the release candidate. You
> can
> > >> find
> > >> >> the
> > >> >> > > instructions to do so here
> > >> >> > > <
> > >> >> >
> > >> >>
> > >>
> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
> > >> >> >
> > >> >> > (and
> > >> >> > > if you're having issues following them please reply and I'll
> help).
> > >> >> > >
> > >> >> > > The vote will run for a minimum of 72 hours, likely much longer
> > >> due to
> > >> >> > the
> > >> >> > > holiday.
> > >> >> > >
> > >> >> > > Please vote:
> > >> >> > >
> > >> >> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
> > >> >> > > 1.90.0-incubating
> > >> >> > > [ ] +0 No opinion
> > >> >> > > [ ] -1 Do not release this package because... (Please provide a
> > >> >> reason)
> > >> >> > >
> > >> >> > > Checklist for reference:
> > >> >> > >
> > >> >> > > [ ] Incubating in name.
> > >> >> > > [ ] Download links are valid.
> > >> >> > > [ ] Checksums and signatures.
> > >> >> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > >> >> > > [ ] No unexpected binary files
> > >> >> > > [ ] All source files have ASF headers
> > >> >> > > [ ] Can compile from source
> > >> >> > >
> > >> >> > >
> > >> >> > > On behalf of the Apache Hamilton PPMC,
> > >> >> > >
> > >> >> > > Stefan Krawczyk
> > >> >> > >
> > >> >> >
> > >> >>
> > >> >
> > >>
> > >
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by PJ Fanning <fa...@apache.org>.
+1 binding for the IPMC vote
[x] Incubating in name.
[x] Download links are valid.
[x] Checksums and signatures.
[x] LICENSE/NOTICE/DISCLAIMER files exist
[x] No unexpected binary files
[x] All source files have ASF headers
[ ] Can compile from source
I just concentrated on checking the source release and the contents of the whl file. I did not attempt to build the artifacts.
On 2026/04/18 21:01:13 Stefan Krawczyk wrote:
> Hey mentors,
>
> Can someone claim verifying this RC please? I'm okay waiting, I would just
> like to know who's turn it is to help please.
>
> Cheers,
>
> Stefan
>
> On Sun, Apr 12, 2026, 11:20 PM Stefan Krawczyk <st...@gmail.com>
> wrote:
>
> > Awesome, if one of the mentors has time to check, then we can call this
> > vote or not.
> >
> > You can try this gist to make it easier on you:
> > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc
> >
> > Cheers,
> >
> > Stefan
> >
> > On Sun, Apr 12, 2026 at 7:20 AM Jernej Frank <
> > jernej.frank@physics.ox.ac.uk> wrote:
> >
> >> Thanks for that, this works! Maybe we can put this script into the repo?
> >>
> >> Happy to change to +1 for me.
> >>
> >> Best,
> >> Jernej
> >> ________________________________
> >> From: Stefan Krawczyk <st...@gmail.com>
> >> Sent: 11 April 2026 22:03
> >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> >> 1.90.0-incubating (release candidate 0)
> >>
> >> in a fresh directory (not repo)*.
> >>
> >> On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <
> >> stefan.krawczyk@gmail.com>
> >> wrote:
> >>
> >> > @jernej, do you want to try again? I created this gist that is a script
> >> > that walks through the process:
> >> > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
> >> >
> >> > You don't need to use the scripts to validate -- and that's not what
> >> we're
> >> > voting on. If you use the above script, it should set everything up
> >> fresh
> >> > if you do it in a fresh repo and have `uv` installed.
> >> >
> >> > On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
> >> > jernej.frank@physics.ox.ac.uk> wrote:
> >> >
> >> >> Hey, I tried following the verification readme and use the scripts:
> >> >>
> >> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> >> >> and could not get a lot of things working out of the box.
> >> >>
> >> >> -1
> >> >>
> >> >> Checklist for reference:
> >> >>
> >> >> [x] Incubating in name.
> >> >> [x] Download links are valid.
> >> >> The actual link is fine but the readme is wrong
> >> >> ```
> >> >> svn export
> >> >>
> >> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
> >> >> hamilton-rc${RC}
> >> >>
> >> >> svn: E170000: URL '
> >> >>
> >> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0
> >> '
> >> >> doesn't exist
> >> >> ```
> >> >> [ ] Checksums and signatures.
> >> >> I can verify gpg keys but the readme is missing a -src in the name for
> >> >> the source.
> >> >> ```
> >> >> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
> >> >> ${PACKAGE}-${VERSION}-incubating.tar.gz
> >> >> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such
> >> >> file or directory
> >> >> gpg: verify signatures failed: No such file or directory
> >> >> ```
> >> >>
> >> >> The wheel gpg keys worked.
> >> >> I could not get sha verification working:
> >> >> ```
> >> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
> >> >> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file
> >> or
> >> >> directory
> >> >>
> >> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
> >> >> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no
> >> properly
> >> >> formatted SHA checksum lines found
> >> >>
> >> >> shasum -a 512 -c ${WHEEL_NAME}.sha512
> >> >> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
> >> >> formatted SHA checksum lines found
> >> >> ```
> >> >>
> >> >> Similarly, in case of using the script at the end:
> >> >> ```
> >> >> # Run from the extracted source directory
> >> >> (${PACKAGE}-${VERSION}-incubating/)
> >> >> # Verify GPG signatures and SHA512 checksums
> >> >> uv run python scripts/verify_apache_artifacts.py signatures
> >> >>
> >> >>
> >> ================================================================================
> >> >> Verifying Signatures and Checksums
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >> Found 2 artifact(s) to verify:
> >> >>
> >> >> Verifying: apache_hamilton-1.90.0.tar.gz
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
> >> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> >> >> ✗ Signature file not found
> >> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> >> >> ✗ Checksum file not found
> >> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> >> >> ✓ Archive is readable and contains 706 files
> >> >>
> >> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
> >> >> bytes)
> >> >> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
> >> >> ✗ Signature file not found
> >> >> Verifying SHA512 checksum:
> >> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> >> >> ✗ Checksum file not found
> >> >> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
> >> >> ✓ Wheel is readable and contains 151 files
> >> >>
> >> >>
> >> >> ❌ Verification failed.
> >> >> ```
> >> >> [ ] LICENSE/NOTICE/DISCLAIMER files exist
> >> >> See above and below, there's some files in the examples that don't have
> >> >> licenceses but are part of the source package.
> >> >> [x] No unexpected binary files
> >> >> [ ] All source files have ASF headers
> >> >> I ran the provided script, but rat-excludes seems not to be found. Some
> >> >> of these files admit comments so they could have licence headers
> >> >> ```
> >> >> # Verify license headers (requires Apache RAT)
> >> >> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
> >> >> apache-rat-0.15.jar
> >> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> Extracting archive...
> >> >> ✓ Extracted to temp directory
> >> >> ⚠️ Warning: .rat-excludes not found, running without excludes
> >> >> Running Apache RAT (XML format for parsing)...
> >> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> >> >> Running Apache RAT (text format for review)...
> >> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> >> >> Parsing RAT report...
> >> >> ✓ Scanned 706 files
> >> >> ✓ Found 33 files with license issues
> >> >>
> >> >> ⚠️ License Issues Found:
> >> >>
> >> >> Unapproved Licenses (33 files):
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> >> >> ... and 23 more
> >> >>
> >> >> 📄 Reports saved:
> >> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> >> >> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
> >> >>
> >> >> ❌ License check failed!
> >> >>
> >> >> ❌ Verification failed.
> >> >> ```
> >> >> [x] Can compile from source
> >> >>
> >> >> *
> >> >> the tar extracts into `apache_hamilton-1.90.0` so `cd
> >> >> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
> >> >> *
> >> >> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected
> >> argument
> >> >> '--clean' found`
> >> >> *
> >> >> flit worked and could install wheel
> >> >> *
> >> >> cannot install test dependencies: `error: Distribution
> >> `lancedb==0.30.2 @
> >> >> registry+https://pypi.org/simple` <https://pypi.org/simple> <
> >> https://pypi.org/simple> can't be
> >> >> installed because it doesn't have a source distribution or wheel for
> >> the
> >> >> current platform` — seems like uv cannot resolve lance db. I am on
> >> `hint:
> >> >> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
> >> >> *
> >> >> hello_world runs -ish: only constructing the dag at the end fais if you
> >> >> don't have graphviz: `ERROR:hamilton.graph: graphviz is required for
> >> >> visualizing the function graph. Install it with: pip install
> >> >> "sf-hamilton[visualization]" or pip install graphviz`
> >> >>
> >> >>
> >> >> Complete verification output:
> >> >> ```
> >> >> # Verify everything
> >> >> uv run python scripts/verify_apache_artifacts.py all --rat-jar
> >> >> apache-rat-0.15.jar
> >> >>
> >> >> # Inspect artifact contents
> >> >> uv run python scripts/verify_apache_artifacts.py list-contents
> >> >> dist/apache-hamilton-1.90.0-incubating.tar.gz
> >> >> uv run python scripts/verify_apache_artifacts.py list-contents
> >> >> dist/apache_hamilton-1.90.0-py3-none-any.whl
> >> >>
> >> >> # Validate wheel metadata
> >> >> uv run python scripts/verify_apache_artifacts.py twine-check
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Complete Apache Artifacts Verification
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >>
> >> >> [1/2] Verifying signatures and checksums...
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Verifying Signatures and Checksums
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >> Found 4 artifact(s) to verify:
> >> >>
> >> >> Verifying: rat-report-apache_hamilton-1-90-0.xml
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467
> >> bytes)
> >> >> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
> >> >> ✗ Signature file not found
> >> >> Verifying SHA512 checksum:
> >> rat-report-apache_hamilton-1-90-0.xml.sha512
> >> >> ✗ Checksum file not found
> >> >>
> >> >> Verifying: apache_hamilton-1.90.0.tar.gz
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
> >> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> >> >> ✗ Signature file not found
> >> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> >> >> ✗ Checksum file not found
> >> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> >> >> ✓ Archive is readable and contains 706 files
> >> >>
> >> >> Verifying: rat-report-apache_hamilton-1-90-0.txt
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073
> >> bytes)
> >> >> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
> >> >> ✗ Signature file not found
> >> >> Verifying SHA512 checksum:
> >> rat-report-apache_hamilton-1-90-0.txt.sha512
> >> >> ✗ Checksum file not found
> >> >>
> >> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
> >> >> bytes)
> >> >> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
> >> >> ✗ Signature file not found
> >> >> Verifying SHA512 checksum:
> >> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> >> >> ✗ Checksum file not found
> >> >> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
> >> >> ✓ Wheel is readable and contains 151 files
> >> >>
> >> >>
> >> >> [2/2] Verifying licenses with Apache RAT...
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Verifying Licenses with Apache RAT
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >> Found 1 tar.gz artifact(s) to check:
> >> >>
> >> >>
> >> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> >> >>
> >> >>
> >> --------------------------------------------------------------------------------
> >> >> Extracting archive...
> >> >> ✓ Extracted to temp directory
> >> >> ⚠️ Warning: .rat-excludes not found, running without excludes
> >> >> Running Apache RAT (XML format for parsing)...
> >> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> >> >> Running Apache RAT (text format for review)...
> >> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> >> >> Parsing RAT report...
> >> >> ✓ Scanned 706 files
> >> >> ✓ Found 33 files with license issues
> >> >>
> >> >> ⚠️ License Issues Found:
> >> >>
> >> >> Unapproved Licenses (33 files):
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> >> >> -
> >> >>
> >> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> >> >> ... and 23 more
> >> >>
> >> >> 📄 Reports saved:
> >> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> >> >> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
> >> >>
> >> >> ❌ License check failed!
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Verification Summary
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >> Results:
> >> >> Signatures & Checksums: ❌ FAIL
> >> >> License Compliance: ❌ FAIL
> >> >>
> >> >> ❌ Verification failed.
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Listing Artifact Contents
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >>
> >> >> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Listing Artifact Contents
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >>
> >> >> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
> >> >>
> >> >>
> >> ================================================================================
> >> >> Total files: 151
> >> >>
> >> >> Top-level structure:
> >> >> apache_hamilton-1.90.0.dist-info (7 files)
> >> >> hamilton (144 files)
> >> >>
> >> >> Files:
> >> >>
> >> >> apache_hamilton-1.90.0.dist-info/METADATA
> >> >> 22,665
> >> >> apache_hamilton-1.90.0.dist-info/RECORD
> >> >> 13,565
> >> >> apache_hamilton-1.90.0.dist-info/WHEEL
> >> >> 82
> >> >> apache_hamilton-1.90.0.dist-info/entry_points.txt
> >> >> 421
> >> >> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
> >> >> 554
> >> >> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
> >> >> 12,602
> >> >> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
> >> >> 182
> >> >> hamilton/__init__.py
> >> >> 1,086
> >> >> hamilton/ad_hoc_utils.py
> >> >> 5,677
> >> >> hamilton/async_driver.py
> >> >> 19,548
> >> >> hamilton/base.py
> >> >> 19,860
> >> >> hamilton/caching/__init__.py
> >> >> 785
> >> >> hamilton/caching/adapter.py
> >> >> 61,482
> >> >> hamilton/caching/cache_key.py
> >> >> 2,497
> >> >> hamilton/caching/fingerprinting.py
> >> >> 9,986
> >> >> hamilton/caching/stores/__init__.py
> >> >> 785
> >> >> hamilton/caching/stores/base.py
> >> >> 8,529
> >> >> hamilton/caching/stores/file.py
> >> >> 5,229
> >> >> hamilton/caching/stores/memory.py
> >> >> 11,159
> >> >> hamilton/caching/stores/sqlite.py
> >> >> 9,965
> >> >> hamilton/caching/stores/utils.py
> >> >> 1,370
> >> >> hamilton/cli/__init__.py
> >> >> 785
> >> >> hamilton/cli/__main__.py
> >> >> 9,202
> >> >> hamilton/cli/commands.py
> >> >> 4,446
> >> >> hamilton/cli/logic.py
> >> >> 10,338
> >> >> hamilton/common/__init__.py
> >> >> 3,075
> >> >> hamilton/contrib/__init__.py
> >> >> 1,644
> >> >> hamilton/data_quality/__init__.py
> >> >> 785
> >> >> hamilton/data_quality/base.py
> >> >> 6,890
> >> >> hamilton/data_quality/default_validators.py
> >> >> 21,184
> >> >> hamilton/data_quality/pandera_validators.py
> >> >> 4,493
> >> >> hamilton/dataflows/__init__.py
> >> >> 27,999
> >> >> hamilton/dataflows/template/README.md
> >> >> 958
> >> >> hamilton/dataflows/template/__init__.py
> >> >> 1,721
> >> >> hamilton/dataflows/template/author.md
> >> >> 940
> >> >> hamilton/dataflows/template/requirements.txt
> >> >> 0
> >> >> hamilton/dataflows/template/tags.json
> >> >> 98
> >> >> hamilton/dataflows/template/valid_configs.jsonl
> >> >> 3
> >> >> hamilton/dev_utils/__init__.py
> >> >> 785
> >> >> hamilton/dev_utils/deprecation.py
> >> >> 7,774
> >> >> hamilton/driver.py
> >> >> 95,686
> >> >> hamilton/execution/__init__.py
> >> >> 785
> >> >> hamilton/execution/debugging_utils.py
> >> >> 2,041
> >> >> hamilton/execution/executors.py
> >> >> 18,833
> >> >> hamilton/execution/graph_functions.py
> >> >> 16,527
> >> >> hamilton/execution/grouping.py
> >> >> 17,480
> >> >> hamilton/execution/state.py
> >> >> 23,957
> >> >> hamilton/experimental/__init__.py
> >> >> 1,100
> >> >> hamilton/experimental/databackend.py
> >> >> 1,397
> >> >> hamilton/experimental/decorators/__init__.py
> >> >> 785
> >> >> hamilton/experimental/decorators/parameterize_frame.py
> >> >> 8,684
> >> >> hamilton/experimental/h_async.py
> >> >> 1,057
> >> >> hamilton/experimental/h_cache.py
> >> >> 15,259
> >> >> hamilton/experimental/h_dask.py
> >> >> 1,166
> >> >> hamilton/experimental/h_databackends.py
> >> >> 5,075
> >> >> hamilton/experimental/h_ray.py
> >> >> 1,124
> >> >> hamilton/experimental/h_spark.py
> >> >> 1,223
> >> >> hamilton/function_modifiers/README
> >> >> 2,672
> >> >> hamilton/function_modifiers/__init__.py
> >> >> 3,812
> >> >> hamilton/function_modifiers/adapters.py
> >> >> 38,908
> >> >> hamilton/function_modifiers/base.py
> >> >> 33,403
> >> >> hamilton/function_modifiers/configuration.py
> >> >> 13,422
> >> >> hamilton/function_modifiers/delayed.py
> >> >> 9,448
> >> >> hamilton/function_modifiers/dependencies.py
> >> >> 10,014
> >> >> hamilton/function_modifiers/expanders.py
> >> >> 56,117
> >> >> hamilton/function_modifiers/macros.py
> >> >> 73,755
> >> >> hamilton/function_modifiers/metadata.py
> >> >> 17,253
> >> >> hamilton/function_modifiers/recursive.py
> >> >> 40,426
> >> >> hamilton/function_modifiers/validation.py
> >> >> 12,484
> >> >> hamilton/function_modifiers_base.py
> >> >> 1,462
> >> >> hamilton/graph.py
> >> >> 50,459
> >> >> hamilton/graph_types.py
> >> >> 10,478
> >> >> hamilton/graph_utils.py
> >> >> 1,656
> >> >> hamilton/htypes.py
> >> >> 17,746
> >> >> hamilton/io/__init__.py
> >> >> 1,183
> >> >> hamilton/io/data_adapters.py
> >> >> 7,987
> >> >> hamilton/io/default_data_loaders.py
> >> >> 5,617
> >> >> hamilton/io/materialization.py
> >> >> 21,578
> >> >> hamilton/io/utils.py
> >> >> 5,073
> >> >> hamilton/lifecycle/__init__.py
> >> >> 2,053
> >> >> hamilton/lifecycle/api.py
> >> >> 31,981
> >> >> hamilton/lifecycle/base.py
> >> >> 44,599
> >> >> hamilton/lifecycle/default.py
> >> >> 32,890
> >> >> hamilton/log_setup.py
> >> >> 1,714
> >> >> hamilton/models.py
> >> >> 3,265
> >> >> hamilton/node.py
> >> >> 17,153
> >> >> hamilton/plugins/README.md
> >> >> 2,659
> >> >> hamilton/plugins/__init__.py
> >> >> 785
> >> >> hamilton/plugins/dask_extensions.py
> >> >> 1,518
> >> >> hamilton/plugins/dlt_extensions.py
> >> >> 5,585
> >> >> hamilton/plugins/geopandas_extensions.py
> >> >> 1,572
> >> >> hamilton/plugins/h_dask.py
> >> >> 15,566
> >> >> hamilton/plugins/h_ddog.py
> >> >> 22,392
> >> >> hamilton/plugins/h_diskcache.py
> >> >> 6,683
> >> >> hamilton/plugins/h_experiments/__init__.py
> >> >> 892
> >> >> hamilton/plugins/h_experiments/__main__.py
> >> >> 2,181
> >> >> hamilton/plugins/h_experiments/cache.py
> >> >> 1,395
> >> >> hamilton/plugins/h_experiments/data_model.py
> >> >> 2,180
> >> >> hamilton/plugins/h_experiments/hook.py
> >> >> 7,240
> >> >> hamilton/plugins/h_experiments/server.py
> >> >> 12,493
> >> >> hamilton/plugins/h_kedro.py
> >> >> 5,583
> >> >> hamilton/plugins/h_logging.py
> >> >> 15,225
> >> >> hamilton/plugins/h_mcp/__init__.py
> >> >> 1,068
> >> >> hamilton/plugins/h_mcp/__main__.py
> >> >> 1,137
> >> >> hamilton/plugins/h_mcp/_helpers.py
> >> >> 4,152
> >> >> hamilton/plugins/h_mcp/_templates.py
> >> >> 13,528
> >> >> hamilton/plugins/h_mcp/server.py
> >> >> 12,392
> >> >> hamilton/plugins/h_mlflow.py
> >> >> 14,442
> >> >> hamilton/plugins/h_narwhals.py
> >> >> 4,677
> >> >> hamilton/plugins/h_openlineage.py
> >> >> 13,129
> >> >> hamilton/plugins/h_opentelemetry.py
> >> >> 5,928
> >> >> hamilton/plugins/h_pandas.py
> >> >> 10,633
> >> >> hamilton/plugins/h_pandera.py
> >> >> 4,952
> >> >> hamilton/plugins/h_polars.py
> >> >> 12,507
> >> >> hamilton/plugins/h_polars_lazyframe.py
> >> >> 11,561
> >> >> hamilton/plugins/h_pyarrow.py
> >> >> 2,177
> >> >> hamilton/plugins/h_pydantic.py
> >> >> 4,962
> >> >> hamilton/plugins/h_ray.py
> >> >> 9,130
> >> >> hamilton/plugins/h_rich.py
> >> >> 5,181
> >> >> hamilton/plugins/h_schema.py
> >> >> 18,307
> >> >> hamilton/plugins/h_slack.py
> >> >> 3,634
> >> >> hamilton/plugins/h_spark.py
> >> >> 63,268
> >> >> hamilton/plugins/h_threadpool.py
> >> >> 5,036
> >> >> hamilton/plugins/h_tqdm.py
> >> >> 4,665
> >> >> hamilton/plugins/h_vaex.py
> >> >> 5,034
> >> >> hamilton/plugins/huggingface_extensions.py
> >> >> 7,839
> >> >> hamilton/plugins/ibis_extensions.py
> >> >> 2,970
> >> >> hamilton/plugins/jupyter_magic.py
> >> >> 24,929
> >> >> hamilton/plugins/kedro_extensions.py
> >> >> 3,267
> >> >> hamilton/plugins/lightgbm_extensions.py
> >> >> 2,961
> >> >> hamilton/plugins/matplotlib_extensions.py
> >> >> 3,738
> >> >> hamilton/plugins/mlflow_extensions.py
> >> >> 8,856
> >> >> hamilton/plugins/numpy_extensions.py
> >> >> 3,221
> >> >> hamilton/plugins/pandas_extensions.py
> >> >> 66,288
> >> >> hamilton/plugins/plotly_extensions.py
> >> >> 5,010
> >> >> hamilton/plugins/polars_extensions.py
> >> >> 2,345
> >> >> hamilton/plugins/polars_implementations.py
> >> >> 1,028
> >> >> hamilton/plugins/polars_lazyframe_extensions.py
> >> >> 10,889
> >> >> hamilton/plugins/polars_post_1_0_0_extensions.py
> >> >> 30,733
> >> >> hamilton/plugins/polars_pre_1_0_0_extension.py
> >> >> 29,649
> >> >> hamilton/plugins/pydantic_extensions.py
> >> >> 3,840
> >> >> hamilton/plugins/pyspark_pandas_extensions.py
> >> >> 1,551
> >> >> hamilton/plugins/sklearn_plot_extensions.py
> >> >> 4,326
> >> >> hamilton/plugins/spark_extensions.py
> >> >> 3,236
> >> >> hamilton/plugins/vaex_extensions.py
> >> >> 1,673
> >> >> hamilton/plugins/xgboost_extensions.py
> >> >> 2,762
> >> >> hamilton/plugins/yaml_extensions.py
> >> >> 2,554
> >> >> hamilton/registry.py
> >> >> 8,588
> >> >> hamilton/settings.py
> >> >> 845
> >> >> hamilton/telemetry.py
> >> >> 1,772
> >> >> hamilton/version.py
> >> >> 807
> >> >>
> >> >>
> >> >>
> >> ================================================================================
> >> >> Verifying Wheel Metadata with Twine
> >> >>
> >> >>
> >> ================================================================================
> >> >>
> >> >>
> >> >> Checking apache_hamilton-1.90.0-py3-none-any.whl...
> >> >> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
> >> >>
> >> >> ✅ All wheels passed twine validation
> >> >>
> >> >> ✅ Verification completed successfully!
> >> >> ```
> >> >>
> >> >> Maybe for some of the things it is just me doing something stupid (but
> >> >> not sure what since I copy-paste the readme commands and just fix the
> >> file
> >> >> names).
> >> >>
> >> >> Best,
> >> >> Jernej
> >> >>
> >> >> ________________________________
> >> >> From: Elijah ben Izzy <el...@alumni.brown.edu>
> >> >> Sent: 07 April 2026 05:37
> >> >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> >> >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> >> >> 1.90.0-incubating (release candidate 0)
> >> >>
> >> >> Nice work. Checks performed:
> >> >> [x] Verified GPG signature (Good signature, key
> >> >> FE668E857E89A11C5E5C000CA8D3D15600545C61)
> >> >> [x] Verified SHA-512 checksums
> >> >> [x] "incubating" in source tarball filename
> >> >> [x] LICENSE, NOTICE, DISCLAIMER present and correct
> >> >> [x] ASF license headers present in source files
> >> >> [x] No unexpected binary files
> >> >> [x] Built and installed from source (Python 3.13)
> >> >> [x] Ran hello_world example successfully
> >> >>
> >> >> + 1 (binding)
> >> >>
> >> >> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
> >> >> stefan.krawczyk@gmail.com>
> >> >> wrote:
> >> >>
> >> >> > Oh I forgot to link to it, but to hopefully make it faster to verify
> >> >> > the verification
> >> >> > script
> >> >> > <
> >> >> >
> >> >>
> >> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> >> >> > >
> >> >> > should help (see these instructions
> >> >> > <
> >> >>
> >> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> >> >> > >).
> >> >> >
> >> >> > Otherwise I have noticed the README instructions for verification
> >> have
> >> >> some
> >> >> > incorrect paths -- please adjust for that and you should be able to
> >> >> follow
> >> >> > the instructions.
> >> >> >
> >> >> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
> >> >> stefan.krawczyk@gmail.com
> >> >> > >
> >> >> > wrote:
> >> >> >
> >> >> > > Hi all,
> >> >> > >
> >> >> > > This is a call for a vote on releasing Apache Hamilton
> >> apache-hamilton
> >> >> > > 1.90.0-incubating, release candidate 0.
> >> >> > >
> >> >> > > This release includes the following changes (see CHANGELOG for
> >> >> details):
> >> >> > >
> >> >> > > Features:
> >> >> > >> - While loop DFS implementation (#1483)
> >> >> > >> - Async data validator support
> >> >> > >> - Add `unpack_fields` annotation for unpacking structured fields
> >> >> (#1305)
> >> >> > >> - Expose DAG validation as LLM tools via MCP (#1490)
> >> >> > >> - Add NDJSON support in polars (#1431)
> >> >> > >> - Enhance visualization with display_name tag support
> >> >> > >
> >> >> > >
> >> >> > > Bug fixes:
> >> >> > >> - Fix `@resolve` decorator not calling `validate()` on returned
> >> >> > >> decorators (#1524)
> >> >> > >> - Fix is_submodule substring match causing spurious DAG nodes
> >> (#1485)
> >> >> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> >> >> > >> - Fix spark failures on Python 3.14
> >> >> > >> - Fix local (Windows) tests (#1302)
> >> >> > >> - Fix typer version requirement for click 8.3 help compatibility
> >> >> > >
> >> >> > >
> >> >> > > Performance:
> >> >> > >> - Use deque for BFS queue in graph traversal (#1494)
> >> >> > >
> >> >> > >
> >> >> > > Platform changes:
> >> >> > >> - Drop Python 3.8 and 3.9 support
> >> >> > >> - Add Python 3.13 and 3.14 support
> >> >> > >> - Remove usage telemetry (PostHog) (#1512)
> >> >> > >> - Remove RayWorkflows (#1359)
> >> >> > >> - Update `dlt` plugin with changes to `loader_file_format`
> >> >> > >> - Package renamed from sf-hamilton to apache-hamilton
> >> >> > >
> >> >> > >
> >> >> > >
> >> >> > > The artifacts for this release candidate can be found at:
> >> >> > >
> >> >> > >
> >> >> >
> >> >>
> >> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> >> >> > >
> >> >> > >
> >> >> > > The Git tag to be voted upon is:
> >> >> apache-hamilton-v1.90.0-incubating-RC0
> >> >> > >
> >> >> > >
> >> >> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> >> >> > >
> >> >> > > But the functional release is from this commit from main:
> >> >> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> >> >> > >
> >> >> > > Release artifacts are signed with the following key:
> >> >> > >
> >> >> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
> >> >> > >
> >> >> > > The KEYS file is available at:
> >> >> > > https://downloads.apache.org/incubator/hamilton/KEYS
> >> >> > >
> >> >> > > Please download, verify, and test the release candidate. You can
> >> find
> >> >> the
> >> >> > > instructions to do so here
> >> >> > > <
> >> >> >
> >> >>
> >> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
> >> >> >
> >> >> > (and
> >> >> > > if you're having issues following them please reply and I'll help).
> >> >> > >
> >> >> > > The vote will run for a minimum of 72 hours, likely much longer
> >> due to
> >> >> > the
> >> >> > > holiday.
> >> >> > >
> >> >> > > Please vote:
> >> >> > >
> >> >> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
> >> >> > > 1.90.0-incubating
> >> >> > > [ ] +0 No opinion
> >> >> > > [ ] -1 Do not release this package because... (Please provide a
> >> >> reason)
> >> >> > >
> >> >> > > Checklist for reference:
> >> >> > >
> >> >> > > [ ] Incubating in name.
> >> >> > > [ ] Download links are valid.
> >> >> > > [ ] Checksums and signatures.
> >> >> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> >> >> > > [ ] No unexpected binary files
> >> >> > > [ ] All source files have ASF headers
> >> >> > > [ ] Can compile from source
> >> >> > >
> >> >> > >
> >> >> > > On behalf of the Apache Hamilton PPMC,
> >> >> > >
> >> >> > > Stefan Krawczyk
> >> >> > >
> >> >> >
> >> >>
> >> >
> >>
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Stefan Krawczyk <st...@gmail.com>.
Hey mentors,
Can someone claim verifying this RC please? I'm okay waiting, I would just
like to know who's turn it is to help please.
Cheers,
Stefan
On Sun, Apr 12, 2026, 11:20 PM Stefan Krawczyk <st...@gmail.com>
wrote:
> Awesome, if one of the mentors has time to check, then we can call this
> vote or not.
>
> You can try this gist to make it easier on you:
> https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc
>
> Cheers,
>
> Stefan
>
> On Sun, Apr 12, 2026 at 7:20 AM Jernej Frank <
> jernej.frank@physics.ox.ac.uk> wrote:
>
>> Thanks for that, this works! Maybe we can put this script into the repo?
>>
>> Happy to change to +1 for me.
>>
>> Best,
>> Jernej
>> ________________________________
>> From: Stefan Krawczyk <st...@gmail.com>
>> Sent: 11 April 2026 22:03
>> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
>> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
>> 1.90.0-incubating (release candidate 0)
>>
>> in a fresh directory (not repo)*.
>>
>> On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <
>> stefan.krawczyk@gmail.com>
>> wrote:
>>
>> > @jernej, do you want to try again? I created this gist that is a script
>> > that walks through the process:
>> > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
>> >
>> > You don't need to use the scripts to validate -- and that's not what
>> we're
>> > voting on. If you use the above script, it should set everything up
>> fresh
>> > if you do it in a fresh repo and have `uv` installed.
>> >
>> > On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
>> > jernej.frank@physics.ox.ac.uk> wrote:
>> >
>> >> Hey, I tried following the verification readme and use the scripts:
>> >>
>> https://github.com/apache/hamilton/tree/main/scripts#verification-script
>> >> and could not get a lot of things working out of the box.
>> >>
>> >> -1
>> >>
>> >> Checklist for reference:
>> >>
>> >> [x] Incubating in name.
>> >> [x] Download links are valid.
>> >> The actual link is fine but the readme is wrong
>> >> ```
>> >> svn export
>> >>
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
>> >> hamilton-rc${RC}
>> >>
>> >> svn: E170000: URL '
>> >>
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0
>> '
>> >> doesn't exist
>> >> ```
>> >> [ ] Checksums and signatures.
>> >> I can verify gpg keys but the readme is missing a -src in the name for
>> >> the source.
>> >> ```
>> >> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
>> >> ${PACKAGE}-${VERSION}-incubating.tar.gz
>> >> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such
>> >> file or directory
>> >> gpg: verify signatures failed: No such file or directory
>> >> ```
>> >>
>> >> The wheel gpg keys worked.
>> >> I could not get sha verification working:
>> >> ```
>> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
>> >> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file
>> or
>> >> directory
>> >>
>> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
>> >> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no
>> properly
>> >> formatted SHA checksum lines found
>> >>
>> >> shasum -a 512 -c ${WHEEL_NAME}.sha512
>> >> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
>> >> formatted SHA checksum lines found
>> >> ```
>> >>
>> >> Similarly, in case of using the script at the end:
>> >> ```
>> >> # Run from the extracted source directory
>> >> (${PACKAGE}-${VERSION}-incubating/)
>> >> # Verify GPG signatures and SHA512 checksums
>> >> uv run python scripts/verify_apache_artifacts.py signatures
>> >>
>> >>
>> ================================================================================
>> >> Verifying Signatures and Checksums
>> >>
>> >>
>> ================================================================================
>> >>
>> >> Found 2 artifact(s) to verify:
>> >>
>> >> Verifying: apache_hamilton-1.90.0.tar.gz
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
>> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
>> >> ✗ Signature file not found
>> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
>> >> ✗ Checksum file not found
>> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
>> >> ✓ Archive is readable and contains 706 files
>> >>
>> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
>> >> bytes)
>> >> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
>> >> ✗ Signature file not found
>> >> Verifying SHA512 checksum:
>> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
>> >> ✗ Checksum file not found
>> >> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
>> >> ✓ Wheel is readable and contains 151 files
>> >>
>> >>
>> >> ❌ Verification failed.
>> >> ```
>> >> [ ] LICENSE/NOTICE/DISCLAIMER files exist
>> >> See above and below, there's some files in the examples that don't have
>> >> licenceses but are part of the source package.
>> >> [x] No unexpected binary files
>> >> [ ] All source files have ASF headers
>> >> I ran the provided script, but rat-excludes seems not to be found. Some
>> >> of these files admit comments so they could have licence headers
>> >> ```
>> >> # Verify license headers (requires Apache RAT)
>> >> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
>> >> apache-rat-0.15.jar
>> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> Extracting archive...
>> >> ✓ Extracted to temp directory
>> >> ⚠️ Warning: .rat-excludes not found, running without excludes
>> >> Running Apache RAT (XML format for parsing)...
>> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
>> >> Running Apache RAT (text format for review)...
>> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
>> >> Parsing RAT report...
>> >> ✓ Scanned 706 files
>> >> ✓ Found 33 files with license issues
>> >>
>> >> ⚠️ License Issues Found:
>> >>
>> >> Unapproved Licenses (33 files):
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
>> >> ... and 23 more
>> >>
>> >> 📄 Reports saved:
>> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
>> >> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>> >>
>> >> ❌ License check failed!
>> >>
>> >> ❌ Verification failed.
>> >> ```
>> >> [x] Can compile from source
>> >>
>> >> *
>> >> the tar extracts into `apache_hamilton-1.90.0` so `cd
>> >> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
>> >> *
>> >> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected
>> argument
>> >> '--clean' found`
>> >> *
>> >> flit worked and could install wheel
>> >> *
>> >> cannot install test dependencies: `error: Distribution
>> `lancedb==0.30.2 @
>> >> registry+https://pypi.org/simple` <https://pypi.org/simple> <
>> https://pypi.org/simple> can't be
>> >> installed because it doesn't have a source distribution or wheel for
>> the
>> >> current platform` — seems like uv cannot resolve lance db. I am on
>> `hint:
>> >> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
>> >> *
>> >> hello_world runs -ish: only constructing the dag at the end fais if you
>> >> don't have graphviz: `ERROR:hamilton.graph: graphviz is required for
>> >> visualizing the function graph. Install it with: pip install
>> >> "sf-hamilton[visualization]" or pip install graphviz`
>> >>
>> >>
>> >> Complete verification output:
>> >> ```
>> >> # Verify everything
>> >> uv run python scripts/verify_apache_artifacts.py all --rat-jar
>> >> apache-rat-0.15.jar
>> >>
>> >> # Inspect artifact contents
>> >> uv run python scripts/verify_apache_artifacts.py list-contents
>> >> dist/apache-hamilton-1.90.0-incubating.tar.gz
>> >> uv run python scripts/verify_apache_artifacts.py list-contents
>> >> dist/apache_hamilton-1.90.0-py3-none-any.whl
>> >>
>> >> # Validate wheel metadata
>> >> uv run python scripts/verify_apache_artifacts.py twine-check
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Complete Apache Artifacts Verification
>> >>
>> >>
>> ================================================================================
>> >>
>> >>
>> >> [1/2] Verifying signatures and checksums...
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Verifying Signatures and Checksums
>> >>
>> >>
>> ================================================================================
>> >>
>> >> Found 4 artifact(s) to verify:
>> >>
>> >> Verifying: rat-report-apache_hamilton-1-90-0.xml
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467
>> bytes)
>> >> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
>> >> ✗ Signature file not found
>> >> Verifying SHA512 checksum:
>> rat-report-apache_hamilton-1-90-0.xml.sha512
>> >> ✗ Checksum file not found
>> >>
>> >> Verifying: apache_hamilton-1.90.0.tar.gz
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
>> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
>> >> ✗ Signature file not found
>> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
>> >> ✗ Checksum file not found
>> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
>> >> ✓ Archive is readable and contains 706 files
>> >>
>> >> Verifying: rat-report-apache_hamilton-1-90-0.txt
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073
>> bytes)
>> >> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
>> >> ✗ Signature file not found
>> >> Verifying SHA512 checksum:
>> rat-report-apache_hamilton-1-90-0.txt.sha512
>> >> ✗ Checksum file not found
>> >>
>> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
>> >> bytes)
>> >> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
>> >> ✗ Signature file not found
>> >> Verifying SHA512 checksum:
>> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
>> >> ✗ Checksum file not found
>> >> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
>> >> ✓ Wheel is readable and contains 151 files
>> >>
>> >>
>> >> [2/2] Verifying licenses with Apache RAT...
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Verifying Licenses with Apache RAT
>> >>
>> >>
>> ================================================================================
>> >>
>> >> Found 1 tar.gz artifact(s) to check:
>> >>
>> >>
>> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>> >>
>> >>
>> --------------------------------------------------------------------------------
>> >> Extracting archive...
>> >> ✓ Extracted to temp directory
>> >> ⚠️ Warning: .rat-excludes not found, running without excludes
>> >> Running Apache RAT (XML format for parsing)...
>> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
>> >> Running Apache RAT (text format for review)...
>> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
>> >> Parsing RAT report...
>> >> ✓ Scanned 706 files
>> >> ✓ Found 33 files with license issues
>> >>
>> >> ⚠️ License Issues Found:
>> >>
>> >> Unapproved Licenses (33 files):
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
>> >> -
>> >>
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
>> >> ... and 23 more
>> >>
>> >> 📄 Reports saved:
>> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
>> >> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>> >>
>> >> ❌ License check failed!
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Verification Summary
>> >>
>> >>
>> ================================================================================
>> >>
>> >> Results:
>> >> Signatures & Checksums: ❌ FAIL
>> >> License Compliance: ❌ FAIL
>> >>
>> >> ❌ Verification failed.
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Listing Artifact Contents
>> >>
>> >>
>> ================================================================================
>> >>
>> >>
>> >> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Listing Artifact Contents
>> >>
>> >>
>> ================================================================================
>> >>
>> >>
>> >> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
>> >>
>> >>
>> ================================================================================
>> >> Total files: 151
>> >>
>> >> Top-level structure:
>> >> apache_hamilton-1.90.0.dist-info (7 files)
>> >> hamilton (144 files)
>> >>
>> >> Files:
>> >>
>> >> apache_hamilton-1.90.0.dist-info/METADATA
>> >> 22,665
>> >> apache_hamilton-1.90.0.dist-info/RECORD
>> >> 13,565
>> >> apache_hamilton-1.90.0.dist-info/WHEEL
>> >> 82
>> >> apache_hamilton-1.90.0.dist-info/entry_points.txt
>> >> 421
>> >> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
>> >> 554
>> >> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
>> >> 12,602
>> >> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
>> >> 182
>> >> hamilton/__init__.py
>> >> 1,086
>> >> hamilton/ad_hoc_utils.py
>> >> 5,677
>> >> hamilton/async_driver.py
>> >> 19,548
>> >> hamilton/base.py
>> >> 19,860
>> >> hamilton/caching/__init__.py
>> >> 785
>> >> hamilton/caching/adapter.py
>> >> 61,482
>> >> hamilton/caching/cache_key.py
>> >> 2,497
>> >> hamilton/caching/fingerprinting.py
>> >> 9,986
>> >> hamilton/caching/stores/__init__.py
>> >> 785
>> >> hamilton/caching/stores/base.py
>> >> 8,529
>> >> hamilton/caching/stores/file.py
>> >> 5,229
>> >> hamilton/caching/stores/memory.py
>> >> 11,159
>> >> hamilton/caching/stores/sqlite.py
>> >> 9,965
>> >> hamilton/caching/stores/utils.py
>> >> 1,370
>> >> hamilton/cli/__init__.py
>> >> 785
>> >> hamilton/cli/__main__.py
>> >> 9,202
>> >> hamilton/cli/commands.py
>> >> 4,446
>> >> hamilton/cli/logic.py
>> >> 10,338
>> >> hamilton/common/__init__.py
>> >> 3,075
>> >> hamilton/contrib/__init__.py
>> >> 1,644
>> >> hamilton/data_quality/__init__.py
>> >> 785
>> >> hamilton/data_quality/base.py
>> >> 6,890
>> >> hamilton/data_quality/default_validators.py
>> >> 21,184
>> >> hamilton/data_quality/pandera_validators.py
>> >> 4,493
>> >> hamilton/dataflows/__init__.py
>> >> 27,999
>> >> hamilton/dataflows/template/README.md
>> >> 958
>> >> hamilton/dataflows/template/__init__.py
>> >> 1,721
>> >> hamilton/dataflows/template/author.md
>> >> 940
>> >> hamilton/dataflows/template/requirements.txt
>> >> 0
>> >> hamilton/dataflows/template/tags.json
>> >> 98
>> >> hamilton/dataflows/template/valid_configs.jsonl
>> >> 3
>> >> hamilton/dev_utils/__init__.py
>> >> 785
>> >> hamilton/dev_utils/deprecation.py
>> >> 7,774
>> >> hamilton/driver.py
>> >> 95,686
>> >> hamilton/execution/__init__.py
>> >> 785
>> >> hamilton/execution/debugging_utils.py
>> >> 2,041
>> >> hamilton/execution/executors.py
>> >> 18,833
>> >> hamilton/execution/graph_functions.py
>> >> 16,527
>> >> hamilton/execution/grouping.py
>> >> 17,480
>> >> hamilton/execution/state.py
>> >> 23,957
>> >> hamilton/experimental/__init__.py
>> >> 1,100
>> >> hamilton/experimental/databackend.py
>> >> 1,397
>> >> hamilton/experimental/decorators/__init__.py
>> >> 785
>> >> hamilton/experimental/decorators/parameterize_frame.py
>> >> 8,684
>> >> hamilton/experimental/h_async.py
>> >> 1,057
>> >> hamilton/experimental/h_cache.py
>> >> 15,259
>> >> hamilton/experimental/h_dask.py
>> >> 1,166
>> >> hamilton/experimental/h_databackends.py
>> >> 5,075
>> >> hamilton/experimental/h_ray.py
>> >> 1,124
>> >> hamilton/experimental/h_spark.py
>> >> 1,223
>> >> hamilton/function_modifiers/README
>> >> 2,672
>> >> hamilton/function_modifiers/__init__.py
>> >> 3,812
>> >> hamilton/function_modifiers/adapters.py
>> >> 38,908
>> >> hamilton/function_modifiers/base.py
>> >> 33,403
>> >> hamilton/function_modifiers/configuration.py
>> >> 13,422
>> >> hamilton/function_modifiers/delayed.py
>> >> 9,448
>> >> hamilton/function_modifiers/dependencies.py
>> >> 10,014
>> >> hamilton/function_modifiers/expanders.py
>> >> 56,117
>> >> hamilton/function_modifiers/macros.py
>> >> 73,755
>> >> hamilton/function_modifiers/metadata.py
>> >> 17,253
>> >> hamilton/function_modifiers/recursive.py
>> >> 40,426
>> >> hamilton/function_modifiers/validation.py
>> >> 12,484
>> >> hamilton/function_modifiers_base.py
>> >> 1,462
>> >> hamilton/graph.py
>> >> 50,459
>> >> hamilton/graph_types.py
>> >> 10,478
>> >> hamilton/graph_utils.py
>> >> 1,656
>> >> hamilton/htypes.py
>> >> 17,746
>> >> hamilton/io/__init__.py
>> >> 1,183
>> >> hamilton/io/data_adapters.py
>> >> 7,987
>> >> hamilton/io/default_data_loaders.py
>> >> 5,617
>> >> hamilton/io/materialization.py
>> >> 21,578
>> >> hamilton/io/utils.py
>> >> 5,073
>> >> hamilton/lifecycle/__init__.py
>> >> 2,053
>> >> hamilton/lifecycle/api.py
>> >> 31,981
>> >> hamilton/lifecycle/base.py
>> >> 44,599
>> >> hamilton/lifecycle/default.py
>> >> 32,890
>> >> hamilton/log_setup.py
>> >> 1,714
>> >> hamilton/models.py
>> >> 3,265
>> >> hamilton/node.py
>> >> 17,153
>> >> hamilton/plugins/README.md
>> >> 2,659
>> >> hamilton/plugins/__init__.py
>> >> 785
>> >> hamilton/plugins/dask_extensions.py
>> >> 1,518
>> >> hamilton/plugins/dlt_extensions.py
>> >> 5,585
>> >> hamilton/plugins/geopandas_extensions.py
>> >> 1,572
>> >> hamilton/plugins/h_dask.py
>> >> 15,566
>> >> hamilton/plugins/h_ddog.py
>> >> 22,392
>> >> hamilton/plugins/h_diskcache.py
>> >> 6,683
>> >> hamilton/plugins/h_experiments/__init__.py
>> >> 892
>> >> hamilton/plugins/h_experiments/__main__.py
>> >> 2,181
>> >> hamilton/plugins/h_experiments/cache.py
>> >> 1,395
>> >> hamilton/plugins/h_experiments/data_model.py
>> >> 2,180
>> >> hamilton/plugins/h_experiments/hook.py
>> >> 7,240
>> >> hamilton/plugins/h_experiments/server.py
>> >> 12,493
>> >> hamilton/plugins/h_kedro.py
>> >> 5,583
>> >> hamilton/plugins/h_logging.py
>> >> 15,225
>> >> hamilton/plugins/h_mcp/__init__.py
>> >> 1,068
>> >> hamilton/plugins/h_mcp/__main__.py
>> >> 1,137
>> >> hamilton/plugins/h_mcp/_helpers.py
>> >> 4,152
>> >> hamilton/plugins/h_mcp/_templates.py
>> >> 13,528
>> >> hamilton/plugins/h_mcp/server.py
>> >> 12,392
>> >> hamilton/plugins/h_mlflow.py
>> >> 14,442
>> >> hamilton/plugins/h_narwhals.py
>> >> 4,677
>> >> hamilton/plugins/h_openlineage.py
>> >> 13,129
>> >> hamilton/plugins/h_opentelemetry.py
>> >> 5,928
>> >> hamilton/plugins/h_pandas.py
>> >> 10,633
>> >> hamilton/plugins/h_pandera.py
>> >> 4,952
>> >> hamilton/plugins/h_polars.py
>> >> 12,507
>> >> hamilton/plugins/h_polars_lazyframe.py
>> >> 11,561
>> >> hamilton/plugins/h_pyarrow.py
>> >> 2,177
>> >> hamilton/plugins/h_pydantic.py
>> >> 4,962
>> >> hamilton/plugins/h_ray.py
>> >> 9,130
>> >> hamilton/plugins/h_rich.py
>> >> 5,181
>> >> hamilton/plugins/h_schema.py
>> >> 18,307
>> >> hamilton/plugins/h_slack.py
>> >> 3,634
>> >> hamilton/plugins/h_spark.py
>> >> 63,268
>> >> hamilton/plugins/h_threadpool.py
>> >> 5,036
>> >> hamilton/plugins/h_tqdm.py
>> >> 4,665
>> >> hamilton/plugins/h_vaex.py
>> >> 5,034
>> >> hamilton/plugins/huggingface_extensions.py
>> >> 7,839
>> >> hamilton/plugins/ibis_extensions.py
>> >> 2,970
>> >> hamilton/plugins/jupyter_magic.py
>> >> 24,929
>> >> hamilton/plugins/kedro_extensions.py
>> >> 3,267
>> >> hamilton/plugins/lightgbm_extensions.py
>> >> 2,961
>> >> hamilton/plugins/matplotlib_extensions.py
>> >> 3,738
>> >> hamilton/plugins/mlflow_extensions.py
>> >> 8,856
>> >> hamilton/plugins/numpy_extensions.py
>> >> 3,221
>> >> hamilton/plugins/pandas_extensions.py
>> >> 66,288
>> >> hamilton/plugins/plotly_extensions.py
>> >> 5,010
>> >> hamilton/plugins/polars_extensions.py
>> >> 2,345
>> >> hamilton/plugins/polars_implementations.py
>> >> 1,028
>> >> hamilton/plugins/polars_lazyframe_extensions.py
>> >> 10,889
>> >> hamilton/plugins/polars_post_1_0_0_extensions.py
>> >> 30,733
>> >> hamilton/plugins/polars_pre_1_0_0_extension.py
>> >> 29,649
>> >> hamilton/plugins/pydantic_extensions.py
>> >> 3,840
>> >> hamilton/plugins/pyspark_pandas_extensions.py
>> >> 1,551
>> >> hamilton/plugins/sklearn_plot_extensions.py
>> >> 4,326
>> >> hamilton/plugins/spark_extensions.py
>> >> 3,236
>> >> hamilton/plugins/vaex_extensions.py
>> >> 1,673
>> >> hamilton/plugins/xgboost_extensions.py
>> >> 2,762
>> >> hamilton/plugins/yaml_extensions.py
>> >> 2,554
>> >> hamilton/registry.py
>> >> 8,588
>> >> hamilton/settings.py
>> >> 845
>> >> hamilton/telemetry.py
>> >> 1,772
>> >> hamilton/version.py
>> >> 807
>> >>
>> >>
>> >>
>> ================================================================================
>> >> Verifying Wheel Metadata with Twine
>> >>
>> >>
>> ================================================================================
>> >>
>> >>
>> >> Checking apache_hamilton-1.90.0-py3-none-any.whl...
>> >> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
>> >>
>> >> ✅ All wheels passed twine validation
>> >>
>> >> ✅ Verification completed successfully!
>> >> ```
>> >>
>> >> Maybe for some of the things it is just me doing something stupid (but
>> >> not sure what since I copy-paste the readme commands and just fix the
>> file
>> >> names).
>> >>
>> >> Best,
>> >> Jernej
>> >>
>> >> ________________________________
>> >> From: Elijah ben Izzy <el...@alumni.brown.edu>
>> >> Sent: 07 April 2026 05:37
>> >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
>> >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
>> >> 1.90.0-incubating (release candidate 0)
>> >>
>> >> Nice work. Checks performed:
>> >> [x] Verified GPG signature (Good signature, key
>> >> FE668E857E89A11C5E5C000CA8D3D15600545C61)
>> >> [x] Verified SHA-512 checksums
>> >> [x] "incubating" in source tarball filename
>> >> [x] LICENSE, NOTICE, DISCLAIMER present and correct
>> >> [x] ASF license headers present in source files
>> >> [x] No unexpected binary files
>> >> [x] Built and installed from source (Python 3.13)
>> >> [x] Ran hello_world example successfully
>> >>
>> >> + 1 (binding)
>> >>
>> >> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
>> >> stefan.krawczyk@gmail.com>
>> >> wrote:
>> >>
>> >> > Oh I forgot to link to it, but to hopefully make it faster to verify
>> >> > the verification
>> >> > script
>> >> > <
>> >> >
>> >>
>> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
>> >> > >
>> >> > should help (see these instructions
>> >> > <
>> >>
>> https://github.com/apache/hamilton/tree/main/scripts#verification-script
>> >> > >).
>> >> >
>> >> > Otherwise I have noticed the README instructions for verification
>> have
>> >> some
>> >> > incorrect paths -- please adjust for that and you should be able to
>> >> follow
>> >> > the instructions.
>> >> >
>> >> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
>> >> stefan.krawczyk@gmail.com
>> >> > >
>> >> > wrote:
>> >> >
>> >> > > Hi all,
>> >> > >
>> >> > > This is a call for a vote on releasing Apache Hamilton
>> apache-hamilton
>> >> > > 1.90.0-incubating, release candidate 0.
>> >> > >
>> >> > > This release includes the following changes (see CHANGELOG for
>> >> details):
>> >> > >
>> >> > > Features:
>> >> > >> - While loop DFS implementation (#1483)
>> >> > >> - Async data validator support
>> >> > >> - Add `unpack_fields` annotation for unpacking structured fields
>> >> (#1305)
>> >> > >> - Expose DAG validation as LLM tools via MCP (#1490)
>> >> > >> - Add NDJSON support in polars (#1431)
>> >> > >> - Enhance visualization with display_name tag support
>> >> > >
>> >> > >
>> >> > > Bug fixes:
>> >> > >> - Fix `@resolve` decorator not calling `validate()` on returned
>> >> > >> decorators (#1524)
>> >> > >> - Fix is_submodule substring match causing spurious DAG nodes
>> (#1485)
>> >> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
>> >> > >> - Fix spark failures on Python 3.14
>> >> > >> - Fix local (Windows) tests (#1302)
>> >> > >> - Fix typer version requirement for click 8.3 help compatibility
>> >> > >
>> >> > >
>> >> > > Performance:
>> >> > >> - Use deque for BFS queue in graph traversal (#1494)
>> >> > >
>> >> > >
>> >> > > Platform changes:
>> >> > >> - Drop Python 3.8 and 3.9 support
>> >> > >> - Add Python 3.13 and 3.14 support
>> >> > >> - Remove usage telemetry (PostHog) (#1512)
>> >> > >> - Remove RayWorkflows (#1359)
>> >> > >> - Update `dlt` plugin with changes to `loader_file_format`
>> >> > >> - Package renamed from sf-hamilton to apache-hamilton
>> >> > >
>> >> > >
>> >> > >
>> >> > > The artifacts for this release candidate can be found at:
>> >> > >
>> >> > >
>> >> >
>> >>
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
>> >> > >
>> >> > >
>> >> > > The Git tag to be voted upon is:
>> >> apache-hamilton-v1.90.0-incubating-RC0
>> >> > >
>> >> > >
>> >> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
>> >> > >
>> >> > > But the functional release is from this commit from main:
>> >> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
>> >> > >
>> >> > > Release artifacts are signed with the following key:
>> >> > >
>> >> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
>> >> > >
>> >> > > The KEYS file is available at:
>> >> > > https://downloads.apache.org/incubator/hamilton/KEYS
>> >> > >
>> >> > > Please download, verify, and test the release candidate. You can
>> find
>> >> the
>> >> > > instructions to do so here
>> >> > > <
>> >> >
>> >>
>> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
>> >> >
>> >> > (and
>> >> > > if you're having issues following them please reply and I'll help).
>> >> > >
>> >> > > The vote will run for a minimum of 72 hours, likely much longer
>> due to
>> >> > the
>> >> > > holiday.
>> >> > >
>> >> > > Please vote:
>> >> > >
>> >> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
>> >> > > 1.90.0-incubating
>> >> > > [ ] +0 No opinion
>> >> > > [ ] -1 Do not release this package because... (Please provide a
>> >> reason)
>> >> > >
>> >> > > Checklist for reference:
>> >> > >
>> >> > > [ ] Incubating in name.
>> >> > > [ ] Download links are valid.
>> >> > > [ ] Checksums and signatures.
>> >> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
>> >> > > [ ] No unexpected binary files
>> >> > > [ ] All source files have ASF headers
>> >> > > [ ] Can compile from source
>> >> > >
>> >> > >
>> >> > > On behalf of the Apache Hamilton PPMC,
>> >> > >
>> >> > > Stefan Krawczyk
>> >> > >
>> >> >
>> >>
>> >
>>
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Stefan Krawczyk <st...@gmail.com>.
Awesome, if one of the mentors has time to check, then we can call this
vote or not.
You can try this gist to make it easier on you:
https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc
Cheers,
Stefan
On Sun, Apr 12, 2026 at 7:20 AM Jernej Frank <je...@physics.ox.ac.uk>
wrote:
> Thanks for that, this works! Maybe we can put this script into the repo?
>
> Happy to change to +1 for me.
>
> Best,
> Jernej
> ________________________________
> From: Stefan Krawczyk <st...@gmail.com>
> Sent: 11 April 2026 22:03
> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> 1.90.0-incubating (release candidate 0)
>
> in a fresh directory (not repo)*.
>
> On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <stefan.krawczyk@gmail.com
> >
> wrote:
>
> > @jernej, do you want to try again? I created this gist that is a script
> > that walks through the process:
> > https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
> >
> > You don't need to use the scripts to validate -- and that's not what
> we're
> > voting on. If you use the above script, it should set everything up fresh
> > if you do it in a fresh repo and have `uv` installed.
> >
> > On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
> > jernej.frank@physics.ox.ac.uk> wrote:
> >
> >> Hey, I tried following the verification readme and use the scripts:
> >>
> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> >> and could not get a lot of things working out of the box.
> >>
> >> -1
> >>
> >> Checklist for reference:
> >>
> >> [x] Incubating in name.
> >> [x] Download links are valid.
> >> The actual link is fine but the readme is wrong
> >> ```
> >> svn export
> >>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
> >> hamilton-rc${RC}
> >>
> >> svn: E170000: URL '
> >>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0
> '
> >> doesn't exist
> >> ```
> >> [ ] Checksums and signatures.
> >> I can verify gpg keys but the readme is missing a -src in the name for
> >> the source.
> >> ```
> >> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
> >> ${PACKAGE}-${VERSION}-incubating.tar.gz
> >> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such
> >> file or directory
> >> gpg: verify signatures failed: No such file or directory
> >> ```
> >>
> >> The wheel gpg keys worked.
> >> I could not get sha verification working:
> >> ```
> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
> >> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file or
> >> directory
> >>
> >> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
> >> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no properly
> >> formatted SHA checksum lines found
> >>
> >> shasum -a 512 -c ${WHEEL_NAME}.sha512
> >> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
> >> formatted SHA checksum lines found
> >> ```
> >>
> >> Similarly, in case of using the script at the end:
> >> ```
> >> # Run from the extracted source directory
> >> (${PACKAGE}-${VERSION}-incubating/)
> >> # Verify GPG signatures and SHA512 checksums
> >> uv run python scripts/verify_apache_artifacts.py signatures
> >>
> >>
> ================================================================================
> >> Verifying Signatures and Checksums
> >>
> >>
> ================================================================================
> >>
> >> Found 2 artifact(s) to verify:
> >>
> >> Verifying: apache_hamilton-1.90.0.tar.gz
> >>
> >>
> --------------------------------------------------------------------------------
> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> >> ✗ Signature file not found
> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> >> ✗ Checksum file not found
> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> >> ✓ Archive is readable and contains 706 files
> >>
> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> >>
> >>
> --------------------------------------------------------------------------------
> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
> >> bytes)
> >> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
> >> ✗ Signature file not found
> >> Verifying SHA512 checksum:
> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> >> ✗ Checksum file not found
> >> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
> >> ✓ Wheel is readable and contains 151 files
> >>
> >>
> >> ❌ Verification failed.
> >> ```
> >> [ ] LICENSE/NOTICE/DISCLAIMER files exist
> >> See above and below, there's some files in the examples that don't have
> >> licenceses but are part of the source package.
> >> [x] No unexpected binary files
> >> [ ] All source files have ASF headers
> >> I ran the provided script, but rat-excludes seems not to be found. Some
> >> of these files admit comments so they could have licence headers
> >> ```
> >> # Verify license headers (requires Apache RAT)
> >> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
> >> apache-rat-0.15.jar
> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> >>
> >>
> --------------------------------------------------------------------------------
> >> Extracting archive...
> >> ✓ Extracted to temp directory
> >> ⚠️ Warning: .rat-excludes not found, running without excludes
> >> Running Apache RAT (XML format for parsing)...
> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> >> Running Apache RAT (text format for review)...
> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> >> Parsing RAT report...
> >> ✓ Scanned 706 files
> >> ✓ Found 33 files with license issues
> >>
> >> ⚠️ License Issues Found:
> >>
> >> Unapproved Licenses (33 files):
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> >> ... and 23 more
> >>
> >> 📄 Reports saved:
> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> >> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
> >>
> >> ❌ License check failed!
> >>
> >> ❌ Verification failed.
> >> ```
> >> [x] Can compile from source
> >>
> >> *
> >> the tar extracts into `apache_hamilton-1.90.0` so `cd
> >> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
> >> *
> >> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected
> argument
> >> '--clean' found`
> >> *
> >> flit worked and could install wheel
> >> *
> >> cannot install test dependencies: `error: Distribution `lancedb==0.30.2
> @
> >> registry+https://pypi.org/simple` <https://pypi.org/simple> <
> https://pypi.org/simple> can't be
> >> installed because it doesn't have a source distribution or wheel for the
> >> current platform` — seems like uv cannot resolve lance db. I am on
> `hint:
> >> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
> >> *
> >> hello_world runs -ish: only constructing the dag at the end fais if you
> >> don't have graphviz: `ERROR:hamilton.graph: graphviz is required for
> >> visualizing the function graph. Install it with: pip install
> >> "sf-hamilton[visualization]" or pip install graphviz`
> >>
> >>
> >> Complete verification output:
> >> ```
> >> # Verify everything
> >> uv run python scripts/verify_apache_artifacts.py all --rat-jar
> >> apache-rat-0.15.jar
> >>
> >> # Inspect artifact contents
> >> uv run python scripts/verify_apache_artifacts.py list-contents
> >> dist/apache-hamilton-1.90.0-incubating.tar.gz
> >> uv run python scripts/verify_apache_artifacts.py list-contents
> >> dist/apache_hamilton-1.90.0-py3-none-any.whl
> >>
> >> # Validate wheel metadata
> >> uv run python scripts/verify_apache_artifacts.py twine-check
> >>
> >>
> >>
> ================================================================================
> >> Complete Apache Artifacts Verification
> >>
> >>
> ================================================================================
> >>
> >>
> >> [1/2] Verifying signatures and checksums...
> >>
> >>
> >>
> ================================================================================
> >> Verifying Signatures and Checksums
> >>
> >>
> ================================================================================
> >>
> >> Found 4 artifact(s) to verify:
> >>
> >> Verifying: rat-report-apache_hamilton-1-90-0.xml
> >>
> >>
> --------------------------------------------------------------------------------
> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467
> bytes)
> >> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
> >> ✗ Signature file not found
> >> Verifying SHA512 checksum:
> rat-report-apache_hamilton-1-90-0.xml.sha512
> >> ✗ Checksum file not found
> >>
> >> Verifying: apache_hamilton-1.90.0.tar.gz
> >>
> >>
> --------------------------------------------------------------------------------
> >> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
> >> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> >> ✗ Signature file not found
> >> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> >> ✗ Checksum file not found
> >> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> >> ✓ Archive is readable and contains 706 files
> >>
> >> Verifying: rat-report-apache_hamilton-1-90-0.txt
> >>
> >>
> --------------------------------------------------------------------------------
> >> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073
> bytes)
> >> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
> >> ✗ Signature file not found
> >> Verifying SHA512 checksum:
> rat-report-apache_hamilton-1-90-0.txt.sha512
> >> ✗ Checksum file not found
> >>
> >> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
> >>
> >>
> --------------------------------------------------------------------------------
> >> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
> >> bytes)
> >> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
> >> ✗ Signature file not found
> >> Verifying SHA512 checksum:
> >> apache_hamilton-1.90.0-py3-none-any.whl.sha512
> >> ✗ Checksum file not found
> >> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
> >> ✓ Wheel is readable and contains 151 files
> >>
> >>
> >> [2/2] Verifying licenses with Apache RAT...
> >>
> >>
> >>
> ================================================================================
> >> Verifying Licenses with Apache RAT
> >>
> >>
> ================================================================================
> >>
> >> Found 1 tar.gz artifact(s) to check:
> >>
> >>
> >> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
> >>
> >>
> --------------------------------------------------------------------------------
> >> Extracting archive...
> >> ✓ Extracted to temp directory
> >> ⚠️ Warning: .rat-excludes not found, running without excludes
> >> Running Apache RAT (XML format for parsing)...
> >> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> >> Running Apache RAT (text format for review)...
> >> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> >> Parsing RAT report...
> >> ✓ Scanned 706 files
> >> ✓ Found 33 files with license issues
> >>
> >> ⚠️ License Issues Found:
> >>
> >> Unapproved Licenses (33 files):
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> >> -
> >>
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> >> ... and 23 more
> >>
> >> 📄 Reports saved:
> >> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> >> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
> >>
> >> ❌ License check failed!
> >>
> >>
> >>
> ================================================================================
> >> Verification Summary
> >>
> >>
> ================================================================================
> >>
> >> Results:
> >> Signatures & Checksums: ❌ FAIL
> >> License Compliance: ❌ FAIL
> >>
> >> ❌ Verification failed.
> >>
> >>
> >>
> ================================================================================
> >> Listing Artifact Contents
> >>
> >>
> ================================================================================
> >>
> >>
> >> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
> >>
> >>
> >>
> ================================================================================
> >> Listing Artifact Contents
> >>
> >>
> ================================================================================
> >>
> >>
> >> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
> >>
> >>
> ================================================================================
> >> Total files: 151
> >>
> >> Top-level structure:
> >> apache_hamilton-1.90.0.dist-info (7 files)
> >> hamilton (144 files)
> >>
> >> Files:
> >>
> >> apache_hamilton-1.90.0.dist-info/METADATA
> >> 22,665
> >> apache_hamilton-1.90.0.dist-info/RECORD
> >> 13,565
> >> apache_hamilton-1.90.0.dist-info/WHEEL
> >> 82
> >> apache_hamilton-1.90.0.dist-info/entry_points.txt
> >> 421
> >> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
> >> 554
> >> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
> >> 12,602
> >> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
> >> 182
> >> hamilton/__init__.py
> >> 1,086
> >> hamilton/ad_hoc_utils.py
> >> 5,677
> >> hamilton/async_driver.py
> >> 19,548
> >> hamilton/base.py
> >> 19,860
> >> hamilton/caching/__init__.py
> >> 785
> >> hamilton/caching/adapter.py
> >> 61,482
> >> hamilton/caching/cache_key.py
> >> 2,497
> >> hamilton/caching/fingerprinting.py
> >> 9,986
> >> hamilton/caching/stores/__init__.py
> >> 785
> >> hamilton/caching/stores/base.py
> >> 8,529
> >> hamilton/caching/stores/file.py
> >> 5,229
> >> hamilton/caching/stores/memory.py
> >> 11,159
> >> hamilton/caching/stores/sqlite.py
> >> 9,965
> >> hamilton/caching/stores/utils.py
> >> 1,370
> >> hamilton/cli/__init__.py
> >> 785
> >> hamilton/cli/__main__.py
> >> 9,202
> >> hamilton/cli/commands.py
> >> 4,446
> >> hamilton/cli/logic.py
> >> 10,338
> >> hamilton/common/__init__.py
> >> 3,075
> >> hamilton/contrib/__init__.py
> >> 1,644
> >> hamilton/data_quality/__init__.py
> >> 785
> >> hamilton/data_quality/base.py
> >> 6,890
> >> hamilton/data_quality/default_validators.py
> >> 21,184
> >> hamilton/data_quality/pandera_validators.py
> >> 4,493
> >> hamilton/dataflows/__init__.py
> >> 27,999
> >> hamilton/dataflows/template/README.md
> >> 958
> >> hamilton/dataflows/template/__init__.py
> >> 1,721
> >> hamilton/dataflows/template/author.md
> >> 940
> >> hamilton/dataflows/template/requirements.txt
> >> 0
> >> hamilton/dataflows/template/tags.json
> >> 98
> >> hamilton/dataflows/template/valid_configs.jsonl
> >> 3
> >> hamilton/dev_utils/__init__.py
> >> 785
> >> hamilton/dev_utils/deprecation.py
> >> 7,774
> >> hamilton/driver.py
> >> 95,686
> >> hamilton/execution/__init__.py
> >> 785
> >> hamilton/execution/debugging_utils.py
> >> 2,041
> >> hamilton/execution/executors.py
> >> 18,833
> >> hamilton/execution/graph_functions.py
> >> 16,527
> >> hamilton/execution/grouping.py
> >> 17,480
> >> hamilton/execution/state.py
> >> 23,957
> >> hamilton/experimental/__init__.py
> >> 1,100
> >> hamilton/experimental/databackend.py
> >> 1,397
> >> hamilton/experimental/decorators/__init__.py
> >> 785
> >> hamilton/experimental/decorators/parameterize_frame.py
> >> 8,684
> >> hamilton/experimental/h_async.py
> >> 1,057
> >> hamilton/experimental/h_cache.py
> >> 15,259
> >> hamilton/experimental/h_dask.py
> >> 1,166
> >> hamilton/experimental/h_databackends.py
> >> 5,075
> >> hamilton/experimental/h_ray.py
> >> 1,124
> >> hamilton/experimental/h_spark.py
> >> 1,223
> >> hamilton/function_modifiers/README
> >> 2,672
> >> hamilton/function_modifiers/__init__.py
> >> 3,812
> >> hamilton/function_modifiers/adapters.py
> >> 38,908
> >> hamilton/function_modifiers/base.py
> >> 33,403
> >> hamilton/function_modifiers/configuration.py
> >> 13,422
> >> hamilton/function_modifiers/delayed.py
> >> 9,448
> >> hamilton/function_modifiers/dependencies.py
> >> 10,014
> >> hamilton/function_modifiers/expanders.py
> >> 56,117
> >> hamilton/function_modifiers/macros.py
> >> 73,755
> >> hamilton/function_modifiers/metadata.py
> >> 17,253
> >> hamilton/function_modifiers/recursive.py
> >> 40,426
> >> hamilton/function_modifiers/validation.py
> >> 12,484
> >> hamilton/function_modifiers_base.py
> >> 1,462
> >> hamilton/graph.py
> >> 50,459
> >> hamilton/graph_types.py
> >> 10,478
> >> hamilton/graph_utils.py
> >> 1,656
> >> hamilton/htypes.py
> >> 17,746
> >> hamilton/io/__init__.py
> >> 1,183
> >> hamilton/io/data_adapters.py
> >> 7,987
> >> hamilton/io/default_data_loaders.py
> >> 5,617
> >> hamilton/io/materialization.py
> >> 21,578
> >> hamilton/io/utils.py
> >> 5,073
> >> hamilton/lifecycle/__init__.py
> >> 2,053
> >> hamilton/lifecycle/api.py
> >> 31,981
> >> hamilton/lifecycle/base.py
> >> 44,599
> >> hamilton/lifecycle/default.py
> >> 32,890
> >> hamilton/log_setup.py
> >> 1,714
> >> hamilton/models.py
> >> 3,265
> >> hamilton/node.py
> >> 17,153
> >> hamilton/plugins/README.md
> >> 2,659
> >> hamilton/plugins/__init__.py
> >> 785
> >> hamilton/plugins/dask_extensions.py
> >> 1,518
> >> hamilton/plugins/dlt_extensions.py
> >> 5,585
> >> hamilton/plugins/geopandas_extensions.py
> >> 1,572
> >> hamilton/plugins/h_dask.py
> >> 15,566
> >> hamilton/plugins/h_ddog.py
> >> 22,392
> >> hamilton/plugins/h_diskcache.py
> >> 6,683
> >> hamilton/plugins/h_experiments/__init__.py
> >> 892
> >> hamilton/plugins/h_experiments/__main__.py
> >> 2,181
> >> hamilton/plugins/h_experiments/cache.py
> >> 1,395
> >> hamilton/plugins/h_experiments/data_model.py
> >> 2,180
> >> hamilton/plugins/h_experiments/hook.py
> >> 7,240
> >> hamilton/plugins/h_experiments/server.py
> >> 12,493
> >> hamilton/plugins/h_kedro.py
> >> 5,583
> >> hamilton/plugins/h_logging.py
> >> 15,225
> >> hamilton/plugins/h_mcp/__init__.py
> >> 1,068
> >> hamilton/plugins/h_mcp/__main__.py
> >> 1,137
> >> hamilton/plugins/h_mcp/_helpers.py
> >> 4,152
> >> hamilton/plugins/h_mcp/_templates.py
> >> 13,528
> >> hamilton/plugins/h_mcp/server.py
> >> 12,392
> >> hamilton/plugins/h_mlflow.py
> >> 14,442
> >> hamilton/plugins/h_narwhals.py
> >> 4,677
> >> hamilton/plugins/h_openlineage.py
> >> 13,129
> >> hamilton/plugins/h_opentelemetry.py
> >> 5,928
> >> hamilton/plugins/h_pandas.py
> >> 10,633
> >> hamilton/plugins/h_pandera.py
> >> 4,952
> >> hamilton/plugins/h_polars.py
> >> 12,507
> >> hamilton/plugins/h_polars_lazyframe.py
> >> 11,561
> >> hamilton/plugins/h_pyarrow.py
> >> 2,177
> >> hamilton/plugins/h_pydantic.py
> >> 4,962
> >> hamilton/plugins/h_ray.py
> >> 9,130
> >> hamilton/plugins/h_rich.py
> >> 5,181
> >> hamilton/plugins/h_schema.py
> >> 18,307
> >> hamilton/plugins/h_slack.py
> >> 3,634
> >> hamilton/plugins/h_spark.py
> >> 63,268
> >> hamilton/plugins/h_threadpool.py
> >> 5,036
> >> hamilton/plugins/h_tqdm.py
> >> 4,665
> >> hamilton/plugins/h_vaex.py
> >> 5,034
> >> hamilton/plugins/huggingface_extensions.py
> >> 7,839
> >> hamilton/plugins/ibis_extensions.py
> >> 2,970
> >> hamilton/plugins/jupyter_magic.py
> >> 24,929
> >> hamilton/plugins/kedro_extensions.py
> >> 3,267
> >> hamilton/plugins/lightgbm_extensions.py
> >> 2,961
> >> hamilton/plugins/matplotlib_extensions.py
> >> 3,738
> >> hamilton/plugins/mlflow_extensions.py
> >> 8,856
> >> hamilton/plugins/numpy_extensions.py
> >> 3,221
> >> hamilton/plugins/pandas_extensions.py
> >> 66,288
> >> hamilton/plugins/plotly_extensions.py
> >> 5,010
> >> hamilton/plugins/polars_extensions.py
> >> 2,345
> >> hamilton/plugins/polars_implementations.py
> >> 1,028
> >> hamilton/plugins/polars_lazyframe_extensions.py
> >> 10,889
> >> hamilton/plugins/polars_post_1_0_0_extensions.py
> >> 30,733
> >> hamilton/plugins/polars_pre_1_0_0_extension.py
> >> 29,649
> >> hamilton/plugins/pydantic_extensions.py
> >> 3,840
> >> hamilton/plugins/pyspark_pandas_extensions.py
> >> 1,551
> >> hamilton/plugins/sklearn_plot_extensions.py
> >> 4,326
> >> hamilton/plugins/spark_extensions.py
> >> 3,236
> >> hamilton/plugins/vaex_extensions.py
> >> 1,673
> >> hamilton/plugins/xgboost_extensions.py
> >> 2,762
> >> hamilton/plugins/yaml_extensions.py
> >> 2,554
> >> hamilton/registry.py
> >> 8,588
> >> hamilton/settings.py
> >> 845
> >> hamilton/telemetry.py
> >> 1,772
> >> hamilton/version.py
> >> 807
> >>
> >>
> >>
> ================================================================================
> >> Verifying Wheel Metadata with Twine
> >>
> >>
> ================================================================================
> >>
> >>
> >> Checking apache_hamilton-1.90.0-py3-none-any.whl...
> >> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
> >>
> >> ✅ All wheels passed twine validation
> >>
> >> ✅ Verification completed successfully!
> >> ```
> >>
> >> Maybe for some of the things it is just me doing something stupid (but
> >> not sure what since I copy-paste the readme commands and just fix the
> file
> >> names).
> >>
> >> Best,
> >> Jernej
> >>
> >> ________________________________
> >> From: Elijah ben Izzy <el...@alumni.brown.edu>
> >> Sent: 07 April 2026 05:37
> >> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> >> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> >> 1.90.0-incubating (release candidate 0)
> >>
> >> Nice work. Checks performed:
> >> [x] Verified GPG signature (Good signature, key
> >> FE668E857E89A11C5E5C000CA8D3D15600545C61)
> >> [x] Verified SHA-512 checksums
> >> [x] "incubating" in source tarball filename
> >> [x] LICENSE, NOTICE, DISCLAIMER present and correct
> >> [x] ASF license headers present in source files
> >> [x] No unexpected binary files
> >> [x] Built and installed from source (Python 3.13)
> >> [x] Ran hello_world example successfully
> >>
> >> + 1 (binding)
> >>
> >> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
> >> stefan.krawczyk@gmail.com>
> >> wrote:
> >>
> >> > Oh I forgot to link to it, but to hopefully make it faster to verify
> >> > the verification
> >> > script
> >> > <
> >> >
> >>
> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> >> > >
> >> > should help (see these instructions
> >> > <
> >>
> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> >> > >).
> >> >
> >> > Otherwise I have noticed the README instructions for verification have
> >> some
> >> > incorrect paths -- please adjust for that and you should be able to
> >> follow
> >> > the instructions.
> >> >
> >> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
> >> stefan.krawczyk@gmail.com
> >> > >
> >> > wrote:
> >> >
> >> > > Hi all,
> >> > >
> >> > > This is a call for a vote on releasing Apache Hamilton
> apache-hamilton
> >> > > 1.90.0-incubating, release candidate 0.
> >> > >
> >> > > This release includes the following changes (see CHANGELOG for
> >> details):
> >> > >
> >> > > Features:
> >> > >> - While loop DFS implementation (#1483)
> >> > >> - Async data validator support
> >> > >> - Add `unpack_fields` annotation for unpacking structured fields
> >> (#1305)
> >> > >> - Expose DAG validation as LLM tools via MCP (#1490)
> >> > >> - Add NDJSON support in polars (#1431)
> >> > >> - Enhance visualization with display_name tag support
> >> > >
> >> > >
> >> > > Bug fixes:
> >> > >> - Fix `@resolve` decorator not calling `validate()` on returned
> >> > >> decorators (#1524)
> >> > >> - Fix is_submodule substring match causing spurious DAG nodes
> (#1485)
> >> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> >> > >> - Fix spark failures on Python 3.14
> >> > >> - Fix local (Windows) tests (#1302)
> >> > >> - Fix typer version requirement for click 8.3 help compatibility
> >> > >
> >> > >
> >> > > Performance:
> >> > >> - Use deque for BFS queue in graph traversal (#1494)
> >> > >
> >> > >
> >> > > Platform changes:
> >> > >> - Drop Python 3.8 and 3.9 support
> >> > >> - Add Python 3.13 and 3.14 support
> >> > >> - Remove usage telemetry (PostHog) (#1512)
> >> > >> - Remove RayWorkflows (#1359)
> >> > >> - Update `dlt` plugin with changes to `loader_file_format`
> >> > >> - Package renamed from sf-hamilton to apache-hamilton
> >> > >
> >> > >
> >> > >
> >> > > The artifacts for this release candidate can be found at:
> >> > >
> >> > >
> >> >
> >>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> >> > >
> >> > >
> >> > > The Git tag to be voted upon is:
> >> apache-hamilton-v1.90.0-incubating-RC0
> >> > >
> >> > >
> >> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> >> > >
> >> > > But the functional release is from this commit from main:
> >> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> >> > >
> >> > > Release artifacts are signed with the following key:
> >> > >
> >> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
> >> > >
> >> > > The KEYS file is available at:
> >> > > https://downloads.apache.org/incubator/hamilton/KEYS
> >> > >
> >> > > Please download, verify, and test the release candidate. You can
> find
> >> the
> >> > > instructions to do so here
> >> > > <
> >> >
> >>
> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
> >> >
> >> > (and
> >> > > if you're having issues following them please reply and I'll help).
> >> > >
> >> > > The vote will run for a minimum of 72 hours, likely much longer due
> to
> >> > the
> >> > > holiday.
> >> > >
> >> > > Please vote:
> >> > >
> >> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
> >> > > 1.90.0-incubating
> >> > > [ ] +0 No opinion
> >> > > [ ] -1 Do not release this package because... (Please provide a
> >> reason)
> >> > >
> >> > > Checklist for reference:
> >> > >
> >> > > [ ] Incubating in name.
> >> > > [ ] Download links are valid.
> >> > > [ ] Checksums and signatures.
> >> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> >> > > [ ] No unexpected binary files
> >> > > [ ] All source files have ASF headers
> >> > > [ ] Can compile from source
> >> > >
> >> > >
> >> > > On behalf of the Apache Hamilton PPMC,
> >> > >
> >> > > Stefan Krawczyk
> >> > >
> >> >
> >>
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Jernej Frank <je...@physics.ox.ac.uk>.
Thanks for that, this works! Maybe we can put this script into the repo?
Happy to change to +1 for me.
Best,
Jernej
________________________________
From: Stefan Krawczyk <st...@gmail.com>
Sent: 11 April 2026 22:03
To: dev@hamilton.apache.org <de...@hamilton.apache.org>
Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
in a fresh directory (not repo)*.
On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <st...@gmail.com>
wrote:
> @jernej, do you want to try again? I created this gist that is a script
> that walks through the process:
> https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
>
> You don't need to use the scripts to validate -- and that's not what we're
> voting on. If you use the above script, it should set everything up fresh
> if you do it in a fresh repo and have `uv` installed.
>
> On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
> jernej.frank@physics.ox.ac.uk> wrote:
>
>> Hey, I tried following the verification readme and use the scripts:
>> https://github.com/apache/hamilton/tree/main/scripts#verification-script
>> and could not get a lot of things working out of the box.
>>
>> -1
>>
>> Checklist for reference:
>>
>> [x] Incubating in name.
>> [x] Download links are valid.
>> The actual link is fine but the readme is wrong
>> ```
>> svn export
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
>> hamilton-rc${RC}
>>
>> svn: E170000: URL '
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0'
>> doesn't exist
>> ```
>> [ ] Checksums and signatures.
>> I can verify gpg keys but the readme is missing a -src in the name for
>> the source.
>> ```
>> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
>> ${PACKAGE}-${VERSION}-incubating.tar.gz
>> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such
>> file or directory
>> gpg: verify signatures failed: No such file or directory
>> ```
>>
>> The wheel gpg keys worked.
>> I could not get sha verification working:
>> ```
>> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
>> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file or
>> directory
>>
>> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
>> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no properly
>> formatted SHA checksum lines found
>>
>> shasum -a 512 -c ${WHEEL_NAME}.sha512
>> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
>> formatted SHA checksum lines found
>> ```
>>
>> Similarly, in case of using the script at the end:
>> ```
>> # Run from the extracted source directory
>> (${PACKAGE}-${VERSION}-incubating/)
>> # Verify GPG signatures and SHA512 checksums
>> uv run python scripts/verify_apache_artifacts.py signatures
>>
>> ================================================================================
>> Verifying Signatures and Checksums
>>
>> ================================================================================
>>
>> Found 2 artifact(s) to verify:
>>
>> Verifying: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
>> ✗ Checksum file not found
>> Checking archive readability: apache_hamilton-1.90.0.tar.gz
>> ✓ Archive is readable and contains 706 files
>>
>> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
>> bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum:
>> apache_hamilton-1.90.0-py3-none-any.whl.sha512
>> ✗ Checksum file not found
>> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
>> ✓ Wheel is readable and contains 151 files
>>
>>
>> ❌ Verification failed.
>> ```
>> [ ] LICENSE/NOTICE/DISCLAIMER files exist
>> See above and below, there's some files in the examples that don't have
>> licenceses but are part of the source package.
>> [x] No unexpected binary files
>> [ ] All source files have ASF headers
>> I ran the provided script, but rat-excludes seems not to be found. Some
>> of these files admit comments so they could have licence headers
>> ```
>> # Verify license headers (requires Apache RAT)
>> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
>> apache-rat-0.15.jar
>> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> Extracting archive...
>> ✓ Extracted to temp directory
>> ⚠️ Warning: .rat-excludes not found, running without excludes
>> Running Apache RAT (XML format for parsing)...
>> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
>> Running Apache RAT (text format for review)...
>> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
>> Parsing RAT report...
>> ✓ Scanned 706 files
>> ✓ Found 33 files with license issues
>>
>> ⚠️ License Issues Found:
>>
>> Unapproved Licenses (33 files):
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
>> ... and 23 more
>>
>> 📄 Reports saved:
>> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
>> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>>
>> ❌ License check failed!
>>
>> ❌ Verification failed.
>> ```
>> [x] Can compile from source
>>
>> *
>> the tar extracts into `apache_hamilton-1.90.0` so `cd
>> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
>> *
>> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected argument
>> '--clean' found`
>> *
>> flit worked and could install wheel
>> *
>> cannot install test dependencies: `error: Distribution `lancedb==0.30.2 @
>> registry+https://pypi.org/simple` <https://pypi.org/simple> can't be
>> installed because it doesn't have a source distribution or wheel for the
>> current platform` — seems like uv cannot resolve lance db. I am on `hint:
>> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
>> *
>> hello_world runs -ish: only constructing the dag at the end fais if you
>> don't have graphviz: `ERROR:hamilton.graph: graphviz is required for
>> visualizing the function graph. Install it with: pip install
>> "sf-hamilton[visualization]" or pip install graphviz`
>>
>>
>> Complete verification output:
>> ```
>> # Verify everything
>> uv run python scripts/verify_apache_artifacts.py all --rat-jar
>> apache-rat-0.15.jar
>>
>> # Inspect artifact contents
>> uv run python scripts/verify_apache_artifacts.py list-contents
>> dist/apache-hamilton-1.90.0-incubating.tar.gz
>> uv run python scripts/verify_apache_artifacts.py list-contents
>> dist/apache_hamilton-1.90.0-py3-none-any.whl
>>
>> # Validate wheel metadata
>> uv run python scripts/verify_apache_artifacts.py twine-check
>>
>>
>> ================================================================================
>> Complete Apache Artifacts Verification
>>
>> ================================================================================
>>
>>
>> [1/2] Verifying signatures and checksums...
>>
>>
>> ================================================================================
>> Verifying Signatures and Checksums
>>
>> ================================================================================
>>
>> Found 4 artifact(s) to verify:
>>
>> Verifying: rat-report-apache_hamilton-1-90-0.xml
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467 bytes)
>> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.xml.sha512
>> ✗ Checksum file not found
>>
>> Verifying: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
>> ✗ Checksum file not found
>> Checking archive readability: apache_hamilton-1.90.0.tar.gz
>> ✓ Archive is readable and contains 706 files
>>
>> Verifying: rat-report-apache_hamilton-1-90-0.txt
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073 bytes)
>> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.txt.sha512
>> ✗ Checksum file not found
>>
>> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
>> bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum:
>> apache_hamilton-1.90.0-py3-none-any.whl.sha512
>> ✗ Checksum file not found
>> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
>> ✓ Wheel is readable and contains 151 files
>>
>>
>> [2/2] Verifying licenses with Apache RAT...
>>
>>
>> ================================================================================
>> Verifying Licenses with Apache RAT
>>
>> ================================================================================
>>
>> Found 1 tar.gz artifact(s) to check:
>>
>>
>> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> Extracting archive...
>> ✓ Extracted to temp directory
>> ⚠️ Warning: .rat-excludes not found, running without excludes
>> Running Apache RAT (XML format for parsing)...
>> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
>> Running Apache RAT (text format for review)...
>> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
>> Parsing RAT report...
>> ✓ Scanned 706 files
>> ✓ Found 33 files with license issues
>>
>> ⚠️ License Issues Found:
>>
>> Unapproved Licenses (33 files):
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
>> ... and 23 more
>>
>> 📄 Reports saved:
>> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
>> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>>
>> ❌ License check failed!
>>
>>
>> ================================================================================
>> Verification Summary
>>
>> ================================================================================
>>
>> Results:
>> Signatures & Checksums: ❌ FAIL
>> License Compliance: ❌ FAIL
>>
>> ❌ Verification failed.
>>
>>
>> ================================================================================
>> Listing Artifact Contents
>>
>> ================================================================================
>>
>>
>> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
>>
>>
>> ================================================================================
>> Listing Artifact Contents
>>
>> ================================================================================
>>
>>
>> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
>>
>> ================================================================================
>> Total files: 151
>>
>> Top-level structure:
>> apache_hamilton-1.90.0.dist-info (7 files)
>> hamilton (144 files)
>>
>> Files:
>>
>> apache_hamilton-1.90.0.dist-info/METADATA
>> 22,665
>> apache_hamilton-1.90.0.dist-info/RECORD
>> 13,565
>> apache_hamilton-1.90.0.dist-info/WHEEL
>> 82
>> apache_hamilton-1.90.0.dist-info/entry_points.txt
>> 421
>> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
>> 554
>> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
>> 12,602
>> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
>> 182
>> hamilton/__init__.py
>> 1,086
>> hamilton/ad_hoc_utils.py
>> 5,677
>> hamilton/async_driver.py
>> 19,548
>> hamilton/base.py
>> 19,860
>> hamilton/caching/__init__.py
>> 785
>> hamilton/caching/adapter.py
>> 61,482
>> hamilton/caching/cache_key.py
>> 2,497
>> hamilton/caching/fingerprinting.py
>> 9,986
>> hamilton/caching/stores/__init__.py
>> 785
>> hamilton/caching/stores/base.py
>> 8,529
>> hamilton/caching/stores/file.py
>> 5,229
>> hamilton/caching/stores/memory.py
>> 11,159
>> hamilton/caching/stores/sqlite.py
>> 9,965
>> hamilton/caching/stores/utils.py
>> 1,370
>> hamilton/cli/__init__.py
>> 785
>> hamilton/cli/__main__.py
>> 9,202
>> hamilton/cli/commands.py
>> 4,446
>> hamilton/cli/logic.py
>> 10,338
>> hamilton/common/__init__.py
>> 3,075
>> hamilton/contrib/__init__.py
>> 1,644
>> hamilton/data_quality/__init__.py
>> 785
>> hamilton/data_quality/base.py
>> 6,890
>> hamilton/data_quality/default_validators.py
>> 21,184
>> hamilton/data_quality/pandera_validators.py
>> 4,493
>> hamilton/dataflows/__init__.py
>> 27,999
>> hamilton/dataflows/template/README.md
>> 958
>> hamilton/dataflows/template/__init__.py
>> 1,721
>> hamilton/dataflows/template/author.md
>> 940
>> hamilton/dataflows/template/requirements.txt
>> 0
>> hamilton/dataflows/template/tags.json
>> 98
>> hamilton/dataflows/template/valid_configs.jsonl
>> 3
>> hamilton/dev_utils/__init__.py
>> 785
>> hamilton/dev_utils/deprecation.py
>> 7,774
>> hamilton/driver.py
>> 95,686
>> hamilton/execution/__init__.py
>> 785
>> hamilton/execution/debugging_utils.py
>> 2,041
>> hamilton/execution/executors.py
>> 18,833
>> hamilton/execution/graph_functions.py
>> 16,527
>> hamilton/execution/grouping.py
>> 17,480
>> hamilton/execution/state.py
>> 23,957
>> hamilton/experimental/__init__.py
>> 1,100
>> hamilton/experimental/databackend.py
>> 1,397
>> hamilton/experimental/decorators/__init__.py
>> 785
>> hamilton/experimental/decorators/parameterize_frame.py
>> 8,684
>> hamilton/experimental/h_async.py
>> 1,057
>> hamilton/experimental/h_cache.py
>> 15,259
>> hamilton/experimental/h_dask.py
>> 1,166
>> hamilton/experimental/h_databackends.py
>> 5,075
>> hamilton/experimental/h_ray.py
>> 1,124
>> hamilton/experimental/h_spark.py
>> 1,223
>> hamilton/function_modifiers/README
>> 2,672
>> hamilton/function_modifiers/__init__.py
>> 3,812
>> hamilton/function_modifiers/adapters.py
>> 38,908
>> hamilton/function_modifiers/base.py
>> 33,403
>> hamilton/function_modifiers/configuration.py
>> 13,422
>> hamilton/function_modifiers/delayed.py
>> 9,448
>> hamilton/function_modifiers/dependencies.py
>> 10,014
>> hamilton/function_modifiers/expanders.py
>> 56,117
>> hamilton/function_modifiers/macros.py
>> 73,755
>> hamilton/function_modifiers/metadata.py
>> 17,253
>> hamilton/function_modifiers/recursive.py
>> 40,426
>> hamilton/function_modifiers/validation.py
>> 12,484
>> hamilton/function_modifiers_base.py
>> 1,462
>> hamilton/graph.py
>> 50,459
>> hamilton/graph_types.py
>> 10,478
>> hamilton/graph_utils.py
>> 1,656
>> hamilton/htypes.py
>> 17,746
>> hamilton/io/__init__.py
>> 1,183
>> hamilton/io/data_adapters.py
>> 7,987
>> hamilton/io/default_data_loaders.py
>> 5,617
>> hamilton/io/materialization.py
>> 21,578
>> hamilton/io/utils.py
>> 5,073
>> hamilton/lifecycle/__init__.py
>> 2,053
>> hamilton/lifecycle/api.py
>> 31,981
>> hamilton/lifecycle/base.py
>> 44,599
>> hamilton/lifecycle/default.py
>> 32,890
>> hamilton/log_setup.py
>> 1,714
>> hamilton/models.py
>> 3,265
>> hamilton/node.py
>> 17,153
>> hamilton/plugins/README.md
>> 2,659
>> hamilton/plugins/__init__.py
>> 785
>> hamilton/plugins/dask_extensions.py
>> 1,518
>> hamilton/plugins/dlt_extensions.py
>> 5,585
>> hamilton/plugins/geopandas_extensions.py
>> 1,572
>> hamilton/plugins/h_dask.py
>> 15,566
>> hamilton/plugins/h_ddog.py
>> 22,392
>> hamilton/plugins/h_diskcache.py
>> 6,683
>> hamilton/plugins/h_experiments/__init__.py
>> 892
>> hamilton/plugins/h_experiments/__main__.py
>> 2,181
>> hamilton/plugins/h_experiments/cache.py
>> 1,395
>> hamilton/plugins/h_experiments/data_model.py
>> 2,180
>> hamilton/plugins/h_experiments/hook.py
>> 7,240
>> hamilton/plugins/h_experiments/server.py
>> 12,493
>> hamilton/plugins/h_kedro.py
>> 5,583
>> hamilton/plugins/h_logging.py
>> 15,225
>> hamilton/plugins/h_mcp/__init__.py
>> 1,068
>> hamilton/plugins/h_mcp/__main__.py
>> 1,137
>> hamilton/plugins/h_mcp/_helpers.py
>> 4,152
>> hamilton/plugins/h_mcp/_templates.py
>> 13,528
>> hamilton/plugins/h_mcp/server.py
>> 12,392
>> hamilton/plugins/h_mlflow.py
>> 14,442
>> hamilton/plugins/h_narwhals.py
>> 4,677
>> hamilton/plugins/h_openlineage.py
>> 13,129
>> hamilton/plugins/h_opentelemetry.py
>> 5,928
>> hamilton/plugins/h_pandas.py
>> 10,633
>> hamilton/plugins/h_pandera.py
>> 4,952
>> hamilton/plugins/h_polars.py
>> 12,507
>> hamilton/plugins/h_polars_lazyframe.py
>> 11,561
>> hamilton/plugins/h_pyarrow.py
>> 2,177
>> hamilton/plugins/h_pydantic.py
>> 4,962
>> hamilton/plugins/h_ray.py
>> 9,130
>> hamilton/plugins/h_rich.py
>> 5,181
>> hamilton/plugins/h_schema.py
>> 18,307
>> hamilton/plugins/h_slack.py
>> 3,634
>> hamilton/plugins/h_spark.py
>> 63,268
>> hamilton/plugins/h_threadpool.py
>> 5,036
>> hamilton/plugins/h_tqdm.py
>> 4,665
>> hamilton/plugins/h_vaex.py
>> 5,034
>> hamilton/plugins/huggingface_extensions.py
>> 7,839
>> hamilton/plugins/ibis_extensions.py
>> 2,970
>> hamilton/plugins/jupyter_magic.py
>> 24,929
>> hamilton/plugins/kedro_extensions.py
>> 3,267
>> hamilton/plugins/lightgbm_extensions.py
>> 2,961
>> hamilton/plugins/matplotlib_extensions.py
>> 3,738
>> hamilton/plugins/mlflow_extensions.py
>> 8,856
>> hamilton/plugins/numpy_extensions.py
>> 3,221
>> hamilton/plugins/pandas_extensions.py
>> 66,288
>> hamilton/plugins/plotly_extensions.py
>> 5,010
>> hamilton/plugins/polars_extensions.py
>> 2,345
>> hamilton/plugins/polars_implementations.py
>> 1,028
>> hamilton/plugins/polars_lazyframe_extensions.py
>> 10,889
>> hamilton/plugins/polars_post_1_0_0_extensions.py
>> 30,733
>> hamilton/plugins/polars_pre_1_0_0_extension.py
>> 29,649
>> hamilton/plugins/pydantic_extensions.py
>> 3,840
>> hamilton/plugins/pyspark_pandas_extensions.py
>> 1,551
>> hamilton/plugins/sklearn_plot_extensions.py
>> 4,326
>> hamilton/plugins/spark_extensions.py
>> 3,236
>> hamilton/plugins/vaex_extensions.py
>> 1,673
>> hamilton/plugins/xgboost_extensions.py
>> 2,762
>> hamilton/plugins/yaml_extensions.py
>> 2,554
>> hamilton/registry.py
>> 8,588
>> hamilton/settings.py
>> 845
>> hamilton/telemetry.py
>> 1,772
>> hamilton/version.py
>> 807
>>
>>
>> ================================================================================
>> Verifying Wheel Metadata with Twine
>>
>> ================================================================================
>>
>>
>> Checking apache_hamilton-1.90.0-py3-none-any.whl...
>> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
>>
>> ✅ All wheels passed twine validation
>>
>> ✅ Verification completed successfully!
>> ```
>>
>> Maybe for some of the things it is just me doing something stupid (but
>> not sure what since I copy-paste the readme commands and just fix the file
>> names).
>>
>> Best,
>> Jernej
>>
>> ________________________________
>> From: Elijah ben Izzy <el...@alumni.brown.edu>
>> Sent: 07 April 2026 05:37
>> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
>> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
>> 1.90.0-incubating (release candidate 0)
>>
>> Nice work. Checks performed:
>> [x] Verified GPG signature (Good signature, key
>> FE668E857E89A11C5E5C000CA8D3D15600545C61)
>> [x] Verified SHA-512 checksums
>> [x] "incubating" in source tarball filename
>> [x] LICENSE, NOTICE, DISCLAIMER present and correct
>> [x] ASF license headers present in source files
>> [x] No unexpected binary files
>> [x] Built and installed from source (Python 3.13)
>> [x] Ran hello_world example successfully
>>
>> + 1 (binding)
>>
>> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
>> stefan.krawczyk@gmail.com>
>> wrote:
>>
>> > Oh I forgot to link to it, but to hopefully make it faster to verify
>> > the verification
>> > script
>> > <
>> >
>> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
>> > >
>> > should help (see these instructions
>> > <
>> https://github.com/apache/hamilton/tree/main/scripts#verification-script
>> > >).
>> >
>> > Otherwise I have noticed the README instructions for verification have
>> some
>> > incorrect paths -- please adjust for that and you should be able to
>> follow
>> > the instructions.
>> >
>> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
>> stefan.krawczyk@gmail.com
>> > >
>> > wrote:
>> >
>> > > Hi all,
>> > >
>> > > This is a call for a vote on releasing Apache Hamilton apache-hamilton
>> > > 1.90.0-incubating, release candidate 0.
>> > >
>> > > This release includes the following changes (see CHANGELOG for
>> details):
>> > >
>> > > Features:
>> > >> - While loop DFS implementation (#1483)
>> > >> - Async data validator support
>> > >> - Add `unpack_fields` annotation for unpacking structured fields
>> (#1305)
>> > >> - Expose DAG validation as LLM tools via MCP (#1490)
>> > >> - Add NDJSON support in polars (#1431)
>> > >> - Enhance visualization with display_name tag support
>> > >
>> > >
>> > > Bug fixes:
>> > >> - Fix `@resolve` decorator not calling `validate()` on returned
>> > >> decorators (#1524)
>> > >> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
>> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
>> > >> - Fix spark failures on Python 3.14
>> > >> - Fix local (Windows) tests (#1302)
>> > >> - Fix typer version requirement for click 8.3 help compatibility
>> > >
>> > >
>> > > Performance:
>> > >> - Use deque for BFS queue in graph traversal (#1494)
>> > >
>> > >
>> > > Platform changes:
>> > >> - Drop Python 3.8 and 3.9 support
>> > >> - Add Python 3.13 and 3.14 support
>> > >> - Remove usage telemetry (PostHog) (#1512)
>> > >> - Remove RayWorkflows (#1359)
>> > >> - Update `dlt` plugin with changes to `loader_file_format`
>> > >> - Package renamed from sf-hamilton to apache-hamilton
>> > >
>> > >
>> > >
>> > > The artifacts for this release candidate can be found at:
>> > >
>> > >
>> >
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
>> > >
>> > >
>> > > The Git tag to be voted upon is:
>> apache-hamilton-v1.90.0-incubating-RC0
>> > >
>> > >
>> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
>> > >
>> > > But the functional release is from this commit from main:
>> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
>> > >
>> > > Release artifacts are signed with the following key:
>> > >
>> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
>> > >
>> > > The KEYS file is available at:
>> > > https://downloads.apache.org/incubator/hamilton/KEYS
>> > >
>> > > Please download, verify, and test the release candidate. You can find
>> the
>> > > instructions to do so here
>> > > <
>> >
>> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
>> >
>> > (and
>> > > if you're having issues following them please reply and I'll help).
>> > >
>> > > The vote will run for a minimum of 72 hours, likely much longer due to
>> > the
>> > > holiday.
>> > >
>> > > Please vote:
>> > >
>> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
>> > > 1.90.0-incubating
>> > > [ ] +0 No opinion
>> > > [ ] -1 Do not release this package because... (Please provide a
>> reason)
>> > >
>> > > Checklist for reference:
>> > >
>> > > [ ] Incubating in name.
>> > > [ ] Download links are valid.
>> > > [ ] Checksums and signatures.
>> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
>> > > [ ] No unexpected binary files
>> > > [ ] All source files have ASF headers
>> > > [ ] Can compile from source
>> > >
>> > >
>> > > On behalf of the Apache Hamilton PPMC,
>> > >
>> > > Stefan Krawczyk
>> > >
>> >
>>
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Stefan Krawczyk <st...@gmail.com>.
in a fresh directory (not repo)*.
On Sat, Apr 11, 2026 at 2:02 PM Stefan Krawczyk <st...@gmail.com>
wrote:
> @jernej, do you want to try again? I created this gist that is a script
> that walks through the process:
> https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
>
> You don't need to use the scripts to validate -- and that's not what we're
> voting on. If you use the above script, it should set everything up fresh
> if you do it in a fresh repo and have `uv` installed.
>
> On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <
> jernej.frank@physics.ox.ac.uk> wrote:
>
>> Hey, I tried following the verification readme and use the scripts:
>> https://github.com/apache/hamilton/tree/main/scripts#verification-script
>> and could not get a lot of things working out of the box.
>>
>> -1
>>
>> Checklist for reference:
>>
>> [x] Incubating in name.
>> [x] Download links are valid.
>> The actual link is fine but the readme is wrong
>> ```
>> svn export
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
>> hamilton-rc${RC}
>>
>> svn: E170000: URL '
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0'
>> doesn't exist
>> ```
>> [ ] Checksums and signatures.
>> I can verify gpg keys but the readme is missing a -src in the name for
>> the source.
>> ```
>> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
>> ${PACKAGE}-${VERSION}-incubating.tar.gz
>> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such
>> file or directory
>> gpg: verify signatures failed: No such file or directory
>> ```
>>
>> The wheel gpg keys worked.
>> I could not get sha verification working:
>> ```
>> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
>> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file or
>> directory
>>
>> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
>> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no properly
>> formatted SHA checksum lines found
>>
>> shasum -a 512 -c ${WHEEL_NAME}.sha512
>> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
>> formatted SHA checksum lines found
>> ```
>>
>> Similarly, in case of using the script at the end:
>> ```
>> # Run from the extracted source directory
>> (${PACKAGE}-${VERSION}-incubating/)
>> # Verify GPG signatures and SHA512 checksums
>> uv run python scripts/verify_apache_artifacts.py signatures
>>
>> ================================================================================
>> Verifying Signatures and Checksums
>>
>> ================================================================================
>>
>> Found 2 artifact(s) to verify:
>>
>> Verifying: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
>> ✗ Checksum file not found
>> Checking archive readability: apache_hamilton-1.90.0.tar.gz
>> ✓ Archive is readable and contains 706 files
>>
>> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
>> bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum:
>> apache_hamilton-1.90.0-py3-none-any.whl.sha512
>> ✗ Checksum file not found
>> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
>> ✓ Wheel is readable and contains 151 files
>>
>>
>> ❌ Verification failed.
>> ```
>> [ ] LICENSE/NOTICE/DISCLAIMER files exist
>> See above and below, there's some files in the examples that don't have
>> licenceses but are part of the source package.
>> [x] No unexpected binary files
>> [ ] All source files have ASF headers
>> I ran the provided script, but rat-excludes seems not to be found. Some
>> of these files admit comments so they could have licence headers
>> ```
>> # Verify license headers (requires Apache RAT)
>> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
>> apache-rat-0.15.jar
>> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> Extracting archive...
>> ✓ Extracted to temp directory
>> ⚠️ Warning: .rat-excludes not found, running without excludes
>> Running Apache RAT (XML format for parsing)...
>> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
>> Running Apache RAT (text format for review)...
>> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
>> Parsing RAT report...
>> ✓ Scanned 706 files
>> ✓ Found 33 files with license issues
>>
>> ⚠️ License Issues Found:
>>
>> Unapproved Licenses (33 files):
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
>> ... and 23 more
>>
>> 📄 Reports saved:
>> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
>> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>>
>> ❌ License check failed!
>>
>> ❌ Verification failed.
>> ```
>> [x] Can compile from source
>>
>> *
>> the tar extracts into `apache_hamilton-1.90.0` so `cd
>> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
>> *
>> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected argument
>> '--clean' found`
>> *
>> flit worked and could install wheel
>> *
>> cannot install test dependencies: `error: Distribution `lancedb==0.30.2 @
>> registry+https://pypi.org/simple` <https://pypi.org/simple> can't be
>> installed because it doesn't have a source distribution or wheel for the
>> current platform` — seems like uv cannot resolve lance db. I am on `hint:
>> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
>> *
>> hello_world runs -ish: only constructing the dag at the end fais if you
>> don't have graphviz: `ERROR:hamilton.graph: graphviz is required for
>> visualizing the function graph. Install it with: pip install
>> "sf-hamilton[visualization]" or pip install graphviz`
>>
>>
>> Complete verification output:
>> ```
>> # Verify everything
>> uv run python scripts/verify_apache_artifacts.py all --rat-jar
>> apache-rat-0.15.jar
>>
>> # Inspect artifact contents
>> uv run python scripts/verify_apache_artifacts.py list-contents
>> dist/apache-hamilton-1.90.0-incubating.tar.gz
>> uv run python scripts/verify_apache_artifacts.py list-contents
>> dist/apache_hamilton-1.90.0-py3-none-any.whl
>>
>> # Validate wheel metadata
>> uv run python scripts/verify_apache_artifacts.py twine-check
>>
>>
>> ================================================================================
>> Complete Apache Artifacts Verification
>>
>> ================================================================================
>>
>>
>> [1/2] Verifying signatures and checksums...
>>
>>
>> ================================================================================
>> Verifying Signatures and Checksums
>>
>> ================================================================================
>>
>> Found 4 artifact(s) to verify:
>>
>> Verifying: rat-report-apache_hamilton-1-90-0.xml
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467 bytes)
>> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.xml.sha512
>> ✗ Checksum file not found
>>
>> Verifying: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
>> ✗ Checksum file not found
>> Checking archive readability: apache_hamilton-1.90.0.tar.gz
>> ✓ Archive is readable and contains 706 files
>>
>> Verifying: rat-report-apache_hamilton-1-90-0.txt
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073 bytes)
>> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.txt.sha512
>> ✗ Checksum file not found
>>
>> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>>
>> --------------------------------------------------------------------------------
>> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
>> bytes)
>> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
>> ✗ Signature file not found
>> Verifying SHA512 checksum:
>> apache_hamilton-1.90.0-py3-none-any.whl.sha512
>> ✗ Checksum file not found
>> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
>> ✓ Wheel is readable and contains 151 files
>>
>>
>> [2/2] Verifying licenses with Apache RAT...
>>
>>
>> ================================================================================
>> Verifying Licenses with Apache RAT
>>
>> ================================================================================
>>
>> Found 1 tar.gz artifact(s) to check:
>>
>>
>> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>>
>> --------------------------------------------------------------------------------
>> Extracting archive...
>> ✓ Extracted to temp directory
>> ⚠️ Warning: .rat-excludes not found, running without excludes
>> Running Apache RAT (XML format for parsing)...
>> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
>> Running Apache RAT (text format for review)...
>> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
>> Parsing RAT report...
>> ✓ Scanned 706 files
>> ✓ Found 33 files with license issues
>>
>> ⚠️ License Issues Found:
>>
>> Unapproved Licenses (33 files):
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
>> -
>> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
>> ... and 23 more
>>
>> 📄 Reports saved:
>> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
>> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>>
>> ❌ License check failed!
>>
>>
>> ================================================================================
>> Verification Summary
>>
>> ================================================================================
>>
>> Results:
>> Signatures & Checksums: ❌ FAIL
>> License Compliance: ❌ FAIL
>>
>> ❌ Verification failed.
>>
>>
>> ================================================================================
>> Listing Artifact Contents
>>
>> ================================================================================
>>
>>
>> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
>>
>>
>> ================================================================================
>> Listing Artifact Contents
>>
>> ================================================================================
>>
>>
>> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
>>
>> ================================================================================
>> Total files: 151
>>
>> Top-level structure:
>> apache_hamilton-1.90.0.dist-info (7 files)
>> hamilton (144 files)
>>
>> Files:
>>
>> apache_hamilton-1.90.0.dist-info/METADATA
>> 22,665
>> apache_hamilton-1.90.0.dist-info/RECORD
>> 13,565
>> apache_hamilton-1.90.0.dist-info/WHEEL
>> 82
>> apache_hamilton-1.90.0.dist-info/entry_points.txt
>> 421
>> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
>> 554
>> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
>> 12,602
>> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
>> 182
>> hamilton/__init__.py
>> 1,086
>> hamilton/ad_hoc_utils.py
>> 5,677
>> hamilton/async_driver.py
>> 19,548
>> hamilton/base.py
>> 19,860
>> hamilton/caching/__init__.py
>> 785
>> hamilton/caching/adapter.py
>> 61,482
>> hamilton/caching/cache_key.py
>> 2,497
>> hamilton/caching/fingerprinting.py
>> 9,986
>> hamilton/caching/stores/__init__.py
>> 785
>> hamilton/caching/stores/base.py
>> 8,529
>> hamilton/caching/stores/file.py
>> 5,229
>> hamilton/caching/stores/memory.py
>> 11,159
>> hamilton/caching/stores/sqlite.py
>> 9,965
>> hamilton/caching/stores/utils.py
>> 1,370
>> hamilton/cli/__init__.py
>> 785
>> hamilton/cli/__main__.py
>> 9,202
>> hamilton/cli/commands.py
>> 4,446
>> hamilton/cli/logic.py
>> 10,338
>> hamilton/common/__init__.py
>> 3,075
>> hamilton/contrib/__init__.py
>> 1,644
>> hamilton/data_quality/__init__.py
>> 785
>> hamilton/data_quality/base.py
>> 6,890
>> hamilton/data_quality/default_validators.py
>> 21,184
>> hamilton/data_quality/pandera_validators.py
>> 4,493
>> hamilton/dataflows/__init__.py
>> 27,999
>> hamilton/dataflows/template/README.md
>> 958
>> hamilton/dataflows/template/__init__.py
>> 1,721
>> hamilton/dataflows/template/author.md
>> 940
>> hamilton/dataflows/template/requirements.txt
>> 0
>> hamilton/dataflows/template/tags.json
>> 98
>> hamilton/dataflows/template/valid_configs.jsonl
>> 3
>> hamilton/dev_utils/__init__.py
>> 785
>> hamilton/dev_utils/deprecation.py
>> 7,774
>> hamilton/driver.py
>> 95,686
>> hamilton/execution/__init__.py
>> 785
>> hamilton/execution/debugging_utils.py
>> 2,041
>> hamilton/execution/executors.py
>> 18,833
>> hamilton/execution/graph_functions.py
>> 16,527
>> hamilton/execution/grouping.py
>> 17,480
>> hamilton/execution/state.py
>> 23,957
>> hamilton/experimental/__init__.py
>> 1,100
>> hamilton/experimental/databackend.py
>> 1,397
>> hamilton/experimental/decorators/__init__.py
>> 785
>> hamilton/experimental/decorators/parameterize_frame.py
>> 8,684
>> hamilton/experimental/h_async.py
>> 1,057
>> hamilton/experimental/h_cache.py
>> 15,259
>> hamilton/experimental/h_dask.py
>> 1,166
>> hamilton/experimental/h_databackends.py
>> 5,075
>> hamilton/experimental/h_ray.py
>> 1,124
>> hamilton/experimental/h_spark.py
>> 1,223
>> hamilton/function_modifiers/README
>> 2,672
>> hamilton/function_modifiers/__init__.py
>> 3,812
>> hamilton/function_modifiers/adapters.py
>> 38,908
>> hamilton/function_modifiers/base.py
>> 33,403
>> hamilton/function_modifiers/configuration.py
>> 13,422
>> hamilton/function_modifiers/delayed.py
>> 9,448
>> hamilton/function_modifiers/dependencies.py
>> 10,014
>> hamilton/function_modifiers/expanders.py
>> 56,117
>> hamilton/function_modifiers/macros.py
>> 73,755
>> hamilton/function_modifiers/metadata.py
>> 17,253
>> hamilton/function_modifiers/recursive.py
>> 40,426
>> hamilton/function_modifiers/validation.py
>> 12,484
>> hamilton/function_modifiers_base.py
>> 1,462
>> hamilton/graph.py
>> 50,459
>> hamilton/graph_types.py
>> 10,478
>> hamilton/graph_utils.py
>> 1,656
>> hamilton/htypes.py
>> 17,746
>> hamilton/io/__init__.py
>> 1,183
>> hamilton/io/data_adapters.py
>> 7,987
>> hamilton/io/default_data_loaders.py
>> 5,617
>> hamilton/io/materialization.py
>> 21,578
>> hamilton/io/utils.py
>> 5,073
>> hamilton/lifecycle/__init__.py
>> 2,053
>> hamilton/lifecycle/api.py
>> 31,981
>> hamilton/lifecycle/base.py
>> 44,599
>> hamilton/lifecycle/default.py
>> 32,890
>> hamilton/log_setup.py
>> 1,714
>> hamilton/models.py
>> 3,265
>> hamilton/node.py
>> 17,153
>> hamilton/plugins/README.md
>> 2,659
>> hamilton/plugins/__init__.py
>> 785
>> hamilton/plugins/dask_extensions.py
>> 1,518
>> hamilton/plugins/dlt_extensions.py
>> 5,585
>> hamilton/plugins/geopandas_extensions.py
>> 1,572
>> hamilton/plugins/h_dask.py
>> 15,566
>> hamilton/plugins/h_ddog.py
>> 22,392
>> hamilton/plugins/h_diskcache.py
>> 6,683
>> hamilton/plugins/h_experiments/__init__.py
>> 892
>> hamilton/plugins/h_experiments/__main__.py
>> 2,181
>> hamilton/plugins/h_experiments/cache.py
>> 1,395
>> hamilton/plugins/h_experiments/data_model.py
>> 2,180
>> hamilton/plugins/h_experiments/hook.py
>> 7,240
>> hamilton/plugins/h_experiments/server.py
>> 12,493
>> hamilton/plugins/h_kedro.py
>> 5,583
>> hamilton/plugins/h_logging.py
>> 15,225
>> hamilton/plugins/h_mcp/__init__.py
>> 1,068
>> hamilton/plugins/h_mcp/__main__.py
>> 1,137
>> hamilton/plugins/h_mcp/_helpers.py
>> 4,152
>> hamilton/plugins/h_mcp/_templates.py
>> 13,528
>> hamilton/plugins/h_mcp/server.py
>> 12,392
>> hamilton/plugins/h_mlflow.py
>> 14,442
>> hamilton/plugins/h_narwhals.py
>> 4,677
>> hamilton/plugins/h_openlineage.py
>> 13,129
>> hamilton/plugins/h_opentelemetry.py
>> 5,928
>> hamilton/plugins/h_pandas.py
>> 10,633
>> hamilton/plugins/h_pandera.py
>> 4,952
>> hamilton/plugins/h_polars.py
>> 12,507
>> hamilton/plugins/h_polars_lazyframe.py
>> 11,561
>> hamilton/plugins/h_pyarrow.py
>> 2,177
>> hamilton/plugins/h_pydantic.py
>> 4,962
>> hamilton/plugins/h_ray.py
>> 9,130
>> hamilton/plugins/h_rich.py
>> 5,181
>> hamilton/plugins/h_schema.py
>> 18,307
>> hamilton/plugins/h_slack.py
>> 3,634
>> hamilton/plugins/h_spark.py
>> 63,268
>> hamilton/plugins/h_threadpool.py
>> 5,036
>> hamilton/plugins/h_tqdm.py
>> 4,665
>> hamilton/plugins/h_vaex.py
>> 5,034
>> hamilton/plugins/huggingface_extensions.py
>> 7,839
>> hamilton/plugins/ibis_extensions.py
>> 2,970
>> hamilton/plugins/jupyter_magic.py
>> 24,929
>> hamilton/plugins/kedro_extensions.py
>> 3,267
>> hamilton/plugins/lightgbm_extensions.py
>> 2,961
>> hamilton/plugins/matplotlib_extensions.py
>> 3,738
>> hamilton/plugins/mlflow_extensions.py
>> 8,856
>> hamilton/plugins/numpy_extensions.py
>> 3,221
>> hamilton/plugins/pandas_extensions.py
>> 66,288
>> hamilton/plugins/plotly_extensions.py
>> 5,010
>> hamilton/plugins/polars_extensions.py
>> 2,345
>> hamilton/plugins/polars_implementations.py
>> 1,028
>> hamilton/plugins/polars_lazyframe_extensions.py
>> 10,889
>> hamilton/plugins/polars_post_1_0_0_extensions.py
>> 30,733
>> hamilton/plugins/polars_pre_1_0_0_extension.py
>> 29,649
>> hamilton/plugins/pydantic_extensions.py
>> 3,840
>> hamilton/plugins/pyspark_pandas_extensions.py
>> 1,551
>> hamilton/plugins/sklearn_plot_extensions.py
>> 4,326
>> hamilton/plugins/spark_extensions.py
>> 3,236
>> hamilton/plugins/vaex_extensions.py
>> 1,673
>> hamilton/plugins/xgboost_extensions.py
>> 2,762
>> hamilton/plugins/yaml_extensions.py
>> 2,554
>> hamilton/registry.py
>> 8,588
>> hamilton/settings.py
>> 845
>> hamilton/telemetry.py
>> 1,772
>> hamilton/version.py
>> 807
>>
>>
>> ================================================================================
>> Verifying Wheel Metadata with Twine
>>
>> ================================================================================
>>
>>
>> Checking apache_hamilton-1.90.0-py3-none-any.whl...
>> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
>>
>> ✅ All wheels passed twine validation
>>
>> ✅ Verification completed successfully!
>> ```
>>
>> Maybe for some of the things it is just me doing something stupid (but
>> not sure what since I copy-paste the readme commands and just fix the file
>> names).
>>
>> Best,
>> Jernej
>>
>> ________________________________
>> From: Elijah ben Izzy <el...@alumni.brown.edu>
>> Sent: 07 April 2026 05:37
>> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
>> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
>> 1.90.0-incubating (release candidate 0)
>>
>> Nice work. Checks performed:
>> [x] Verified GPG signature (Good signature, key
>> FE668E857E89A11C5E5C000CA8D3D15600545C61)
>> [x] Verified SHA-512 checksums
>> [x] "incubating" in source tarball filename
>> [x] LICENSE, NOTICE, DISCLAIMER present and correct
>> [x] ASF license headers present in source files
>> [x] No unexpected binary files
>> [x] Built and installed from source (Python 3.13)
>> [x] Ran hello_world example successfully
>>
>> + 1 (binding)
>>
>> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <
>> stefan.krawczyk@gmail.com>
>> wrote:
>>
>> > Oh I forgot to link to it, but to hopefully make it faster to verify
>> > the verification
>> > script
>> > <
>> >
>> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
>> > >
>> > should help (see these instructions
>> > <
>> https://github.com/apache/hamilton/tree/main/scripts#verification-script
>> > >).
>> >
>> > Otherwise I have noticed the README instructions for verification have
>> some
>> > incorrect paths -- please adjust for that and you should be able to
>> follow
>> > the instructions.
>> >
>> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
>> stefan.krawczyk@gmail.com
>> > >
>> > wrote:
>> >
>> > > Hi all,
>> > >
>> > > This is a call for a vote on releasing Apache Hamilton apache-hamilton
>> > > 1.90.0-incubating, release candidate 0.
>> > >
>> > > This release includes the following changes (see CHANGELOG for
>> details):
>> > >
>> > > Features:
>> > >> - While loop DFS implementation (#1483)
>> > >> - Async data validator support
>> > >> - Add `unpack_fields` annotation for unpacking structured fields
>> (#1305)
>> > >> - Expose DAG validation as LLM tools via MCP (#1490)
>> > >> - Add NDJSON support in polars (#1431)
>> > >> - Enhance visualization with display_name tag support
>> > >
>> > >
>> > > Bug fixes:
>> > >> - Fix `@resolve` decorator not calling `validate()` on returned
>> > >> decorators (#1524)
>> > >> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
>> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
>> > >> - Fix spark failures on Python 3.14
>> > >> - Fix local (Windows) tests (#1302)
>> > >> - Fix typer version requirement for click 8.3 help compatibility
>> > >
>> > >
>> > > Performance:
>> > >> - Use deque for BFS queue in graph traversal (#1494)
>> > >
>> > >
>> > > Platform changes:
>> > >> - Drop Python 3.8 and 3.9 support
>> > >> - Add Python 3.13 and 3.14 support
>> > >> - Remove usage telemetry (PostHog) (#1512)
>> > >> - Remove RayWorkflows (#1359)
>> > >> - Update `dlt` plugin with changes to `loader_file_format`
>> > >> - Package renamed from sf-hamilton to apache-hamilton
>> > >
>> > >
>> > >
>> > > The artifacts for this release candidate can be found at:
>> > >
>> > >
>> >
>> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
>> > >
>> > >
>> > > The Git tag to be voted upon is:
>> apache-hamilton-v1.90.0-incubating-RC0
>> > >
>> > >
>> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
>> > >
>> > > But the functional release is from this commit from main:
>> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
>> > >
>> > > Release artifacts are signed with the following key:
>> > >
>> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
>> > >
>> > > The KEYS file is available at:
>> > > https://downloads.apache.org/incubator/hamilton/KEYS
>> > >
>> > > Please download, verify, and test the release candidate. You can find
>> the
>> > > instructions to do so here
>> > > <
>> >
>> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
>> >
>> > (and
>> > > if you're having issues following them please reply and I'll help).
>> > >
>> > > The vote will run for a minimum of 72 hours, likely much longer due to
>> > the
>> > > holiday.
>> > >
>> > > Please vote:
>> > >
>> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
>> > > 1.90.0-incubating
>> > > [ ] +0 No opinion
>> > > [ ] -1 Do not release this package because... (Please provide a
>> reason)
>> > >
>> > > Checklist for reference:
>> > >
>> > > [ ] Incubating in name.
>> > > [ ] Download links are valid.
>> > > [ ] Checksums and signatures.
>> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
>> > > [ ] No unexpected binary files
>> > > [ ] All source files have ASF headers
>> > > [ ] Can compile from source
>> > >
>> > >
>> > > On behalf of the Apache Hamilton PPMC,
>> > >
>> > > Stefan Krawczyk
>> > >
>> >
>>
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Stefan Krawczyk <st...@gmail.com>.
@jernej, do you want to try again? I created this gist that is a script
that walks through the process:
https://gist.github.com/skrawcz/a091951d8da1c9d2eb0b880e1da725bc.
You don't need to use the scripts to validate -- and that's not what we're
voting on. If you use the above script, it should set everything up fresh
if you do it in a fresh repo and have `uv` installed.
On Sat, Apr 11, 2026 at 2:28 AM Jernej Frank <je...@physics.ox.ac.uk>
wrote:
> Hey, I tried following the verification readme and use the scripts:
> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> and could not get a lot of things working out of the box.
>
> -1
>
> Checklist for reference:
>
> [x] Incubating in name.
> [x] Download links are valid.
> The actual link is fine but the readme is wrong
> ```
> svn export
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/
> hamilton-rc${RC}
>
> svn: E170000: URL '
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0'
> doesn't exist
> ```
> [ ] Checksums and signatures.
> I can verify gpg keys but the readme is missing a -src in the name for the
> source.
> ```
> gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc
> ${PACKAGE}-${VERSION}-incubating.tar.gz
> gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such
> file or directory
> gpg: verify signatures failed: No such file or directory
> ```
>
> The wheel gpg keys worked.
> I could not get sha verification working:
> ```
> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
> shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file or
> directory
>
> shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
> shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no properly
> formatted SHA checksum lines found
>
> shasum -a 512 -c ${WHEEL_NAME}.sha512
> shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly
> formatted SHA checksum lines found
> ```
>
> Similarly, in case of using the script at the end:
> ```
> # Run from the extracted source directory
> (${PACKAGE}-${VERSION}-incubating/)
> # Verify GPG signatures and SHA512 checksums
> uv run python scripts/verify_apache_artifacts.py signatures
>
> ================================================================================
> Verifying Signatures and Checksums
>
> ================================================================================
>
> Found 2 artifact(s) to verify:
>
> Verifying: apache_hamilton-1.90.0.tar.gz
>
> --------------------------------------------------------------------------------
> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> ✗ Signature file not found
> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> ✗ Checksum file not found
> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> ✓ Archive is readable and contains 706 files
>
> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>
> --------------------------------------------------------------------------------
> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
> bytes)
> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
> ✗ Signature file not found
> Verifying SHA512 checksum: apache_hamilton-1.90.0-py3-none-any.whl.sha512
> ✗ Checksum file not found
> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
> ✓ Wheel is readable and contains 151 files
>
>
> ❌ Verification failed.
> ```
> [ ] LICENSE/NOTICE/DISCLAIMER files exist
> See above and below, there's some files in the examples that don't have
> licenceses but are part of the source package.
> [x] No unexpected binary files
> [ ] All source files have ASF headers
> I ran the provided script, but rat-excludes seems not to be found. Some of
> these files admit comments so they could have licence headers
> ```
> # Verify license headers (requires Apache RAT)
> uv run python scripts/verify_apache_artifacts.py licenses --rat-jar
> apache-rat-0.15.jar
> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>
> --------------------------------------------------------------------------------
> Extracting archive...
> ✓ Extracted to temp directory
> ⚠️ Warning: .rat-excludes not found, running without excludes
> Running Apache RAT (XML format for parsing)...
> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> Running Apache RAT (text format for review)...
> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> Parsing RAT report...
> ✓ Scanned 706 files
> ✓ Found 33 files with license issues
>
> ⚠️ License Issues Found:
>
> Unapproved Licenses (33 files):
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> ... and 23 more
>
> 📄 Reports saved:
> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>
> ❌ License check failed!
>
> ❌ Verification failed.
> ```
> [x] Can compile from source
>
> *
> the tar extracts into `apache_hamilton-1.90.0` so `cd
> ${PACKAGE}-${VERSION}-incubating/` doesn't work.
> *
> `uv venv --python 3.11 --clean` doesn't work: `error: unexpected argument
> '--clean' found`
> *
> flit worked and could install wheel
> *
> cannot install test dependencies: `error: Distribution `lancedb==0.30.2 @
> registry+https://pypi.org/simple` <https://pypi.org/simple> can't be
> installed because it doesn't have a source distribution or wheel for the
> current platform` — seems like uv cannot resolve lance db. I am on `hint:
> You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
> *
> hello_world runs -ish: only constructing the dag at the end fais if you
> don't have graphviz: `ERROR:hamilton.graph: graphviz is required for
> visualizing the function graph. Install it with: pip install
> "sf-hamilton[visualization]" or pip install graphviz`
>
>
> Complete verification output:
> ```
> # Verify everything
> uv run python scripts/verify_apache_artifacts.py all --rat-jar
> apache-rat-0.15.jar
>
> # Inspect artifact contents
> uv run python scripts/verify_apache_artifacts.py list-contents
> dist/apache-hamilton-1.90.0-incubating.tar.gz
> uv run python scripts/verify_apache_artifacts.py list-contents
> dist/apache_hamilton-1.90.0-py3-none-any.whl
>
> # Validate wheel metadata
> uv run python scripts/verify_apache_artifacts.py twine-check
>
>
> ================================================================================
> Complete Apache Artifacts Verification
>
> ================================================================================
>
>
> [1/2] Verifying signatures and checksums...
>
>
> ================================================================================
> Verifying Signatures and Checksums
>
> ================================================================================
>
> Found 4 artifact(s) to verify:
>
> Verifying: rat-report-apache_hamilton-1-90-0.xml
>
> --------------------------------------------------------------------------------
> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467 bytes)
> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
> ✗ Signature file not found
> Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.xml.sha512
> ✗ Checksum file not found
>
> Verifying: apache_hamilton-1.90.0.tar.gz
>
> --------------------------------------------------------------------------------
> ✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
> Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
> ✗ Signature file not found
> Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
> ✗ Checksum file not found
> Checking archive readability: apache_hamilton-1.90.0.tar.gz
> ✓ Archive is readable and contains 706 files
>
> Verifying: rat-report-apache_hamilton-1-90-0.txt
>
> --------------------------------------------------------------------------------
> ✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073 bytes)
> Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
> ✗ Signature file not found
> Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.txt.sha512
> ✗ Checksum file not found
>
> Verifying: apache_hamilton-1.90.0-py3-none-any.whl
>
> --------------------------------------------------------------------------------
> ✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199
> bytes)
> Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
> ✗ Signature file not found
> Verifying SHA512 checksum: apache_hamilton-1.90.0-py3-none-any.whl.sha512
> ✗ Checksum file not found
> Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
> ✓ Wheel is readable and contains 151 files
>
>
> [2/2] Verifying licenses with Apache RAT...
>
>
> ================================================================================
> Verifying Licenses with Apache RAT
>
> ================================================================================
>
> Found 1 tar.gz artifact(s) to check:
>
>
> Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
>
> --------------------------------------------------------------------------------
> Extracting archive...
> ✓ Extracted to temp directory
> ⚠️ Warning: .rat-excludes not found, running without excludes
> Running Apache RAT (XML format for parsing)...
> ✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
> Running Apache RAT (text format for review)...
> ✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
> Parsing RAT report...
> ✓ Scanned 706 files
> ✓ Found 33 files with license issues
>
> ⚠️ License Issues Found:
>
> Unapproved Licenses (33 files):
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
> -
> /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
> ... and 23 more
>
> 📄 Reports saved:
> - dist/rat-report-apache_hamilton-1-90-0.xml (structured)
> - dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
>
> ❌ License check failed!
>
>
> ================================================================================
> Verification Summary
>
> ================================================================================
>
> Results:
> Signatures & Checksums: ❌ FAIL
> License Compliance: ❌ FAIL
>
> ❌ Verification failed.
>
>
> ================================================================================
> Listing Artifact Contents
>
> ================================================================================
>
>
> ❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
>
>
> ================================================================================
> Listing Artifact Contents
>
> ================================================================================
>
>
> Contents of: apache_hamilton-1.90.0-py3-none-any.whl
>
> ================================================================================
> Total files: 151
>
> Top-level structure:
> apache_hamilton-1.90.0.dist-info (7 files)
> hamilton (144 files)
>
> Files:
>
> apache_hamilton-1.90.0.dist-info/METADATA
> 22,665
> apache_hamilton-1.90.0.dist-info/RECORD
> 13,565
> apache_hamilton-1.90.0.dist-info/WHEEL
> 82
> apache_hamilton-1.90.0.dist-info/entry_points.txt
> 421
> apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER
> 554
> apache_hamilton-1.90.0.dist-info/licenses/LICENSE
> 12,602
> apache_hamilton-1.90.0.dist-info/licenses/NOTICE
> 182
> hamilton/__init__.py
> 1,086
> hamilton/ad_hoc_utils.py
> 5,677
> hamilton/async_driver.py
> 19,548
> hamilton/base.py
> 19,860
> hamilton/caching/__init__.py
> 785
> hamilton/caching/adapter.py
> 61,482
> hamilton/caching/cache_key.py
> 2,497
> hamilton/caching/fingerprinting.py
> 9,986
> hamilton/caching/stores/__init__.py
> 785
> hamilton/caching/stores/base.py
> 8,529
> hamilton/caching/stores/file.py
> 5,229
> hamilton/caching/stores/memory.py
> 11,159
> hamilton/caching/stores/sqlite.py
> 9,965
> hamilton/caching/stores/utils.py
> 1,370
> hamilton/cli/__init__.py
> 785
> hamilton/cli/__main__.py
> 9,202
> hamilton/cli/commands.py
> 4,446
> hamilton/cli/logic.py
> 10,338
> hamilton/common/__init__.py
> 3,075
> hamilton/contrib/__init__.py
> 1,644
> hamilton/data_quality/__init__.py
> 785
> hamilton/data_quality/base.py
> 6,890
> hamilton/data_quality/default_validators.py
> 21,184
> hamilton/data_quality/pandera_validators.py
> 4,493
> hamilton/dataflows/__init__.py
> 27,999
> hamilton/dataflows/template/README.md
> 958
> hamilton/dataflows/template/__init__.py
> 1,721
> hamilton/dataflows/template/author.md
> 940
> hamilton/dataflows/template/requirements.txt
> 0
> hamilton/dataflows/template/tags.json
> 98
> hamilton/dataflows/template/valid_configs.jsonl
> 3
> hamilton/dev_utils/__init__.py
> 785
> hamilton/dev_utils/deprecation.py
> 7,774
> hamilton/driver.py
> 95,686
> hamilton/execution/__init__.py
> 785
> hamilton/execution/debugging_utils.py
> 2,041
> hamilton/execution/executors.py
> 18,833
> hamilton/execution/graph_functions.py
> 16,527
> hamilton/execution/grouping.py
> 17,480
> hamilton/execution/state.py
> 23,957
> hamilton/experimental/__init__.py
> 1,100
> hamilton/experimental/databackend.py
> 1,397
> hamilton/experimental/decorators/__init__.py
> 785
> hamilton/experimental/decorators/parameterize_frame.py
> 8,684
> hamilton/experimental/h_async.py
> 1,057
> hamilton/experimental/h_cache.py
> 15,259
> hamilton/experimental/h_dask.py
> 1,166
> hamilton/experimental/h_databackends.py
> 5,075
> hamilton/experimental/h_ray.py
> 1,124
> hamilton/experimental/h_spark.py
> 1,223
> hamilton/function_modifiers/README
> 2,672
> hamilton/function_modifiers/__init__.py
> 3,812
> hamilton/function_modifiers/adapters.py
> 38,908
> hamilton/function_modifiers/base.py
> 33,403
> hamilton/function_modifiers/configuration.py
> 13,422
> hamilton/function_modifiers/delayed.py
> 9,448
> hamilton/function_modifiers/dependencies.py
> 10,014
> hamilton/function_modifiers/expanders.py
> 56,117
> hamilton/function_modifiers/macros.py
> 73,755
> hamilton/function_modifiers/metadata.py
> 17,253
> hamilton/function_modifiers/recursive.py
> 40,426
> hamilton/function_modifiers/validation.py
> 12,484
> hamilton/function_modifiers_base.py
> 1,462
> hamilton/graph.py
> 50,459
> hamilton/graph_types.py
> 10,478
> hamilton/graph_utils.py
> 1,656
> hamilton/htypes.py
> 17,746
> hamilton/io/__init__.py
> 1,183
> hamilton/io/data_adapters.py
> 7,987
> hamilton/io/default_data_loaders.py
> 5,617
> hamilton/io/materialization.py
> 21,578
> hamilton/io/utils.py
> 5,073
> hamilton/lifecycle/__init__.py
> 2,053
> hamilton/lifecycle/api.py
> 31,981
> hamilton/lifecycle/base.py
> 44,599
> hamilton/lifecycle/default.py
> 32,890
> hamilton/log_setup.py
> 1,714
> hamilton/models.py
> 3,265
> hamilton/node.py
> 17,153
> hamilton/plugins/README.md
> 2,659
> hamilton/plugins/__init__.py
> 785
> hamilton/plugins/dask_extensions.py
> 1,518
> hamilton/plugins/dlt_extensions.py
> 5,585
> hamilton/plugins/geopandas_extensions.py
> 1,572
> hamilton/plugins/h_dask.py
> 15,566
> hamilton/plugins/h_ddog.py
> 22,392
> hamilton/plugins/h_diskcache.py
> 6,683
> hamilton/plugins/h_experiments/__init__.py
> 892
> hamilton/plugins/h_experiments/__main__.py
> 2,181
> hamilton/plugins/h_experiments/cache.py
> 1,395
> hamilton/plugins/h_experiments/data_model.py
> 2,180
> hamilton/plugins/h_experiments/hook.py
> 7,240
> hamilton/plugins/h_experiments/server.py
> 12,493
> hamilton/plugins/h_kedro.py
> 5,583
> hamilton/plugins/h_logging.py
> 15,225
> hamilton/plugins/h_mcp/__init__.py
> 1,068
> hamilton/plugins/h_mcp/__main__.py
> 1,137
> hamilton/plugins/h_mcp/_helpers.py
> 4,152
> hamilton/plugins/h_mcp/_templates.py
> 13,528
> hamilton/plugins/h_mcp/server.py
> 12,392
> hamilton/plugins/h_mlflow.py
> 14,442
> hamilton/plugins/h_narwhals.py
> 4,677
> hamilton/plugins/h_openlineage.py
> 13,129
> hamilton/plugins/h_opentelemetry.py
> 5,928
> hamilton/plugins/h_pandas.py
> 10,633
> hamilton/plugins/h_pandera.py
> 4,952
> hamilton/plugins/h_polars.py
> 12,507
> hamilton/plugins/h_polars_lazyframe.py
> 11,561
> hamilton/plugins/h_pyarrow.py
> 2,177
> hamilton/plugins/h_pydantic.py
> 4,962
> hamilton/plugins/h_ray.py
> 9,130
> hamilton/plugins/h_rich.py
> 5,181
> hamilton/plugins/h_schema.py
> 18,307
> hamilton/plugins/h_slack.py
> 3,634
> hamilton/plugins/h_spark.py
> 63,268
> hamilton/plugins/h_threadpool.py
> 5,036
> hamilton/plugins/h_tqdm.py
> 4,665
> hamilton/plugins/h_vaex.py
> 5,034
> hamilton/plugins/huggingface_extensions.py
> 7,839
> hamilton/plugins/ibis_extensions.py
> 2,970
> hamilton/plugins/jupyter_magic.py
> 24,929
> hamilton/plugins/kedro_extensions.py
> 3,267
> hamilton/plugins/lightgbm_extensions.py
> 2,961
> hamilton/plugins/matplotlib_extensions.py
> 3,738
> hamilton/plugins/mlflow_extensions.py
> 8,856
> hamilton/plugins/numpy_extensions.py
> 3,221
> hamilton/plugins/pandas_extensions.py
> 66,288
> hamilton/plugins/plotly_extensions.py
> 5,010
> hamilton/plugins/polars_extensions.py
> 2,345
> hamilton/plugins/polars_implementations.py
> 1,028
> hamilton/plugins/polars_lazyframe_extensions.py
> 10,889
> hamilton/plugins/polars_post_1_0_0_extensions.py
> 30,733
> hamilton/plugins/polars_pre_1_0_0_extension.py
> 29,649
> hamilton/plugins/pydantic_extensions.py
> 3,840
> hamilton/plugins/pyspark_pandas_extensions.py
> 1,551
> hamilton/plugins/sklearn_plot_extensions.py
> 4,326
> hamilton/plugins/spark_extensions.py
> 3,236
> hamilton/plugins/vaex_extensions.py
> 1,673
> hamilton/plugins/xgboost_extensions.py
> 2,762
> hamilton/plugins/yaml_extensions.py
> 2,554
> hamilton/registry.py
> 8,588
> hamilton/settings.py
> 845
> hamilton/telemetry.py
> 1,772
> hamilton/version.py
> 807
>
>
> ================================================================================
> Verifying Wheel Metadata with Twine
>
> ================================================================================
>
>
> Checking apache_hamilton-1.90.0-py3-none-any.whl...
> ✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
>
> ✅ All wheels passed twine validation
>
> ✅ Verification completed successfully!
> ```
>
> Maybe for some of the things it is just me doing something stupid (but not
> sure what since I copy-paste the readme commands and just fix the file
> names).
>
> Best,
> Jernej
>
> ________________________________
> From: Elijah ben Izzy <el...@alumni.brown.edu>
> Sent: 07 April 2026 05:37
> To: dev@hamilton.apache.org <de...@hamilton.apache.org>
> Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton
> 1.90.0-incubating (release candidate 0)
>
> Nice work. Checks performed:
> [x] Verified GPG signature (Good signature, key
> FE668E857E89A11C5E5C000CA8D3D15600545C61)
> [x] Verified SHA-512 checksums
> [x] "incubating" in source tarball filename
> [x] LICENSE, NOTICE, DISCLAIMER present and correct
> [x] ASF license headers present in source files
> [x] No unexpected binary files
> [x] Built and installed from source (Python 3.13)
> [x] Ran hello_world example successfully
>
> + 1 (binding)
>
> On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <stefan.krawczyk@gmail.com
> >
> wrote:
>
> > Oh I forgot to link to it, but to hopefully make it faster to verify
> > the verification
> > script
> > <
> >
> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> > >
> > should help (see these instructions
> > <
> https://github.com/apache/hamilton/tree/main/scripts#verification-script
> > >).
> >
> > Otherwise I have noticed the README instructions for verification have
> some
> > incorrect paths -- please adjust for that and you should be able to
> follow
> > the instructions.
> >
> > On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <
> stefan.krawczyk@gmail.com
> > >
> > wrote:
> >
> > > Hi all,
> > >
> > > This is a call for a vote on releasing Apache Hamilton apache-hamilton
> > > 1.90.0-incubating, release candidate 0.
> > >
> > > This release includes the following changes (see CHANGELOG for
> details):
> > >
> > > Features:
> > >> - While loop DFS implementation (#1483)
> > >> - Async data validator support
> > >> - Add `unpack_fields` annotation for unpacking structured fields
> (#1305)
> > >> - Expose DAG validation as LLM tools via MCP (#1490)
> > >> - Add NDJSON support in polars (#1431)
> > >> - Enhance visualization with display_name tag support
> > >
> > >
> > > Bug fixes:
> > >> - Fix `@resolve` decorator not calling `validate()` on returned
> > >> decorators (#1524)
> > >> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
> > >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> > >> - Fix spark failures on Python 3.14
> > >> - Fix local (Windows) tests (#1302)
> > >> - Fix typer version requirement for click 8.3 help compatibility
> > >
> > >
> > > Performance:
> > >> - Use deque for BFS queue in graph traversal (#1494)
> > >
> > >
> > > Platform changes:
> > >> - Drop Python 3.8 and 3.9 support
> > >> - Add Python 3.13 and 3.14 support
> > >> - Remove usage telemetry (PostHog) (#1512)
> > >> - Remove RayWorkflows (#1359)
> > >> - Update `dlt` plugin with changes to `loader_file_format`
> > >> - Package renamed from sf-hamilton to apache-hamilton
> > >
> > >
> > >
> > > The artifacts for this release candidate can be found at:
> > >
> > >
> >
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> > >
> > >
> > > The Git tag to be voted upon is: apache-hamilton-v1.90.0-incubating-RC0
> > >
> > >
> > > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> > >
> > > But the functional release is from this commit from main:
> > > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> > >
> > > Release artifacts are signed with the following key:
> > >
> > > FE668E857E89A11C5E5C000CA8D3D15600545C61
> > >
> > > The KEYS file is available at:
> > > https://downloads.apache.org/incubator/hamilton/KEYS
> > >
> > > Please download, verify, and test the release candidate. You can find
> the
> > > instructions to do so here
> > > <
> >
> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release
> >
> > (and
> > > if you're having issues following them please reply and I'll help).
> > >
> > > The vote will run for a minimum of 72 hours, likely much longer due to
> > the
> > > holiday.
> > >
> > > Please vote:
> > >
> > > [ ] +1 Release this package as Apache Hamilton apache-hamilton
> > > 1.90.0-incubating
> > > [ ] +0 No opinion
> > > [ ] -1 Do not release this package because... (Please provide a reason)
> > >
> > > Checklist for reference:
> > >
> > > [ ] Incubating in name.
> > > [ ] Download links are valid.
> > > [ ] Checksums and signatures.
> > > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > > [ ] No unexpected binary files
> > > [ ] All source files have ASF headers
> > > [ ] Can compile from source
> > >
> > >
> > > On behalf of the Apache Hamilton PPMC,
> > >
> > > Stefan Krawczyk
> > >
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Jernej Frank <je...@physics.ox.ac.uk>.
Hey, I tried following the verification readme and use the scripts: https://github.com/apache/hamilton/tree/main/scripts#verification-script and could not get a lot of things working out of the box.
-1
Checklist for reference:
[x] Incubating in name.
[x] Download links are valid.
The actual link is fine but the readme is wrong
```
svn export https://dist.apache.org/repos/dist/dev/incubator/hamilton/${PACKAGE}-${VERSION}-incubating-RC${RC}/ hamilton-rc${RC}
svn: E170000: URL 'https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton-1.90.0-incubating-RC0' doesn't exist
```
[ ] Checksums and signatures.
I can verify gpg keys but the readme is missing a -src in the name for the source.
```
gpg --verify ${PACKAGE}-${VERSION}-incubating.tar.gz.asc ${PACKAGE}-${VERSION}-incubating.tar.gz
gpg: can't open 'apache-hamilton-1.90.0-incubating.tar.gz.asc': No such file or directory
gpg: verify signatures failed: No such file or directory
```
The wheel gpg keys worked.
I could not get sha verification working:
```
shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating.tar.gz.sha512
shasum: apache-hamilton-1.90.0-incubating.tar.gz.sha512: No such file or directory
shasum -a 512 -c ${PACKAGE}-${VERSION}-incubating-src.tar.gz.sha512
shasum: apache-hamilton-1.90.0-incubating-src.tar.gz.sha512: no properly formatted SHA checksum lines found
shasum -a 512 -c ${WHEEL_NAME}.sha512
shasum: apache_hamilton-1.90.0-py3-none-any.whl.sha512: no properly formatted SHA checksum lines found
```
Similarly, in case of using the script at the end:
```
# Run from the extracted source directory (${PACKAGE}-${VERSION}-incubating/)
# Verify GPG signatures and SHA512 checksums
uv run python scripts/verify_apache_artifacts.py signatures
================================================================================
Verifying Signatures and Checksums
================================================================================
Found 2 artifact(s) to verify:
Verifying: apache_hamilton-1.90.0.tar.gz
--------------------------------------------------------------------------------
✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
✗ Signature file not found
Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
✗ Checksum file not found
Checking archive readability: apache_hamilton-1.90.0.tar.gz
✓ Archive is readable and contains 706 files
Verifying: apache_hamilton-1.90.0-py3-none-any.whl
--------------------------------------------------------------------------------
✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199 bytes)
Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
✗ Signature file not found
Verifying SHA512 checksum: apache_hamilton-1.90.0-py3-none-any.whl.sha512
✗ Checksum file not found
Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
✓ Wheel is readable and contains 151 files
❌ Verification failed.
```
[ ] LICENSE/NOTICE/DISCLAIMER files exist
See above and below, there's some files in the examples that don't have licenceses but are part of the source package.
[x] No unexpected binary files
[ ] All source files have ASF headers
I ran the provided script, but rat-excludes seems not to be found. Some of these files admit comments so they could have licence headers
```
# Verify license headers (requires Apache RAT)
uv run python scripts/verify_apache_artifacts.py licenses --rat-jar apache-rat-0.15.jar
Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
--------------------------------------------------------------------------------
Extracting archive...
✓ Extracted to temp directory
⚠️ Warning: .rat-excludes not found, running without excludes
Running Apache RAT (XML format for parsing)...
✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
Running Apache RAT (text format for review)...
✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
Parsing RAT report...
✓ Scanned 706 files
✓ Found 33 files with license issues
⚠️ License Issues Found:
Unapproved Licenses (33 files):
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmpeajq4ddw/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
... and 23 more
📄 Reports saved:
- dist/rat-report-apache_hamilton-1-90-0.xml (structured)
- dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
❌ License check failed!
❌ Verification failed.
```
[x] Can compile from source
*
the tar extracts into `apache_hamilton-1.90.0` so `cd ${PACKAGE}-${VERSION}-incubating/` doesn't work.
*
`uv venv --python 3.11 --clean` doesn't work: `error: unexpected argument '--clean' found`
*
flit worked and could install wheel
*
cannot install test dependencies: `error: Distribution `lancedb==0.30.2 @ registry+https://pypi.org/simple` can't be installed because it doesn't have a source distribution or wheel for the current platform` — seems like uv cannot resolve lance db. I am on `hint: You're on macOS (`macosx_15_0_x86_64`), but `lancedb` (v0.30.2)`
*
hello_world runs -ish: only constructing the dag at the end fais if you don't have graphviz: `ERROR:hamilton.graph: graphviz is required for visualizing the function graph. Install it with: pip install "sf-hamilton[visualization]" or pip install graphviz`
Complete verification output:
```
# Verify everything
uv run python scripts/verify_apache_artifacts.py all --rat-jar apache-rat-0.15.jar
# Inspect artifact contents
uv run python scripts/verify_apache_artifacts.py list-contents dist/apache-hamilton-1.90.0-incubating.tar.gz
uv run python scripts/verify_apache_artifacts.py list-contents dist/apache_hamilton-1.90.0-py3-none-any.whl
# Validate wheel metadata
uv run python scripts/verify_apache_artifacts.py twine-check
================================================================================
Complete Apache Artifacts Verification
================================================================================
[1/2] Verifying signatures and checksums...
================================================================================
Verifying Signatures and Checksums
================================================================================
Found 4 artifact(s) to verify:
Verifying: rat-report-apache_hamilton-1-90-0.xml
--------------------------------------------------------------------------------
✓ Artifact exists: rat-report-apache_hamilton-1-90-0.xml (236,467 bytes)
Verifying GPG signature: rat-report-apache_hamilton-1-90-0.xml.asc
✗ Signature file not found
Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.xml.sha512
✗ Checksum file not found
Verifying: apache_hamilton-1.90.0.tar.gz
--------------------------------------------------------------------------------
✓ Artifact exists: apache_hamilton-1.90.0.tar.gz (3,655,569 bytes)
Verifying GPG signature: apache_hamilton-1.90.0.tar.gz.asc
✗ Signature file not found
Verifying SHA512 checksum: apache_hamilton-1.90.0.tar.gz.sha512
✗ Checksum file not found
Checking archive readability: apache_hamilton-1.90.0.tar.gz
✓ Archive is readable and contains 706 files
Verifying: rat-report-apache_hamilton-1-90-0.txt
--------------------------------------------------------------------------------
✓ Artifact exists: rat-report-apache_hamilton-1-90-0.txt (128,073 bytes)
Verifying GPG signature: rat-report-apache_hamilton-1-90-0.txt.asc
✗ Signature file not found
Verifying SHA512 checksum: rat-report-apache_hamilton-1-90-0.txt.sha512
✗ Checksum file not found
Verifying: apache_hamilton-1.90.0-py3-none-any.whl
--------------------------------------------------------------------------------
✓ Artifact exists: apache_hamilton-1.90.0-py3-none-any.whl (475,199 bytes)
Verifying GPG signature: apache_hamilton-1.90.0-py3-none-any.whl.asc
✗ Signature file not found
Verifying SHA512 checksum: apache_hamilton-1.90.0-py3-none-any.whl.sha512
✗ Checksum file not found
Checking wheel readability: apache_hamilton-1.90.0-py3-none-any.whl
✓ Wheel is readable and contains 151 files
[2/2] Verifying licenses with Apache RAT...
================================================================================
Verifying Licenses with Apache RAT
================================================================================
Found 1 tar.gz artifact(s) to check:
Running Apache RAT on: apache_hamilton-1.90.0.tar.gz
--------------------------------------------------------------------------------
Extracting archive...
✓ Extracted to temp directory
⚠️ Warning: .rat-excludes not found, running without excludes
Running Apache RAT (XML format for parsing)...
✓ RAT XML report: dist/rat-report-apache_hamilton-1-90-0.xml
Running Apache RAT (text format for review)...
✓ RAT text report: dist/rat-report-apache_hamilton-1-90-0.txt
Parsing RAT report...
✓ Scanned 706 files
✓ Found 33 files with license issues
⚠️ License Issues Found:
Unapproved Licenses (33 files):
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/Absenteeism_at_work.csv
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-dask.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-ray.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements-spark.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/data_quality/simple/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/hello_world/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/examples/pandas/materialization/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/requirements.txt
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/dataflows/template/valid_configs.jsonl
- /var/folders/_5/qn4m8hy526b4gsrvq_fc20x00000gn/T/tmppdvooszr/extracted/apache_hamilton-1.90.0/hamilton/experimental/databackend.py
... and 23 more
📄 Reports saved:
- dist/rat-report-apache_hamilton-1-90-0.xml (structured)
- dist/rat-report-apache_hamilton-1-90-0.txt (human-readable)
❌ License check failed!
================================================================================
Verification Summary
================================================================================
Results:
Signatures & Checksums: ❌ FAIL
License Compliance: ❌ FAIL
❌ Verification failed.
================================================================================
Listing Artifact Contents
================================================================================
❌ Artifact not found: dist/apache-hamilton-1.90.0-incubating.tar.gz
================================================================================
Listing Artifact Contents
================================================================================
Contents of: apache_hamilton-1.90.0-py3-none-any.whl
================================================================================
Total files: 151
Top-level structure:
apache_hamilton-1.90.0.dist-info (7 files)
hamilton (144 files)
Files:
apache_hamilton-1.90.0.dist-info/METADATA 22,665
apache_hamilton-1.90.0.dist-info/RECORD 13,565
apache_hamilton-1.90.0.dist-info/WHEEL 82
apache_hamilton-1.90.0.dist-info/entry_points.txt 421
apache_hamilton-1.90.0.dist-info/licenses/DISCLAIMER 554
apache_hamilton-1.90.0.dist-info/licenses/LICENSE 12,602
apache_hamilton-1.90.0.dist-info/licenses/NOTICE 182
hamilton/__init__.py 1,086
hamilton/ad_hoc_utils.py 5,677
hamilton/async_driver.py 19,548
hamilton/base.py 19,860
hamilton/caching/__init__.py 785
hamilton/caching/adapter.py 61,482
hamilton/caching/cache_key.py 2,497
hamilton/caching/fingerprinting.py 9,986
hamilton/caching/stores/__init__.py 785
hamilton/caching/stores/base.py 8,529
hamilton/caching/stores/file.py 5,229
hamilton/caching/stores/memory.py 11,159
hamilton/caching/stores/sqlite.py 9,965
hamilton/caching/stores/utils.py 1,370
hamilton/cli/__init__.py 785
hamilton/cli/__main__.py 9,202
hamilton/cli/commands.py 4,446
hamilton/cli/logic.py 10,338
hamilton/common/__init__.py 3,075
hamilton/contrib/__init__.py 1,644
hamilton/data_quality/__init__.py 785
hamilton/data_quality/base.py 6,890
hamilton/data_quality/default_validators.py 21,184
hamilton/data_quality/pandera_validators.py 4,493
hamilton/dataflows/__init__.py 27,999
hamilton/dataflows/template/README.md 958
hamilton/dataflows/template/__init__.py 1,721
hamilton/dataflows/template/author.md 940
hamilton/dataflows/template/requirements.txt 0
hamilton/dataflows/template/tags.json 98
hamilton/dataflows/template/valid_configs.jsonl 3
hamilton/dev_utils/__init__.py 785
hamilton/dev_utils/deprecation.py 7,774
hamilton/driver.py 95,686
hamilton/execution/__init__.py 785
hamilton/execution/debugging_utils.py 2,041
hamilton/execution/executors.py 18,833
hamilton/execution/graph_functions.py 16,527
hamilton/execution/grouping.py 17,480
hamilton/execution/state.py 23,957
hamilton/experimental/__init__.py 1,100
hamilton/experimental/databackend.py 1,397
hamilton/experimental/decorators/__init__.py 785
hamilton/experimental/decorators/parameterize_frame.py 8,684
hamilton/experimental/h_async.py 1,057
hamilton/experimental/h_cache.py 15,259
hamilton/experimental/h_dask.py 1,166
hamilton/experimental/h_databackends.py 5,075
hamilton/experimental/h_ray.py 1,124
hamilton/experimental/h_spark.py 1,223
hamilton/function_modifiers/README 2,672
hamilton/function_modifiers/__init__.py 3,812
hamilton/function_modifiers/adapters.py 38,908
hamilton/function_modifiers/base.py 33,403
hamilton/function_modifiers/configuration.py 13,422
hamilton/function_modifiers/delayed.py 9,448
hamilton/function_modifiers/dependencies.py 10,014
hamilton/function_modifiers/expanders.py 56,117
hamilton/function_modifiers/macros.py 73,755
hamilton/function_modifiers/metadata.py 17,253
hamilton/function_modifiers/recursive.py 40,426
hamilton/function_modifiers/validation.py 12,484
hamilton/function_modifiers_base.py 1,462
hamilton/graph.py 50,459
hamilton/graph_types.py 10,478
hamilton/graph_utils.py 1,656
hamilton/htypes.py 17,746
hamilton/io/__init__.py 1,183
hamilton/io/data_adapters.py 7,987
hamilton/io/default_data_loaders.py 5,617
hamilton/io/materialization.py 21,578
hamilton/io/utils.py 5,073
hamilton/lifecycle/__init__.py 2,053
hamilton/lifecycle/api.py 31,981
hamilton/lifecycle/base.py 44,599
hamilton/lifecycle/default.py 32,890
hamilton/log_setup.py 1,714
hamilton/models.py 3,265
hamilton/node.py 17,153
hamilton/plugins/README.md 2,659
hamilton/plugins/__init__.py 785
hamilton/plugins/dask_extensions.py 1,518
hamilton/plugins/dlt_extensions.py 5,585
hamilton/plugins/geopandas_extensions.py 1,572
hamilton/plugins/h_dask.py 15,566
hamilton/plugins/h_ddog.py 22,392
hamilton/plugins/h_diskcache.py 6,683
hamilton/plugins/h_experiments/__init__.py 892
hamilton/plugins/h_experiments/__main__.py 2,181
hamilton/plugins/h_experiments/cache.py 1,395
hamilton/plugins/h_experiments/data_model.py 2,180
hamilton/plugins/h_experiments/hook.py 7,240
hamilton/plugins/h_experiments/server.py 12,493
hamilton/plugins/h_kedro.py 5,583
hamilton/plugins/h_logging.py 15,225
hamilton/plugins/h_mcp/__init__.py 1,068
hamilton/plugins/h_mcp/__main__.py 1,137
hamilton/plugins/h_mcp/_helpers.py 4,152
hamilton/plugins/h_mcp/_templates.py 13,528
hamilton/plugins/h_mcp/server.py 12,392
hamilton/plugins/h_mlflow.py 14,442
hamilton/plugins/h_narwhals.py 4,677
hamilton/plugins/h_openlineage.py 13,129
hamilton/plugins/h_opentelemetry.py 5,928
hamilton/plugins/h_pandas.py 10,633
hamilton/plugins/h_pandera.py 4,952
hamilton/plugins/h_polars.py 12,507
hamilton/plugins/h_polars_lazyframe.py 11,561
hamilton/plugins/h_pyarrow.py 2,177
hamilton/plugins/h_pydantic.py 4,962
hamilton/plugins/h_ray.py 9,130
hamilton/plugins/h_rich.py 5,181
hamilton/plugins/h_schema.py 18,307
hamilton/plugins/h_slack.py 3,634
hamilton/plugins/h_spark.py 63,268
hamilton/plugins/h_threadpool.py 5,036
hamilton/plugins/h_tqdm.py 4,665
hamilton/plugins/h_vaex.py 5,034
hamilton/plugins/huggingface_extensions.py 7,839
hamilton/plugins/ibis_extensions.py 2,970
hamilton/plugins/jupyter_magic.py 24,929
hamilton/plugins/kedro_extensions.py 3,267
hamilton/plugins/lightgbm_extensions.py 2,961
hamilton/plugins/matplotlib_extensions.py 3,738
hamilton/plugins/mlflow_extensions.py 8,856
hamilton/plugins/numpy_extensions.py 3,221
hamilton/plugins/pandas_extensions.py 66,288
hamilton/plugins/plotly_extensions.py 5,010
hamilton/plugins/polars_extensions.py 2,345
hamilton/plugins/polars_implementations.py 1,028
hamilton/plugins/polars_lazyframe_extensions.py 10,889
hamilton/plugins/polars_post_1_0_0_extensions.py 30,733
hamilton/plugins/polars_pre_1_0_0_extension.py 29,649
hamilton/plugins/pydantic_extensions.py 3,840
hamilton/plugins/pyspark_pandas_extensions.py 1,551
hamilton/plugins/sklearn_plot_extensions.py 4,326
hamilton/plugins/spark_extensions.py 3,236
hamilton/plugins/vaex_extensions.py 1,673
hamilton/plugins/xgboost_extensions.py 2,762
hamilton/plugins/yaml_extensions.py 2,554
hamilton/registry.py 8,588
hamilton/settings.py 845
hamilton/telemetry.py 1,772
hamilton/version.py 807
================================================================================
Verifying Wheel Metadata with Twine
================================================================================
Checking apache_hamilton-1.90.0-py3-none-any.whl...
✓ apache_hamilton-1.90.0-py3-none-any.whl metadata is valid
✅ All wheels passed twine validation
✅ Verification completed successfully!
```
Maybe for some of the things it is just me doing something stupid (but not sure what since I copy-paste the readme commands and just fix the file names).
Best,
Jernej
________________________________
From: Elijah ben Izzy <el...@alumni.brown.edu>
Sent: 07 April 2026 05:37
To: dev@hamilton.apache.org <de...@hamilton.apache.org>
Subject: Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Nice work. Checks performed:
[x] Verified GPG signature (Good signature, key
FE668E857E89A11C5E5C000CA8D3D15600545C61)
[x] Verified SHA-512 checksums
[x] "incubating" in source tarball filename
[x] LICENSE, NOTICE, DISCLAIMER present and correct
[x] ASF license headers present in source files
[x] No unexpected binary files
[x] Built and installed from source (Python 3.13)
[x] Ran hello_world example successfully
+ 1 (binding)
On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <st...@gmail.com>
wrote:
> Oh I forgot to link to it, but to hopefully make it faster to verify
> the verification
> script
> <
> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> >
> should help (see these instructions
> <https://github.com/apache/hamilton/tree/main/scripts#verification-script
> >).
>
> Otherwise I have noticed the README instructions for verification have some
> incorrect paths -- please adjust for that and you should be able to follow
> the instructions.
>
> On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <stefan.krawczyk@gmail.com
> >
> wrote:
>
> > Hi all,
> >
> > This is a call for a vote on releasing Apache Hamilton apache-hamilton
> > 1.90.0-incubating, release candidate 0.
> >
> > This release includes the following changes (see CHANGELOG for details):
> >
> > Features:
> >> - While loop DFS implementation (#1483)
> >> - Async data validator support
> >> - Add `unpack_fields` annotation for unpacking structured fields (#1305)
> >> - Expose DAG validation as LLM tools via MCP (#1490)
> >> - Add NDJSON support in polars (#1431)
> >> - Enhance visualization with display_name tag support
> >
> >
> > Bug fixes:
> >> - Fix `@resolve` decorator not calling `validate()` on returned
> >> decorators (#1524)
> >> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
> >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> >> - Fix spark failures on Python 3.14
> >> - Fix local (Windows) tests (#1302)
> >> - Fix typer version requirement for click 8.3 help compatibility
> >
> >
> > Performance:
> >> - Use deque for BFS queue in graph traversal (#1494)
> >
> >
> > Platform changes:
> >> - Drop Python 3.8 and 3.9 support
> >> - Add Python 3.13 and 3.14 support
> >> - Remove usage telemetry (PostHog) (#1512)
> >> - Remove RayWorkflows (#1359)
> >> - Update `dlt` plugin with changes to `loader_file_format`
> >> - Package renamed from sf-hamilton to apache-hamilton
> >
> >
> >
> > The artifacts for this release candidate can be found at:
> >
> >
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> >
> >
> > The Git tag to be voted upon is: apache-hamilton-v1.90.0-incubating-RC0
> >
> >
> > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> >
> > But the functional release is from this commit from main:
> > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> >
> > Release artifacts are signed with the following key:
> >
> > FE668E857E89A11C5E5C000CA8D3D15600545C61
> >
> > The KEYS file is available at:
> > https://downloads.apache.org/incubator/hamilton/KEYS
> >
> > Please download, verify, and test the release candidate. You can find the
> > instructions to do so here
> > <
> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release>
> (and
> > if you're having issues following them please reply and I'll help).
> >
> > The vote will run for a minimum of 72 hours, likely much longer due to
> the
> > holiday.
> >
> > Please vote:
> >
> > [ ] +1 Release this package as Apache Hamilton apache-hamilton
> > 1.90.0-incubating
> > [ ] +0 No opinion
> > [ ] -1 Do not release this package because... (Please provide a reason)
> >
> > Checklist for reference:
> >
> > [ ] Incubating in name.
> > [ ] Download links are valid.
> > [ ] Checksums and signatures.
> > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > [ ] No unexpected binary files
> > [ ] All source files have ASF headers
> > [ ] Can compile from source
> >
> >
> > On behalf of the Apache Hamilton PPMC,
> >
> > Stefan Krawczyk
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Elijah ben Izzy <el...@alumni.brown.edu>.
Nice work. Checks performed:
[x] Verified GPG signature (Good signature, key
FE668E857E89A11C5E5C000CA8D3D15600545C61)
[x] Verified SHA-512 checksums
[x] "incubating" in source tarball filename
[x] LICENSE, NOTICE, DISCLAIMER present and correct
[x] ASF license headers present in source files
[x] No unexpected binary files
[x] Built and installed from source (Python 3.13)
[x] Ran hello_world example successfully
+ 1 (binding)
On Fri, Apr 3, 2026 at 10:31 PM Stefan Krawczyk <st...@gmail.com>
wrote:
> Oh I forgot to link to it, but to hopefully make it faster to verify
> the verification
> script
> <
> https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py
> >
> should help (see these instructions
> <https://github.com/apache/hamilton/tree/main/scripts#verification-script
> >).
>
> Otherwise I have noticed the README instructions for verification have some
> incorrect paths -- please adjust for that and you should be able to follow
> the instructions.
>
> On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <stefan.krawczyk@gmail.com
> >
> wrote:
>
> > Hi all,
> >
> > This is a call for a vote on releasing Apache Hamilton apache-hamilton
> > 1.90.0-incubating, release candidate 0.
> >
> > This release includes the following changes (see CHANGELOG for details):
> >
> > Features:
> >> - While loop DFS implementation (#1483)
> >> - Async data validator support
> >> - Add `unpack_fields` annotation for unpacking structured fields (#1305)
> >> - Expose DAG validation as LLM tools via MCP (#1490)
> >> - Add NDJSON support in polars (#1431)
> >> - Enhance visualization with display_name tag support
> >
> >
> > Bug fixes:
> >> - Fix `@resolve` decorator not calling `validate()` on returned
> >> decorators (#1524)
> >> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
> >> - Fix pandas 2.2+ compatibility in pandas_extensions.py
> >> - Fix spark failures on Python 3.14
> >> - Fix local (Windows) tests (#1302)
> >> - Fix typer version requirement for click 8.3 help compatibility
> >
> >
> > Performance:
> >> - Use deque for BFS queue in graph traversal (#1494)
> >
> >
> > Platform changes:
> >> - Drop Python 3.8 and 3.9 support
> >> - Add Python 3.13 and 3.14 support
> >> - Remove usage telemetry (PostHog) (#1512)
> >> - Remove RayWorkflows (#1359)
> >> - Update `dlt` plugin with changes to `loader_file_format`
> >> - Package renamed from sf-hamilton to apache-hamilton
> >
> >
> >
> > The artifacts for this release candidate can be found at:
> >
> >
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
> >
> >
> > The Git tag to be voted upon is: apache-hamilton-v1.90.0-incubating-RC0
> >
> >
> > The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
> >
> > But the functional release is from this commit from main:
> > e84ed90b4428d777449b9bfc413ed86ee41a77c9
> >
> > Release artifacts are signed with the following key:
> >
> > FE668E857E89A11C5E5C000CA8D3D15600545C61
> >
> > The KEYS file is available at:
> > https://downloads.apache.org/incubator/hamilton/KEYS
> >
> > Please download, verify, and test the release candidate. You can find the
> > instructions to do so here
> > <
> https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release>
> (and
> > if you're having issues following them please reply and I'll help).
> >
> > The vote will run for a minimum of 72 hours, likely much longer due to
> the
> > holiday.
> >
> > Please vote:
> >
> > [ ] +1 Release this package as Apache Hamilton apache-hamilton
> > 1.90.0-incubating
> > [ ] +0 No opinion
> > [ ] -1 Do not release this package because... (Please provide a reason)
> >
> > Checklist for reference:
> >
> > [ ] Incubating in name.
> > [ ] Download links are valid.
> > [ ] Checksums and signatures.
> > [ ] LICENSE/NOTICE/DISCLAIMER files exist
> > [ ] No unexpected binary files
> > [ ] All source files have ASF headers
> > [ ] Can compile from source
> >
> >
> > On behalf of the Apache Hamilton PPMC,
> >
> > Stefan Krawczyk
> >
>
Re: [VOTE] Release Apache Hamilton - apache-hamilton 1.90.0-incubating (release candidate 0)
Posted by Stefan Krawczyk <st...@gmail.com>.
Oh I forgot to link to it, but to hopefully make it faster to verify
the verification
script
<https://github.com/apache/hamilton/blob/main/scripts/verify_apache_artifacts.py>
should help (see these instructions
<https://github.com/apache/hamilton/tree/main/scripts#verification-script>).
Otherwise I have noticed the README instructions for verification have some
incorrect paths -- please adjust for that and you should be able to follow
the instructions.
On Fri, Apr 3, 2026 at 10:20 PM Stefan Krawczyk <st...@gmail.com>
wrote:
> Hi all,
>
> This is a call for a vote on releasing Apache Hamilton apache-hamilton
> 1.90.0-incubating, release candidate 0.
>
> This release includes the following changes (see CHANGELOG for details):
>
> Features:
>> - While loop DFS implementation (#1483)
>> - Async data validator support
>> - Add `unpack_fields` annotation for unpacking structured fields (#1305)
>> - Expose DAG validation as LLM tools via MCP (#1490)
>> - Add NDJSON support in polars (#1431)
>> - Enhance visualization with display_name tag support
>
>
> Bug fixes:
>> - Fix `@resolve` decorator not calling `validate()` on returned
>> decorators (#1524)
>> - Fix is_submodule substring match causing spurious DAG nodes (#1485)
>> - Fix pandas 2.2+ compatibility in pandas_extensions.py
>> - Fix spark failures on Python 3.14
>> - Fix local (Windows) tests (#1302)
>> - Fix typer version requirement for click 8.3 help compatibility
>
>
> Performance:
>> - Use deque for BFS queue in graph traversal (#1494)
>
>
> Platform changes:
>> - Drop Python 3.8 and 3.9 support
>> - Add Python 3.13 and 3.14 support
>> - Remove usage telemetry (PostHog) (#1512)
>> - Remove RayWorkflows (#1359)
>> - Update `dlt` plugin with changes to `loader_file_format`
>> - Package renamed from sf-hamilton to apache-hamilton
>
>
>
> The artifacts for this release candidate can be found at:
>
> https://dist.apache.org/repos/dist/dev/incubator/hamilton/apache-hamilton/1.90.0-RC0
>
>
> The Git tag to be voted upon is: apache-hamilton-v1.90.0-incubating-RC0
>
>
> The release hash is: bed5a272904bd7d68bc03167978f663e1906738c
>
> But the functional release is from this commit from main:
> e84ed90b4428d777449b9bfc413ed86ee41a77c9
>
> Release artifacts are signed with the following key:
>
> FE668E857E89A11C5E5C000CA8D3D15600545C61
>
> The KEYS file is available at:
> https://downloads.apache.org/incubator/hamilton/KEYS
>
> Please download, verify, and test the release candidate. You can find the
> instructions to do so here
> <https://github.com/apache/hamilton/tree/main/scripts#for-voters-verifying-a-release> (and
> if you're having issues following them please reply and I'll help).
>
> The vote will run for a minimum of 72 hours, likely much longer due to the
> holiday.
>
> Please vote:
>
> [ ] +1 Release this package as Apache Hamilton apache-hamilton
> 1.90.0-incubating
> [ ] +0 No opinion
> [ ] -1 Do not release this package because... (Please provide a reason)
>
> Checklist for reference:
>
> [ ] Incubating in name.
> [ ] Download links are valid.
> [ ] Checksums and signatures.
> [ ] LICENSE/NOTICE/DISCLAIMER files exist
> [ ] No unexpected binary files
> [ ] All source files have ASF headers
> [ ] Can compile from source
>
>
> On behalf of the Apache Hamilton PPMC,
>
> Stefan Krawczyk
>