-
-
Notifications
You must be signed in to change notification settings - Fork 23
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
Update patches for 1.7.0 #43
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
It looks like bazel doesn't like the following:
as it results in
|
Windows looks even worse. I'd suggest to leave the bazel version untouched for now, unless absolutely necessary for upstream. |
I had tried rebasing the patches for 1.7.0 myself, but ran into other problems. So far, @vnlitvinov and @krfricke haven't responded for comment. I appreciate that you're giving this a shot - hopefully you get further than I do and we can unblock this! |
My guess is this is too new Bazel version (I see upstream updated to 4.2.1, but maybe they did it later than 1.7.0 this tries to tackle). As for Windows - it seems either directory layout was changed, or repository, or symlink->junction replacement was unsuccessful. Symlinks in git under Windows do not behave well... |
- bazel_version = tuple(map(int, bazel_version_digits)) | ||
- if bazel_version < SUPPORTED_BAZEL: | ||
- logger.warning("Expected Bazel version {} but found {}".format( | ||
- ".".join(map(str, SUPPORTED_BAZEL)), bazel_version_str)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suggest you add the removal of SUPPORTED_BAZEL
variable in this patch, too. It would make it so next time upstream changes Bazel version we'll have a merge conflict here which would prompt us to update the Bazel version in the recipe.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SUPPORTED_BAZEL is still needed in the setup.py. Also I'm removing that bazel version check code in the upstream as well: ray-project/ray#20990
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My idea with removing the declaration was to create a conflict here in conda-forge when required Bazel version changes, so meta.yaml
would be updated accordingly (kind of semi-automatic version check).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what about purposely creating a conflict when Bazel required version changes? so meta.yaml
could be updated when this happens
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to defer it to a separate PR: we need a solution not just for bazel but for all dependencies in meta.yaml. Currently I need to manually update them and make sure they are consistent with the versions in the upstream. We need a better solution here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consistency is semi-automatic with current solution - a merge conflict happens when something is changed in setup.py
which touches the dependencies. Ideally this should be fully automatic, I totally agree, but I don't have better solution yet.
It would be awesome if you could come up with any better approach, I would gladly copy it to other conda packages I maintain 🙃
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not so worried about patching this out. If the recipe builds and passes the tests, then - ipso facto - the bazel version wasn't doing too badly. OTOH, if we're using a bazel version that's really not supported, things will fail loudly anyway.
That said, I don't think it's a bad idea what @vnlitvinov is suggesting - explicit is better than implicit, and as such we'd get a clear reminder (through a rebase conflict) if the supported bazel version changed. But it doesn't have to be done for this PR, IMO, let's just try to keep moving through the queue first.
Thanks for pushing on this BTW, @jjyao! :)
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipe:
For recipe:
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe:
|
@h-vetinari I faced the same issue as you One thing I noticed is that the python version in build_artifacts is python 3.10 not the target python version (3.6 - 3.9).
Also I found the following in the output:
I'm also reverting the bazel version to the old one and let's see if it works. |
Even if I reverted the bazel version, it's still the same error |
I think I found the issue: The failure is from https://github.com/grpc/grpc/blob/master/third_party/py/python_configure.bzl:
The way how they check whether the command succeeds or not is by checking if stderr is empty (instead of exit code). With python 3.10,
in stderr which caused the command to fail. |
@conda-forge-admin, please rerender |
…nda-forge-pinning 2021.12.21.14.59.39
Hmm, seems after rerender, the multi variant build is removed. Any ideas? |
Symlink support is already enabled I believe, but symlinks on Windows are a very funky business. I had made some post-checkout replacements with junctions if you take a look at If this patching is not an option, I think disabling streaming-related things is the best way to go, especially if they're going to be dropped soon - no point in fixing what's going to be removed very soon. |
Hmm... The code you showed already exists in 1.7 not sure why it's not working. |
This time it looks the |
Oh, yea |
At least we confirmed that we thought conda environment automatically sets IS_AUTOMATED_BUILD but it's not. |
Hmm... this symlink should be there. |
I have noticed just now that this line is incorrect: It uses single quotes which Windows |
@vnlitvinov Are you saying we should do Also for our windows pip package, we don't run |
It should be easier for the reader if it's written as I don't know about configuring |
I changed the
@jaimergp any ideas? |
Maybe something to do with it's an error during the git clone, but no idea why. Why do you need git as a source, instead of the tarball? |
I'm trying to see if git clone fixes the symlink issue for us on windows. I'll revert back to tarball. |
Finally, everything has passed. Could we merge it? @h-vetinari @vnlitvinov @krfricke |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finally! Congratulations to everyone involved!
- r"ray\new_dashboard": "../../dashboard", | ||
+ r"ray\dashboard": "../../dashboard", | ||
r"ray\rllib": "../../rllib", | ||
r"ray\streaming": "../../streaming/python/", | ||
} | ||
@@ -353,7 +353,7 @@ def replace_symlinks_with_junctions(): | ||
os.path.join(os.path.dirname(path), target)) | ||
logger.info("Setting {} -> {}".format(link, target)) | ||
subprocess.check_call( | ||
- f"MKLINK /J '{os.path.basename(link)}' '{target}'", | ||
+ f'MKLINK /J "{os.path.basename(link)}" "{target}"', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and these changes should also be upstreamed, I think
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes.
@jjyao thanks again for pushing this, I'll leave a day or so for others to review and, unless there would be no objections, I'm planning to merge this in ~24h. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently travelling without a laptop, but the bulk looks good, and I'm happy with a green CI already. 👍
Since the commits are almost all named the same, I'd be in favour of a squash merge (or creating a more reasonable commit history, for example: all changes in recipe/
, and a separate commit for the feedstock rerender)
host: | ||
- nodejs | ||
- nodejs <16.6.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will need to be lifted again sometime soon-ish.
@@ -6,3 +6,8 @@ cudnn: # [linux64] | |||
- undefined # [linux64] | |||
cdt_name: # [linux64] | |||
- cos7 # [linux64] | |||
|
|||
c_compiler: # [win] | |||
- vs2019 # [win] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to make sure (after adding, reverting, etc.), this now upgrades the windows compilers. I don't mind doing that (actually, even in favour since the death of vs2017 is hastened greatly by msft currently), but just wanted to check if this is now the intention.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's intentional since upstream also uses vs2019.
Windows cmd.exe doesn't interpret single quote correctly. See conda-forge/ray-packages-feedstock#43
Checklist
0
(if the version changed)conda-smithy
(Use the phrase@conda-forge-admin, please rerender
in a comment in this PR for automated rerendering)