-
Notifications
You must be signed in to change notification settings - Fork 30.2k
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
Process for determining supported platforms #8265
Comments
Another platform that I think was added recently to the CI is docker-alpine Linux. I'm having trouble with it because it doesn't build with current V8's ToT and I don't know :
|
Regarding Alpine. That was added by request from the @nodejs/docker WG. There is a high demand for a very small Node.js Docker Image based on Alpine. The Docker WG did not feel comfortable providing such an image before we knew that Node.js did in fact support the Alpine distribution. @ncopa has been essential to getting the tests to pass on Alpine in the past (#5099 #5056). Other related threads regarding Node.js on Alpine: |
I'm keen on the idea of allowing any platform to be supported as long as:
When a new platform is added, it should be properly advertised with an issue in the main repo (this one) with a mandatory @-mention to the collaborators team and reference to the support team and current support status. Of course, CTC should have the last word about it, and be able to decide at any moment that any platform should be added or removed. |
There really ought to be an official list of supported platforms, perhaps maintained in the README.md. Additions to that list would be semver-minor, removals would be semver-major. I'm definitely +1 on @joaocgreis' requirements. |
@jasnell I agree that supported platforms should last for an entire major version, but why would additions to that list require a semver-minor? |
An update from the @nodejs/docker WG regarding Alpine (no bearing on process): I've been experimenting with ways of shipping a minimal docker image without needing to use Alpine etc. It is looking like it is possible using This would have the advantage of not requiring upstream to support libmusl. |
@Starefossen ... simply to raise the visibility of adding a new platform. There's extremely little process around a semver-minor and they can go out in current versions without any problem. |
I think we should be very deliberate about which platforms are added to the 'supported' list, especially given that removing them is going to be semver major. I think it is okay to add experimental/WIP platforms to the CI, but I think these should be very clearly marked as 'experimental'. Failing CIs end up causing a large amount of churn. |
Note PR to fix the referenced AIX issue is here:, #8272. Note that until we have as many runs as we get from having the regular launches some intermittent issues like this might not surface so there might also be some churn when adding something new. |
This has been on my agenda forever :( would platform imply architecture and os combos or something else? |
I think yes. |
Also, toolchain; gcc vs clang - perhaps lowest glibc version supported and so on? Just adding for discussion. |
Proposal from the Build WG meeting this week goes something like this:
The trick here is the technical pieces to have different levels of support. Ideally we'd be able to prevent failures on the non-official platforms from causing a red/failed build. Perhaps we can reuse the yellow/flaky stuff somehow. The Build WG has some ideas here and some TODOs for experimentation on how to make this work. The other path is to simply deal with this complexity through the new github bot that's going to be reporting all sorts of stuff to github and may even mean collaborators don't need to even touch or look at Jenkins. |
This happened recently in libuv - libuv/libuv@be0e24c. It might be worth at least referencing since it could be tricky for Node to support platforms that libuv does not. |
Moving to nodejs/build#488 for now, will come back to |
There is now a draft proposal from the build group available here: https://gist.github.com/jbergstroem/8a4a5b6a602aacc96eb8a171698c324c. Comments and/or discussion lives in nodejs/build#488. The idea is to put this in front of CTC next week (week of sept 26th). |
As far as I know, we don't have a formal process to determine what platforms are officially supported and what platforms are not. In this context, I'm using "supported" to mean "tested in CI".
We currently have a situation where CI has not been green for days because of the addition of AIX. AIX currently fails to build with some frequency. Hopefully that will be resolved soon, making this specific pain point go away. But I think it may be worth hammering out some larger issues:
/cc @nodejs/build @nodejs/ctc @nodejs/testing
The text was updated successfully, but these errors were encountered: