-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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: make .tar.xz creation opt-out, fail if no xz #24551
Conversation
d2e0367
to
ba2647a
Compare
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.
LGTM % quastions
/CC @nodejs/build-files |
14eedc0
to
94a2c9c
Compare
OK, second commit on this PR, 94a2c9c8e5, implements the above behaviour suggested by @refack and the checks around the execution of |
Lite-CI (since it's not covered in CI anyway): https://ci.nodejs.org/job/node-test-pull-request-lite-pipeline/1678/ Reviewers, please 👍 if you are in favor of fast-tracking this PR. |
Is it worth asking @nodejs/releasers for a test release build? |
|
The ci-release job finished successfully, the output is at https://nodejs.org/download/nightly/v12.0.0-nightly20181122.2.94a2c9c8e5/ (no |
@refack you made a nightly with this with a weird date string: https://ci-release.nodejs.org/job/iojs+release/3956/ and now we have screwed up nightly version strings which won't parse with tools that expect a predictable format on this directory: Please don't do that. Nightlies are strictly not for testing. I'm going to have to figure out if I can clean this one out now. There's a bunch of good reasons we don't hand out ci-release access liberally, and the ability to make this kind of mess is one of them. |
My bad. What I meant to do was run a P.S. As a postmortem, we should add some validation code to assert our and our tools format assumptions (nodejs/build#1592) |
OK, so this should have failed on AIX but it didn't. The config doesn't have SKIP_XZ=1 for AIX, and the output https://ci-release.nodejs.org/job/iojs+release/nodes=aix61-ppc64/3956/consoleFull doesn't mention anything about |
P.P.S. we also have this one - https://nodejs.org/download/nightly/v11.0.0-nightly201806050300f7c68cffa5de7f0099e3afa95093b0bbbe3c/ |
Ah, so we have this in iojs+release:
That traces back to the addition of the REPLACEME stuff for API docs which is too strict. I tried to fix that back in #12958 but it got stalled with too much discussion, so the |
XZ_COMPRESSION ?= 9e | ||
PKG=$(TARNAME).pkg | ||
MACOSOUTDIR=out/macos | ||
|
||
ifeq ($(SKIP_XZ), 1) | ||
check-xz: |
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.
Maybe it's because check-xz
should be .PHONY
?
Proposed fix in #24575 so we can remove the |
Discovered some problems, not sure why these weren't picked up with test builds in ci-release for the PR. #24841 |
@nodejs/build FYI this is now in iojs+release for the It's building successfully now: Results for this test going to https://nodejs.org/download/test/v12.0.0-test201812040ba0e0fd89/ |
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: nodejs#24551 PR-URL: nodejs#24841 Refs: nodejs#24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: #24551 PR-URL: #24841 Refs: #24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: #24551 PR-URL: #24841 Refs: #24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: #24551 PR-URL: #24841 Refs: #24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24575 Refs: #24551 Refs: #12958 Refs: #12957 Refs: #8325 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: nodejs#24575 Refs: nodejs#24551 Refs: nodejs#12958 Refs: nodejs#12957 Refs: nodejs#8325 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: nodejs#24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: nodejs#24551 PR-URL: nodejs#24841 Refs: nodejs#24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: #24551 PR-URL: #24841 Refs: #24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: #24551 PR-URL: #24841 Refs: #24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24551 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Richard Lau <[email protected]>
5e80a9a introduced check-xz, using `[[ .. ]]` syntax, but this is a bash builtin and some platforms default to `sh` when doing `$(shell ...)` in Makefiles. Fix is to make it sh friendly. Ref: #24551 PR-URL: #24841 Refs: #24551 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24575 Refs: #24551 Refs: #12958 Refs: #12957 Refs: #8325 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]> Reviewed-By: Richard Lau <[email protected]>
PR-URL: #24575 Refs: #24551 Refs: #12958 Refs: #12957 Refs: #8325 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Daniel Bevenius <[email protected]> Reviewed-By: Richard Lau <[email protected]>
During a recent release, the 8.x before last I think, we discovered belatedly that the macos release machine didn't have
xz
installed on it. This change was discussed (somewhere, but I know @MylesBorins was involved) to help resolve such oversights in future.XZ
toHAS_XZ
and make it 0=no and 1=yesSKIP_XZ
as a possible user-supplied value, defaulting to 0=noHAS_XZ=1
orSKIP_XZ=1
on any release build that produces a tarball of some kind and fail if the system doesn't havexz
andSKIP_XZ=1
hasn't been supplied.HAS_XZ=1
andSKIP_XZ=0
(i.e. we havexz
and haven't explicitly opted to skip)This would get backported to active lines and we'd have to put a
SKIP_XZ=1
for AIX builds (only).I've tested the main permutations of this and it seems to work fine. I'd appreciate some experienced Makefile eyes though, @nodejs/build @bnoordhuis @joyeecheung?