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

build: pack checksums into fewer files, by target #38963

Closed
wants to merge 2 commits into from

Conversation

vtjnash
Copy link
Sponsor Member

@vtjnash vtjnash commented Dec 22, 2020

Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files.
This reduces from ~1000 files to ~40, and makes it feel like this is one
of my more impressive diffs. 😂

@vtjnash vtjnash added domain:building Build system, or building Julia or its dependencies backport 1.6 Change should be backported to release-1.6 labels Dec 22, 2020
Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files
Disables progress bars, which are often illegible anyways with parallel
make invocations.
# Add this guy to his project target (e.g. `make -f contrib/refresh_checksums.mk openblas`)
$(1): checksum-$(1)-$(2)-$(3)
# Add a dependency to the pack target
# TODO: can we make this so it only adds an ordering but not a dependency?
Copy link
Sponsor Member

Choose a reason for hiding this comment

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

I believe this TODO has been satisfied.

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

any suggestion on how to do it?

contrib/refresh_checksums.mk Show resolved Hide resolved
CURL_OPTS="-fkL --connect-timeout $TIMEOUT -y $TIMEOUT"
FETCH_OPTS="-T $TIMEOUT"
WGET_OPTS="-nv --no-check-certificate --no-use-server-timestamps --tries=1 --timeout=$TIMEOUT"
CURL_OPTS="-fkLSs --connect-timeout $TIMEOUT -y $TIMEOUT"
Copy link
Sponsor Member

Choose a reason for hiding this comment

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

I'm 70% against making these completely silent; on slow connections it may look like the build is needlessly frozen.

Copy link
Sponsor Member Author

Choose a reason for hiding this comment

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

we already silence much of what happens in deps. I contemplated making it conditional on the presence of --jobserver-fds= (or -j) in MAKEFLAGS, but didn't seem worth it

Copy link
Sponsor Member

Choose a reason for hiding this comment

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

Most of what we silence doesn't depend on network speed though; A users build could potentially freeze for 2-3 minutes due to being stuck downloading an LLVM build; I think we should continue to print out download status reports to stdout.

deps/tools/jlchecksum Show resolved Hide resolved
deps/tools/jlchecksum Show resolved Hide resolved
Copy link
Sponsor Member

@staticfloat staticfloat left a comment

Choose a reason for hiding this comment

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

With the exception of the curl printing, I'm happy to merge this. Nice improvement!

vtjnash added a commit that referenced this pull request Dec 26, 2020
Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files
@vtjnash
Copy link
Sponsor Member Author

vtjnash commented Dec 26, 2020

Merged in 8af7a04

@vtjnash vtjnash closed this Dec 26, 2020
@vtjnash vtjnash deleted the jn/checksum-packs branch December 26, 2020 19:22
@KristofferC KristofferC removed the backport 1.6 Change should be backported to release-1.6 label Dec 27, 2020
KristofferC pushed a commit that referenced this pull request Dec 27, 2020
Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files

(cherry picked from commit 8af7a04)
staticfloat pushed a commit that referenced this pull request Jan 15, 2021
Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files

(cherry picked from commit 8af7a04)
ElOceanografo pushed a commit to ElOceanografo/julia that referenced this pull request May 4, 2021
Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files
staticfloat pushed a commit that referenced this pull request Dec 23, 2022
Hopefully this should preserve the ability to generate these in parallel
(and keep a clean tree) and prevent conflicts when updating different
deps targets, while consolidating any related files

(cherry picked from commit 8af7a04)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain:building Build system, or building Julia or its dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants