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

Document the supported platforms #983

Closed
saghul opened this issue Aug 9, 2016 · 12 comments
Closed

Document the supported platforms #983

saghul opened this issue Aug 9, 2016 · 12 comments
Labels

Comments

@saghul
Copy link
Member

saghul commented Aug 9, 2016

I'd like us to have a SUPPORTED_PLATFORMS.md file with the following content, linked from the README. This is just a starting point, let's work through it and I'll make a proper PR:


Supported platforms

System Support type Supported versions Notes
GNU/Linux Tier 1 Linux >= 2.6.18 with glibc >= 2.5
macOS Tier 1 macOS >= 10.7
Windows Tier 1 Windows >= XP SP1 MSVC 2008 and later are supported
FreeBSD Tier 1 >= 9
AIX Tier 2 ??? Maintainer: @iwuzhere
zOS Tier 2 ??? Maintainer: @jBarz
Linux with musl Tier 2 ???
SunOS Tier 3 ???
MinGW Tier 3 MinGW 32 (from mingw.org) and MinGW-w64
Other Tier 3 N/A

Support types

  • Tier 1: Officially supported and tested with CI. Any contributed patch MUST NOT break such systems. These are supported by @libuv/collaborators
  • Tier 2: Officially supported, but not necessarily tested with CI. These systems are maintained to the best of @libuv/collaborators ability, without being a top priority.
  • Tier 3: Community maintained. These systems may inadvertently break and the community and interested parties are expected to help with the maintenance.

This is for v1.x, I'll adjust accordingly for master / v2.x. I also took the liberty of making SunOS tier 2. Joyent should keep it in check IMHO.

@saghul saghul added the doc label Aug 9, 2016
@bnoordhuis
Copy link
Member

bnoordhuis commented Aug 9, 2016

For linux, I'd put the baseline at kernel 2.6.18 and glibc 2.5. We have centos5 bots in our CI matrix that cover that configuration.

I don't think we ever made any promises w.r.t. freebsd except latest -STABLE. I'm open to extending it to STABLE-1 because that probably covers 95% of the freebsd user base but we don't currently have fbsd9 machines in our matrix.

I'd be perfectly happy relegating solaris to tier 3. Realistically, the only user is Joyent by means of node.js, and if they can't be arsed to put in the effort, I don't see why we should either.

@saghul
Copy link
Member Author

saghul commented Aug 9, 2016

For linux, I'd put the baseline at kernel 2.6.18 and glibc 2.5. We have centos5 bots in our CI matrix that cover that configuration.

Updated.

I don't think we've never made any promises w.r.t. freebsd except latest -STABLE. I'm open to extending it to STABLE-1 because that probably covers 95% of the freebsd user base but we don't currently have fbsd9 machines in our matrix.

I set it to 9, since we support < 10 in v1.x and 9 is still supported until the end of the year.

I'd be perfectly happy relegating solaris to tier 3. Realistically, the only user is Joyent by means of node.js, and if they can't be arsed to put in the effort, I don't see why we should either.

Done.

I'll put up a PR tomorrow so it's easier to comment on.

@bnoordhuis
Copy link
Member

Maybe mention that fbsd9 is tier 2 in that it's not tested regularly but we'll keep it in working shape until the end of the year.

@txdv
Copy link
Contributor

txdv commented Aug 10, 2016

How is the linux musl combination tested? Android?

@saghul
Copy link
Member Author

saghul commented Aug 10, 2016

@txdv Tier 2, it's not tested. It can be easily tested with any of the ubuntu bots by installing musl-tools and exporting some env variables though.

@txdv
Copy link
Contributor

txdv commented Aug 10, 2016

Is there some write up on how to do that?

@bnoordhuis
Copy link
Member

We have an alpine/musl buildbot for node.js now. It could be extended to test libuv as well.

No android so far: nodejs/build#359

@saghul
Copy link
Member Author

saghul commented Aug 10, 2016

Is there some write up on how to do that?

Do what? Compile with musl? Copying my own notes:

First install the musl-gcc wrapper (on Debian):

apt-get install musl-tools

Now set some environment variables:

export CC=musl-gcc
export LINK=musl-gcc
export CFLAGS=-static

(in this case I think you can leave the CFLAGS out, and the resulting binary will be linked with the musl runtime library)

@saghul
Copy link
Member Author

saghul commented Aug 10, 2016

We have an alpine/musl buildbot for node.js now. It could be extended to test libuv as well.

Oh, great! I'll open an issue in nodejs/build then

saghul added a commit to saghul/libuv that referenced this issue Aug 10, 2016
@saghul
Copy link
Member Author

saghul commented Aug 10, 2016

PR: #991

saghul added a commit to saghul/libuv that referenced this issue Aug 10, 2016
saghul added a commit to saghul/libuv that referenced this issue Aug 10, 2016
@llafuente
Copy link

How about having some #ifdef magic to raise some readable errors on unsupported platform, pointing to SUPPORTED_PLATFORMS.md or libuv doc

@saghul
Copy link
Member Author

saghul commented Aug 11, 2016

Not sure we'd like that. It's possible libuv actually works in other platforms (I think HP-UX was sort-of working) so I'd rather try and if compilation fails they'll come.

saghul added a commit to saghul/libuv that referenced this issue Aug 12, 2016
Closes: libuv#983
PR-URL: libuv#991
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
@saghul saghul closed this as completed in be0e24c Aug 12, 2016
saghul added a commit to saghul/libuv that referenced this issue Aug 18, 2016
Closes: libuv#983
PR-URL: libuv#991
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants