-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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: backport config for new CI infrastructure to v0.12 #3642
Conversation
Regarding Windows builds, you should be able to get away with using a current verion of MSVC as long as you have the old Platform SDKs installed, which should enable the correct target platform setting. |
No need to compile with an old MSVC. We ported VS 2015 support all the way back to v0.10. The old Windows build machines are still around if needed. They are just turned off at the moment. |
smartos update: old release machine is available through CI. We need to rewrite the release script so both 32-bit and 64-bit versions are using the same machine though. |
4d9e6b9
to
e6897f5
Compare
added linux support, had to import the |
re excluding unsupported arches for building, I'm trying this approach in Jenkins: if [[ \
( $NODE_LABELS =~ pre-1-release && $(python tools/getnodeversion.py) =~ ^[0] ) \
|| ( $NODE_LABELS =~ post-1-release && $(python tools/getnodeversion.py) =~ ^[^0] ) \
]]; then
make ...
fi So I've labelled release slaves with The wastage is that the repo will still be cloned on all of the release machines, including the pi1's, but they just won't build. I'm sure @orangemocha would do something much more clever like he's done for node-test-pull-request but this is all still contained within a single job, no sub-jobs. Additional TODOs here for the build slaves are:
|
e6897f5
to
9d12c3b
Compare
confirmed OSX .pkg universal binary support works:
|
Also backported the LICENSE from v4.x, in a separate commit |
@rvagg the jenkins slave is already running with a new java. You need to run both 32- and 64-bit builds on the same machine though. The machine is called |
Just to make sure we're on the same page: you can create as many machines as you need, so if you need two, please create two machines. During our conversation about cross-compiling what I meant is that building 32bits releases on a 64bits machine is fine, and using a 32bits machine to do that would probably not bring any improvement. |
@misterdjules yep, that's great. Since 0.10 and 0.12 is built from the same host I think it's better to handle it the same way. The 32-bit machine was rather intended for our ci test runner. |
8f2eaaf
to
a6d256b
Compare
Lookie here: https://nodejs.org/download/nightly/v0.12.8-nightly20151114a6d256be0b/ — almost done! Compare to https://nodejs.org/download/release/v0.12.7/ There are two major items that I'm aware of that still need to be taken care of:
Aside from that, I need help testing the builds and reviewing the commits in this PR. When I tick off the CentOS5 toolchain I'll push through an RC1 for 0.12 and move on to 0.10 which will hopefully be straightforward. Unfortunately node-gyp won't be happy with nightlies or RCs on <= 0.12 so testing won't be simple without a source to point at when compiling addons. |
All done but the SHASUMS changes for promoting, if you are able, please test https://nodejs.org/download/nightly/v0.12.8-nightly20151118a6d256be0b/, I'm particularly interested in older systems because that's the risk we're up against here. I believe we are at parity with the previous infra and how it built these binaries but of course it's possible I'm missing something. I don't really want to find out by pushing out 0.12.8 and having everyone yell at us but maybe we have to if we can't find enough testers for this. When I've done the SHASUMS changes I'm going to move to a proper release proposal and push out an RC.1 for v0.12.8. |
cc486c5
to
83706a9
Compare
Removed the WIP label from this, it's ready to review please @nodejs/build I backported tools/release.sh and updated the server to match so that for <=v0.12 it'll create a SHA-1 SHASUMS.txt and it'll also do a See nodejs/build#261 for the minor updates on the server side to make this work. I've run a test compile using this branch simulating a full v0.12.8, signed and placed @ https://nodejs.org/download/test/v0.12.8/ NOTE THAT THIS IS A FAUX RELEASE, DO NOT USE IN PRODUCTION! I will delete this directory shortly but it exists for review eyes. I'll work on the release proposal and push out a v0.12.8-rc.1, probably today. |
Also, I pulled the entire README.md off master, I needed it for the GPG release keys cause tools/release.sh cares about that but figured that there was no good reason to keep any of the old README. |
83706a9
to
615d2f6
Compare
@@ -188,37 +213,28 @@ maintained libraries. The externally maintained libraries used by Node are: | |||
IN THE SOFTWARE. | |||
""" | |||
|
|||
- Closure Linter is located at tools/closure_linter. Closure's license | |||
follows: | |||
- ESLint is located at tools/eslint. ESLint's license follows: |
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.
eslint
is not used for the v0.12 branch.
doh, I did the updates on my |
@nodejs/collaborators need reviewers here to get an 0.12 out asap. I know there's a lot going on here, feel free to only review the parts you want and provide feedback if you have any. If you don't feel qualified to review all of it but are willing to 'lgtm' on parts of it, please be specific with a qualified 'lgtm' and hopefully we can gather enough to get full coverage of the changes. I'll have another one of these for |
d534289
to
009d374
Compare
""" | ||
|
||
This license applies to parts of Node.js originating from the | ||
https://github.com/joyent/node repository: |
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.
Is the repository correct?
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.
Good point, but since this is what's in master
I think I'd rather contain that bikeshed to a separate PR. Perhaps you could open one with a suggestion? This language actually comes from io.js when there were two separate projects so the whole thing is a bit out of date. Perhaps we should even escalate this to the Foundation board to get proper legal advice so maybe if you don't have concrete suggestions for wording (I don't) just an issue to start the discussion?
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.
@rvagg Even I don't know how exactly this could be done :(
|
||
==== | ||
""" | ||
Copyright Node.js contributors. All rights reserved. |
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.
Same as https://github.com/nodejs/node/pull/3965/files#r45569502:
By making additive changes to the license, are we changing it? If so, it is valid? Have we consulted someone familiar with the topic on that matter?
009d374
to
1a7f49b
Compare
I've removed the LICENSE updates from here and opened #3979 to propose we seek proper legal advice before moving forward. I've opened #3998 to collect any changes folks are noticing are required for the README as I don't think this, or #3965 for v0.10 are the place to make those changes, they need to come from master back. So, leaving those two things aside, are there any objections to this PR? Are we able to muster a couple of lgtms here? It'd be really nice to get v0.12 out tomorrow and this is a blocker. |
OSTYPE := $(shell uname -s | tr '[A-Z]' '[a-z]') | ||
|
||
# Flags for packaging. | ||
BUILD_DOWNLOAD_FLAGS ?= --download=all |
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.
Perhaps not relevant to 0.10/0.12/other versions but I'd like to avoid usage of all
since it could expand in the future (where i'd prefer it being removed). Could we use --download=icu
instead?
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.
/cc @srl295, I agree.
But, it's not really relevant to this PR as it's already on master
, v5.x
and v4.x
, a change should filter down from there
Few minor comments/questions but don't let it hold up a release. LGTM with the added note that its big enough for me to miss something. |
PR-URL: nodejs#3642 Reviewed-By: Johan Bergström <[email protected]>
PR-URL: nodejs#3642 Reviewed-By: Johan Bergström <[email protected]>
PR-URL: nodejs#3642 Reviewed-By: Johan Bergström <[email protected]>
1a7f49b
to
49b4f0d
Compare
Left a couple of minor suggestions, but generally LGTM. It is a fairly big change, let's see how it does through CI: https://ci.nodejs.org/job/node-test-pull-request/832/ |
PR-URL: #3642 Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: Alexis Campailla <[email protected]>
PR-URL: #3642 Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: Alexis Campailla <[email protected]>
PR-URL: #3642 Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: Alexis Campailla <[email protected]>
thanks @orangemocha and @jbergstroem, merging this in to the v0.12.8 release. Next is #3965 when you have the time. |
PR-URL: nodejs/node#3642 Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: Alexis Campailla <[email protected]>
PR-URL: nodejs/node#3642 Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: Alexis Campailla <[email protected]>
PR-URL: nodejs/node#3642 Reviewed-By: Johan Bergström <[email protected]> Reviewed-By: Alexis Campailla <[email protected]>
Once complete, this work should be fairly easily transferable to v0.10 too, I'm starting off here because it's the closest to what we have with the new infra.
The goal is to require as little modification and special-casing of our new infra setup to get the old branches to spit out builds to staging. I'm aiming to try and have an RC build out for at least 0.12 later this week, likely not with all of the items below but I'd like to get the ball rolling with test builds at least. The ideal beyond that is to finish this work within 2 weeks if possible. It's hard to predict how much work is in here and what rabbit holes there are that lay ahead (and how much time I'll actually have to shave these yaks).
TODO:
/cc @nodejs/lts @nodejs/security