Skip to content
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

Set sccache timeout #432

Merged
merged 8 commits into from
Dec 31, 2024
Merged

Conversation

vyasr
Copy link
Contributor

@vyasr vyasr commented Dec 17, 2024

For local builds we don't want sccache timing out so quickly. This number matches what we use for other CI builds.

This PR also adds some documentation of how include/exclude files are handled by rapids-make-conda-env.

@vyasr vyasr added improvement Improves an existing functionality non-breaking Introduces a non-breaking change labels Dec 17, 2024
@vyasr vyasr self-assigned this Dec 17, 2024
@vyasr vyasr requested a review from a team as a code owner December 17, 2024 01:16
@vyasr vyasr requested review from gforsyth and removed request for a team December 17, 2024 01:16
Copy link
Collaborator

@trxcllnt trxcllnt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment

@vyasr vyasr requested a review from trxcllnt December 17, 2024 17:45
@vyasr
Copy link
Contributor Author

vyasr commented Dec 18, 2024

Builds are currently blocked on rapidsai/cuspatial#1502.

@trxcllnt
Copy link
Collaborator

It looks like there's a discrepancy between RAPIDS libs. Some repo wants sphinx 6 and another wants 8. Is this being tracked anywhere @vyasr?

@vyasr
Copy link
Contributor Author

vyasr commented Dec 20, 2024

It looks like there's a discrepancy between RAPIDS libs. Some repo wants sphinx 6 and another wants 8. Is this being tracked anywhere @vyasr?

Hmm I just reran assuming that it was a transient failure and I didn't realize that this bump occurred. Let me see if I can find it.

@vyasr
Copy link
Contributor Author

vyasr commented Dec 20, 2024

I'm not seeing it in any repo's dependencies.yaml...

I found it, it's in cuvs.

@jameslamb
Copy link
Member

@vyasr
Copy link
Contributor Author

vyasr commented Dec 23, 2024

@jameslamb you'll also need to get cugraph-ops updated. I missed that one in my pass because I've already removed it from my local devcontainer setup and I forgot that we haven't quite removed it altogether yet.

@jameslamb
Copy link
Member

@jameslamb
Copy link
Member

restarted all CI here now that the cugraph-ops PR is merged (thanks @bdice )

@trxcllnt
Copy link
Collaborator

Still seems to be failing due to incompatible breathe version:

  LibMambaUnsatisfiableError: Encountered problems while solving:
    - package breathe-4.35.0-pyhd8ed1ab_0 requires sphinx >=4.0,<6.0.0a, but none of the providers can be installed

@jameslamb
Copy link
Member

blegh.

Looking at the logs for conda jobs:

channels:
- rapidsai
- rapidsai-nightly
- dask/label/dev
- pytorch
- pyg
- conda-forge
- nvidia
dependencies:
...
- breathe
- breathe>=4.35.0
- sphinx
- sphinx-autobuild
- sphinx-click
- sphinx-copybutton
- sphinx-markdown-tables
- sphinx-remove-toctrees
- sphinx>=8.0.0
...
- pip:
  ...
  - breathe>=4.35.0
  - nvidia-sphinx-theme

(build link)

The latest breathe on conda-forge has a ceiling of sphinx >=4.0,<7.2.

So we need one of these 2 things to happen:

Or, if we could live with not supporting docs builds in devcontainers for a bit (I have no idea if anyone uses devcontainers to build docs), we could add breathe to the list of exclusions here, until that conda-forge PR is updated?

local conda_noinstall=($(rapids-python-pkg-names) $(rapids-python-conda-pkg-names));
# Generate a combined conda env yaml file.
conda-merge "${conda_env_yamls[@]}" \
| (grep -v '^name:' || [ "$?" == "1" ]) \
| (grep -v -P '^[ ]*?\- (\.git\@[^(main|master)])(.*?)$' || [ "$?" == "1" ]) \
| (grep -v -P "^[ ]*?\- ($(tr -d '[:blank:]' <<< "${conda_noinstall[@]/%/ |}"))(=.*|>.*|<.*)?$" || [ "$?" == "1" ]) \
| ( if test ${#_exclude[@]} -gt 0; then grep -E -v "${_exclude[@]}" || [ "$?" == "1" ]; else cat -; fi ) \
| ( if test ${#_include[@]} -gt 0; then grep -E "${_include[@]}" || [ "$?" == "1" ]; else cat -; fi ) \
;

@bdice
Copy link
Contributor

bdice commented Dec 24, 2024

Or, if we could live with not supporting docs builds in devcontainers for a bit (I have no idea if anyone uses devcontainers to build docs), we could add breathe to the list of exclusions here, until that conda-forge PR is updated?

I am okay with this for a short-term solution as long as we add comments explaining it. I do use devcontainers to build docs, but it's rare for me. We do need to get that conda-forge PR merged to fix cuVS docs builds so they're not relying on pip: breathe ...

@trxcllnt
Copy link
Collaborator

@jameslamb if you want to exclude breathe, we can do it as an argument at the callsite rather than inside this file. These exclusions are special, since they are either patterns or transform the dependency somehow.

The change I'd suggest is replacing this line with the one below:

rapids-make-conda-dependencies "${OPTS[@]}" > "${new_env_path}";

    rapids-make-conda-dependencies --exclude <(echo breathe) "${OPTS[@]}" > "${new_env_path}";

@jameslamb jameslamb force-pushed the feat/increase_idle_timeout branch from 7ca20b8 to b55f366 Compare December 24, 2024 17:17
@jameslamb
Copy link
Member

Thanks @trxcllnt .

It originally looked to me, based on these lines, that the docs for these --include / --exclude arguments were wrong, and that those really referred to packages, not files.

# -e,--exclude <file> Path(s) to requirement files of packages to exclude.

local -a _exclude=();
local exc; for exc in "${exclude[@]}"; do
_exclude+=(-f "${exc}");
done

# Generate a combined conda env yaml file.
conda-merge "${conda_env_yamls[@]}" \
| (grep -v '^name:' || [ "$?" == "1" ]) \
| (grep -v -P '^[ ]*?\- (\.git\@[^(main|master)])(.*?)$' || [ "$?" == "1" ]) \
| (grep -v -P "^[ ]*?\- ($(tr -d '[:blank:]' <<< "${conda_noinstall[@]/%/ |}"))(=.*|>.*|<.*)?$" || [ "$?" == "1" ]) \
| ( if test ${#_exclude[@]} -gt 0; then grep -E -v "${_exclude[@]}" || [ "$?" == "1" ]; else cat -; fi ) \
| ( if test ${#_include[@]} -gt 0; then grep -E "${_include[@]}" || [ "$?" == "1" ]; else cat -; fi ) \
;

That led me to b55f366 .

But I see now that those -f being appended aren't for e.g. conda-merge, but for like git grep -E -f {file}, and I guess the <(echo breathe) thing is to provide that single pattern as a file descriptor without touching the filesystem, like git grep -E -f <(echo breathe). Pretty powerful!!!

I just pushed 7f93231 reverting my misguided changes, but including comments and expanding the docs to make it clearer that this is how that's working.

@jameslamb
Copy link
Member

It looks to me like skipping breathe is sufficient to get CI working here again. If we merge this as-is, I'll open an issue tracking the work to revert that breathe exclusion whenever conda-forge/breathe-feedstock#64 is merged.

@trxcllnt whenever you have time, can you re-review?

@bdice
Copy link
Contributor

bdice commented Dec 30, 2024

conda-forge/breathe-feedstock#64 has been merged, so let’s try reverting the breathe-related changes.

@vyasr
Copy link
Contributor Author

vyasr commented Dec 30, 2024

lol I just came here to say the same. I'll update.

@jameslamb
Copy link
Member

jameslamb commented Dec 30, 2024

Can we please keep the docs and comments I'd added? They would've saved me some time investigating this and I think they'll help the next person looking at something like this.

I really really don't think it's obvious that --exclude / --include can also take file descriptors, or that the those files are being treated as files of patterns for grep.

@vyasr
Copy link
Contributor Author

vyasr commented Dec 30, 2024

Sure I'll just remove my commits and make the change Bradley suggested instead then.

We need conda-forge/breathe-feedstock#66 merged to get new Breathe packages up before CI will pass here.

@vyasr vyasr force-pushed the feat/increase_idle_timeout branch from f8e8129 to 55e2a23 Compare December 30, 2024 20:25
@vyasr
Copy link
Contributor Author

vyasr commented Dec 30, 2024

Great we're finally in the clear on the Breathe front here. The conda environments solved on the latest runs.

@vyasr
Copy link
Contributor Author

vyasr commented Dec 30, 2024

I expect that the builds here will still fail though because I started merging rapids-logger changes 😮‍💨

@vyasr vyasr dismissed trxcllnt’s stale review December 31, 2024 22:19

The review was addressed

@vyasr vyasr merged commit e1168d7 into rapidsai:branch-25.02 Dec 31, 2024
26 checks passed
@vyasr vyasr deleted the feat/increase_idle_timeout branch December 31, 2024 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Improves an existing functionality non-breaking Introduces a non-breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants