-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
setup-python computes wrong cache hash key, restores wrong cache #919
Comments
Hello @ryan-williams, Thank you for creating this issue and we will look into it :) |
See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`.
See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`.
* CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854
* [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook (#2854) * pin `pandas-stubs>=2` during pre-commit `mypy` hook also simplify some `if TYPE_CHECKING` blocks fixes #2839 * add r-ci.yml exclusions * `actions{cache,checkout,setup-python}` upgrades (#2856) * CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854 * [python] Offer better guidance on attribute names with `.` (#2864) * [python] Move `_update_column` into pybind11 (#2862) * [r] Expose `tiledb_timestamp` parameter to `$reopen()` Allow `$reopen()` to reopen at a particular timestamp; by default, the timestamp is set to `NULL` to reopen at the curren time. This is needed for compatibility between libtiledbsoma's timestamp handling and resume-mode [SC-52694](https://app.shortcut.com/tiledb-inc/story/52694/allow-reopen-to-take-a-timestamp-for-reopening) --------- Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]>
* [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook (#2854) * pin `pandas-stubs>=2` during pre-commit `mypy` hook also simplify some `if TYPE_CHECKING` blocks fixes #2839 * add r-ci.yml exclusions * `actions{cache,checkout,setup-python}` upgrades (#2856) * CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854 * [python] Offer better guidance on attribute names with `.` (#2864) * [python] Move `_update_column` into pybind11 (#2862) * [r] Expose `tiledb_timestamp` parameter to `$reopen()` Allow `$reopen()` to reopen at a particular timestamp; by default, the timestamp is set to `NULL` to reopen at the curren time. This is needed for compatibility between libtiledbsoma's timestamp handling and resume-mode [SC-52694](https://app.shortcut.com/tiledb-inc/story/52694/allow-reopen-to-take-a-timestamp-for-reopening) --------- Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]>
* [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook (#2854) * pin `pandas-stubs>=2` during pre-commit `mypy` hook also simplify some `if TYPE_CHECKING` blocks fixes #2839 * add r-ci.yml exclusions * `actions{cache,checkout,setup-python}` upgrades (#2856) * CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854 * [python] Offer better guidance on attribute names with `.` (#2864) * [python] Move `_update_column` into pybind11 (#2862) * [r] Expose `tiledb_timestamp` parameter to `$reopen()` Allow `$reopen()` to reopen at a particular timestamp; by default, the timestamp is set to `NULL` to reopen at the curren time. This is needed for compatibility between libtiledbsoma's timestamp handling and resume-mode [SC-52694](https://app.shortcut.com/tiledb-inc/story/52694/allow-reopen-to-take-a-timestamp-for-reopening) --------- Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]>
Hello @ryan-williams 👋,
I hope this clarifies the situation. Please let me know if you have any further questions. Thank you for your patience and understanding! |
* [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook (#2854) * pin `pandas-stubs>=2` during pre-commit `mypy` hook also simplify some `if TYPE_CHECKING` blocks fixes #2839 * add r-ci.yml exclusions * `actions{cache,checkout,setup-python}` upgrades (#2856) * CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854 * [python] Offer better guidance on attribute names with `.` (#2864) * [python] Move `_update_column` into pybind11 (#2862) * [r] Expose `tiledb_timestamp` parameter to `$reopen()` Allow `$reopen()` to reopen at a particular timestamp; by default, the timestamp is set to `NULL` to reopen at the curren time. This is needed for compatibility between libtiledbsoma's timestamp handling and resume-mode [SC-52694](https://app.shortcut.com/tiledb-inc/story/52694/allow-reopen-to-take-a-timestamp-for-reopening) --------- Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]>
* Timestamp range support for dataframe * Extended support * (First half) new timestamp test for SOMADataFrame * Second half of new timestamp passing all but three reopen tests * [r] Expose `tiledb_timestamp` parameter to `$reopen()` (#2866) * [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook (#2854) * pin `pandas-stubs>=2` during pre-commit `mypy` hook also simplify some `if TYPE_CHECKING` blocks fixes #2839 * add r-ci.yml exclusions * `actions{cache,checkout,setup-python}` upgrades (#2856) * CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854 * [python] Offer better guidance on attribute names with `.` (#2864) * [python] Move `_update_column` into pybind11 (#2862) * [r] Expose `tiledb_timestamp` parameter to `$reopen()` Allow `$reopen()` to reopen at a particular timestamp; by default, the timestamp is set to `NULL` to reopen at the curren time. This is needed for compatibility between libtiledbsoma's timestamp handling and resume-mode [SC-52694](https://app.shortcut.com/tiledb-inc/story/52694/allow-reopen-to-take-a-timestamp-for-reopening) --------- Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]> * [r] [NO BACKPORT] Expose timestamps publicly and plumb through for resume-mode (#2871) Expose timestamps publicly through a new active binding; replace calls to `private$tiledb_timestamp` with `self$tiledb_timestamp` Also plumb timestamps through for `write_soma()` in resume-mode * Timestamp range support for dataframe * (First half) new timestamp test for SOMADataFrame * Second half of new timestamp passing all but three reopen tests * Test can now use factor * Read and write DataFrame and {Dense,Sparse}Array under timestamps * Quieter warnings * Adapt one timestamped test * Pause one test predicate for collections * clang-format as obsessing over one whitespace char before a comment is added value * Micro-fix following code review More changes to follow in wider changeset * Update changelog Bump develop version --------- Co-authored-by: Paul Hoffman <[email protected]> Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]> Co-authored-by: Paul Hoffman <[email protected]>
* [python] pin `pandas-stubs>=2` during pre-commit `mypy` hook (#2854) * pin `pandas-stubs>=2` during pre-commit `mypy` hook also simplify some `if TYPE_CHECKING` blocks fixes #2839 * add r-ci.yml exclusions * `actions{cache,checkout,setup-python}` upgrades (#2856) * CI: use `pip` directly (instead of `python -m pip`) * CI: checkout@v4, setup-python@v5 cache@v4 * disable setup-python cache for lint/pre-commit See actions/setup-python#919; setup-python cache likely doesn't help much here, as we only `pip install pre-commit`, and cache `~/.cache/pre-commit` separately using `actions/cache`. * bump to codecov-action@v4 rm coverage/uploader pin added in #2827, per codecov/uploader#1673 (comment) * `s/MacOS/macOS/ * fix typo from #2854 * [python] Offer better guidance on attribute names with `.` (#2864) * [python] Move `_update_column` into pybind11 (#2862) * [r] Expose `tiledb_timestamp` parameter to `$reopen()` Allow `$reopen()` to reopen at a particular timestamp; by default, the timestamp is set to `NULL` to reopen at the curren time. This is needed for compatibility between libtiledbsoma's timestamp handling and resume-mode [SC-52694](https://app.shortcut.com/tiledb-inc/story/52694/allow-reopen-to-take-a-timestamp-for-reopening) --------- Co-authored-by: Ryan Williams <[email protected]> Co-authored-by: John Kerl <[email protected]> Co-authored-by: nguyenv <[email protected]>
Hello @ryan-williams 👋, |
I have read your response a few times, but I still don't understand how it can be that I see output like this:
The cache key being used is a hash of an old version of the In my second example, here, a hash was used of a different file:
Note in both cases that I have also read actions/cache#1433; the prefix-matching behavior is good to know, but I also don't see how it would explain what I've shown above. |
Hello @ryan-williams 👋,
The output you are seeing might be due to a failed step as explained. I attempted to reproduce the issue using the provided link but was unable to do so. Could you please provide a minimal reproducible example outside of your repository? This would help us better understand and investigate the issue further. |
Description:
setup-python computed incorrect cache hashes in each of the two jobs in this GHA workflow run (and many previous runs, over at least several days).
In one job, it uses the hash of an earlier version of the requested
cache-dependency-path
. In the other, it hashes asetup.py
file, ignoring thecache-dependency-path
input altogether.In addition to each case being incorrect, they should match one another.
Here is the step yml, from
6ba2932
:1. "ubuntu-22.04, 3.11" job
In this job, setup-python hashes an old version of
.github/workflows/python-ci-single.yml
:Expected hash:
Actual hash ❌:
That's the
hashFiles
of.github/workflows/python-ci-single.yml
before the PR being tested (274c6f4
; diff), verified by this GHA line:2. "macos-12, 3.11" job
In this job,
apis/python/setup.py
is hashed, instead of the providedcache-dependency-path
(.github/workflows/python-ci-single.yml
):Expected hash:
(same as above):
Actual hash ❌:
That's
hashFiles('apis/python/setup.py')
verified by this GHA line:Action version:
v5 (39cd149)
Platform:
Runner type:
The text was updated successfully, but these errors were encountered: