-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
stdlib-git: improve integration with git-external #30075
Conversation
@@ -1,2 +1,2 @@ | |||
PKG_BRANCH = master | |||
PKG_SHA1 = d305e82fd353cb67e8a064800b9972ee1cb7b5e0 | |||
PKG_SHA1 = f9180e48b27a843aeee864db814dce57cb296b9b |
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.
Why is this changing the Pkg sha?
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 had the wrong SHA1 from what was intended here. This is now the whole commit hash, while previously it only contained the tree hash for this commit. This var is (intentionally) allowed to specify any git object (incl. branch, tag, etc.), but typically it should have the commit SHA, since that's the most general and easiest to work with (e.g. what git usually presents you).
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.
But why are the checksums also changed? Shouldn't the commit you set here produce the same tarball?
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.
The name here gets inserted by GitHub as part of the tarball file contents (JuliaLang-Pkg.jl-f9180e4/
vs. JuliaLang-Pkg.jl-d305e82/
)
Previously some of the work was shifted, leading to awkward extraneous copies and preventing usage of DEPS_GIT=1 mode (the main point of this script). There also seemed to be unexpected failure modes in the current usage where the files in stdlib/Pkg would routinely go missing for me. I don't know the source of those, but I hope that this will fix it (because it makes more of the state immutable). Also noticed some issues with existing scripts (expanding variables at unintended points, not rebuilding on some changes), and fixed those.
c1fe5aa
to
c955874
Compare
SRCDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) | ||
JULIAHOME := $(abspath $(SRCDIR)/..) | ||
SRCCACHE := $(abspath $(SRCDIR)/srccache) | ||
BUILDDIR := $(SRCCACHE) | ||
BUILDDIR := . |
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.
Can we not cache the Pkg-$COMMITSHA
folders in SRCCACHE instead of poisoning /stdlib/
?
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.
If you want an out-of-tree build, you should do an out-of-tree build. Some Packages have a tendency to mutate their own contents (usually just a deps/
folder), so as a whole that probably more nearly makes them build artifacts than source code. But anyways, this variable is just documenting where build artifacts must go (which must not be the same as srccache where source inputs should go); actually deciding whether something is a shared, immutable input or a build artifact is up to the rest of the Makefile.
@@ -1,2 +1,2 @@ | |||
PKG_BRANCH = master | |||
PKG_SHA1 = d305e82fd353cb67e8a064800b9972ee1cb7b5e0 | |||
PKG_SHA1 = f9180e48b27a843aeee864db814dce57cb296b9b |
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.
But why are the checksums also changed? Shouldn't the commit you set here produce the same tarball?
Related: #30088, in which the checksums are incorrect. |
Just to clarify some things that were not clear to me but which I just got clear on talking with @vtjnash:
|
This seems to have broken things. Trying to add
I also got
after doing a Pkg command. |
The Pkg package shouldn't be able to see this change, but it certainly might expose existing issues (either normalizing with FWIW, I don't see the issue you describe (although it theoretically would happen if you haven't deleted the |
The problem with having both |
|
Previously some of the work was shifted, leading to awkward extraneous copies and preventing usage of DEPS_GIT=1 mode (the main point of this script). There also seemed to be unexpected failure modes in the current usage where the files in stdlib/Pkg would routinely go missing for me. I don't know the source of those, but I hope that this will fix it (because it makes more of the state immutable). Also noticed some issues with existing scripts (expanding variables at unintended points, not rebuilding on some changes), and fixed those. (cherry picked from commit ef50e25)
Previously some of the work was shifted, leading to awkward extraneous copies and preventing usage of DEPS_GIT=1 mode (the main point of this script). There also seemed to be unexpected failure modes in the current usage where the files in stdlib/Pkg would routinely go missing for me. I don't know the source of those, but I hope that this will fix it (because it makes more of the state immutable). Also noticed some issues with existing scripts (expanding variables at unintended points, not rebuilding on some changes), and fixed those. (cherry picked from commit ef50e25)
Previously some of the work was shifted, leading to awkward extraneous copies and preventing usage of DEPS_GIT=1 mode (the main point of this script). There also seemed to be unexpected failure modes in the current usage where the files in stdlib/Pkg would routinely go missing for me. I don't know the source of those, but I hope that this will fix it (because it makes more of the state immutable). Also noticed some issues with existing scripts (expanding variables at unintended points, not rebuilding on some changes), and fixed those. (cherry picked from commit ef50e25)
Previously some of the work was shifted, leading to awkward extraneous copies and preventing usage of DEPS_GIT=1 mode (the main point of this script). There also seemed to be unexpected failure modes in the current usage where the files in stdlib/Pkg would routinely go missing for me. I don't know the source of those, but I hope that this will fix it (because it makes more of the state immutable). Also noticed some issues with existing scripts (expanding variables at unintended points, not rebuilding on some changes), and fixed those. (cherry picked from commit ef50e25)
Previously some of the work was shifted, leading to awkward extraneous copies
and preventing usage of DEPS_GIT=1 mode (the main point of this script).
There also seemed to be unexpected failure modes in the current usage
where the files in stdlib/Pkg would routinely go missing for me. I don't know
the source of those, but I hope that this will fix it (because it makes more of
the state immutable).
Also noticed some issues with existing scripts (expanding variables at
unintended points, not rebuilding on some changes), and fixed those.