build: make .tar.xz creation opt-out, fail if no xz#24551
build: make .tar.xz creation opt-out, fail if no xz#24551rvagg wants to merge 2 commits intonodejs:masterfrom
Conversation
d2e0367 to
ba2647a
Compare
|
/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 |
Makefile
Outdated
There was a problem hiding this comment.
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: #24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: #24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: #24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: nodejs#24575 Refs: nodejs#24551 Refs: nodejs#12958 Refs: nodejs#12957 Refs: nodejs#8325 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: nodejs#24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: #24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: #24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
PR-URL: #24551 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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 <rtrott@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com>



During a recent release, the 8.x before last I think, we discovered belatedly that the macos release machine didn't have
xzinstalled on it. This change was discussed (somewhere, but I know @MylesBorins was involved) to help resolve such oversights in future.XZtoHAS_XZand make it 0=no and 1=yesSKIP_XZas a possible user-supplied value, defaulting to 0=noHAS_XZ=1orSKIP_XZ=1on any release build that produces a tarball of some kind and fail if the system doesn't havexzandSKIP_XZ=1hasn't been supplied.HAS_XZ=1andSKIP_XZ=0(i.e. we havexzand haven't explicitly opted to skip)This would get backported to active lines and we'd have to put a
SKIP_XZ=1for 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?