Skip to content

PPC platforms as part of standard release #205

Closed

Description

@mhdawson

I'd like to list the things that need to get done so that we can get to the point where the PPC platforms are part of the standard release.

What I have on the list so far is

  1. Release machines. Need an additional LE and BE machine to be used for releases only
  2. Additional test machines. Need to have 2 LE and 2 BE machines, currently there is only 1 of each
  3. Need to add testing on PPC to node-test-pull-request
  4. Tests passing (they all do now except for test-tick-processor (test-tick-processor failures on PPC node#2957)

Can people chime in on what else I'll need to add to this list.

Activity

  1. rvagg commented on Sep 30, 2015

    @rvagg
    Member

    sounds reasonable to me, what strings would we use in binary names for these? ppcbe and ppcle? what is standard practice for these?

  2. bnoordhuis commented on Sep 30, 2015

    @bnoordhuis
    Member

    ppc, ppc64, ppcel and ppc64el?

    Does little-endian 32 bits PowerPC exist? I don't think I've ever seen it.

  3. mhdawson commented on Sep 30, 2015

    @mhdawson
    MemberAuthor

    There is no 32bit LE version only 64 bit. For both BE and LE initially we'd only be looking to include 64 bit. 32 bit does not exist for LE and on BE it is lower priority due to the level of use.

    I'd suggest we use these names ppc64 and ppcle64

  4. bnoordhuis commented on Sep 30, 2015

    @bnoordhuis
    Member

    Interesting how I made the same typo twice, I intended to write 'ppc64le'.... Anyone have data on what is more common, ppcle64 or ppc64le? I've seen both used.

  5. jbergstroem commented on Sep 30, 2015

    @jbergstroem
    Member

    Wikipedia and some linux dists seems to point to ppc64le.

  6. mhdawson commented on Sep 30, 2015

    @mhdawson
    MemberAuthor

    Talked to our lead from the power side and it should be ppc64le

  7. mhdawson commented on Oct 8, 2015

    @mhdawson
    MemberAuthor

    Added 2 additional machines to the CI, one for BE and one for LE so we have the machines needed on the regression test side. They are already up and running in the CI, last step is to just add to the ansible inventory - PR here - mhdawson@e6e3747

    Will need to get 2 more for releases

  8. mhdawson commented on Oct 13, 2015

    @mhdawson
    MemberAuthor

    I now have 2 additional machines for releases. What is the process of getting them configured/added to wherever they need to go ? @rvagg Johan suggested you'd probably be the right person to answer that

  9. rvagg commented on Oct 14, 2015

    @rvagg
    Member

    first step is getting them into nightly builds, I'm going to work on that this week and will ping you when I'm onto it

  10. mhdawson commented on Nov 6, 2015

    @mhdawson
    MemberAuthor

    Is getting them into the nighties something I could help out with ?

  11. rvagg commented on Nov 14, 2015

    @rvagg
    Member

    @mhdawson: first thing I'm noticing is that they're taking a very long time to clone the repo, could you put a bare mirror on them to speed it up please?

    mkdir /home/iojs/git/
    git clone https://github.com/nodejs/node.git --mirror /home/iojs/git/io.js.reference
    

    the job is set up to use refs found in that location when cloning so it ends up only getting any newer commits for each build.

    Next, they are missing $ARCH and $DESTCPU environment variables:

    https://ci.nodejs.org/job/iojs+release/275/nodes=ppcle-ubuntu1404-release-64/console

    ARCH is mainly used in determining the filename (i.e. we have x86, x64, armv6l, etc.) while DESTCPU is what configure cares about, often they are the same.

    This can be done in the startup configuration for the service somewhere (@jbergstroem has stronger opinions on what the correct way to do this is than me), or even in the slave config in Jenkins were you set custom environment variables.

    I see we allow ppc64 and ppc in both configure and Makefile but we have both ppcbe and ppcle machines and both are 64-bit, what is the intention here? What binaries are you wanting to produce for download and what do you think their names should be?

  12. mhdawson commented on Nov 16, 2015

    @mhdawson
    MemberAuthor

    We only have 64 bit machines and based on the conversation that was started when I investigated getting a second set for 32 bit to be consistent with other architectures the feedback from the Power team was that 64 bit is what matters (it does not exist at all for LE). Based on that I was looking to have only the 64 bit BE and 64 LE platforms as part of the standard releases.

    The names should be ppc64le and ppc64

  13. mhdawson commented on Nov 16, 2015

    @mhdawson
    MemberAuthor

    Looking at the download links as an example I was thinking along these lines:

    https://nodejs.org/dist/v4.2.2/node-v4.2.2-linux-ppc64.tar.gz
    https://nodejs.org/dist/v4.2.2/node-v4.2.2-linux-ppc64le.tar.gz

    Is that what you were looking for in terms of the naming. Next I'll have to see how that works out in terms of what we want for $DESTCPU and $ARCH

  14. mhdawson commented on Nov 16, 2015

    @mhdawson
    MemberAuthor

    I think what we want is:

    BE:
    DESTCPU = ppc64
    ARCH = ppc64

    LE:
    DESTCPU=ppc64
    ARCH = ppc64le

    I see at least ARCH is set as environment variables for Windows in jenkins so I'll so ahead and do that and we can update if Johan suggests a better way

    I'll add those

  15. 24 remaining items

  16. mhdawson commented on Jan 28, 2016

    @mhdawson
    MemberAuthor

    The release after the security one sounds good.

    v4 and later should be good to go.

  17. mhdawson commented on Feb 17, 2016

    @mhdawson
    MemberAuthor

    Seems like 4.3.1 went out without the LE builds. Can we confirm they will be part of the 4.4 planned as the next release ?

  18. rvagg commented on Feb 18, 2016

    @rvagg
    Member

    This is currently commented out in iojs+release:

    # if [[ $NODE_LABELS =~ ppc && $disttype =~ release|custom ]]; then
    #   echo "Not building $disttype on PPC slave"
    #   exit 0
    # fi
    

    But https://ci.nodejs.org/job/iojs+release/404/nodes=ppcle-ubuntu1404-release-64/console seems to be the job for 4.3.1 and it went out with:

    Not building release on PPC slave
    

    So did someone update this in the meantime?

    @mhdawson v5 is likely next Tuesday and that'll be our next chance to test, I'll try and remember to watch for this but you might need to follow-up. Even if it fails we can add a build after the fact, it's just a tiny bit messy and I'm not sure it's a great idea on an LTS in case people are relying on the exact SHASUMS* files as they are when we announced it (who knows how people use these things in the wild).

  19. MylesBorins commented on Feb 18, 2016

    @MylesBorins
    Contributor

    @rvagg I believe that @jbergstroem updated that just today so we can try to get ppc up and running with the v4.4.0-rc

  20. jbergstroem commented on Feb 18, 2016

    @jbergstroem
    Member

    @rvagg that'd be me; I did post-release after talking to @thealphanerd and seeing @mhdawson's update here.

  21. mhdawson commented on Feb 22, 2016

    @mhdawson
    MemberAuthor

    Sniff tested the v4.4.0-rc by starting repl and installing/building native module. Looks ok.
    In terms of the download page do we need to co-ordinate with anybody else to have a row added for ppc le linux ?

  22. jbergstroem commented on Feb 22, 2016

    @jbergstroem
    Member

    I've tested it on one of the ppcle machines.

  23. rvagg commented on Feb 23, 2016

    @rvagg
    Member

    need to bring @nodejs/website into this discussion

    tbh I'm not convinced we should be bothering to advertise this on the downloads page, it's already kind of cluttered as it is, even the "SunOS" option is questionable. https://nodejs.org/metrics/summaries/os.png - only 200,000 downloads of those binaries since April 2014 and most of those would be mirrors.

    On one hand it's nice to show how many platforms and architectures we support, that's a great positive message, on the other hand, it complicates the options and muddies the water for people who just want to download Node.js! "I've got a Mac, should I be using the PPC binaries or is that not a thing now?". "Hey, I have an ancient Mac, can I get Node running on it with these!?".

    Maybe this is just about reorganising that downloads widget but I'm a -0 on expanding it atm.

  24. jbergstroem commented on Feb 23, 2016

    @jbergstroem
    Member

    Fwiw I'm with @rvagg. Exotic os'es doesn't need to be part of the full listing (I guess we could define what exotic means as well).

  25. mhdawson commented on Feb 23, 2016

    @mhdawson
    MemberAuthor

    I can see having the most common ones up front but I think we need links to the others which are reasonably easy to find. Out of curiosity what are the download stats for arm ? It doesn't seem right to have the PPC Linux downloads to be the only ones excluded from the main list.

    I think confusion for MAC owners should be covered by making sure the name has Linux in it. Something like PPC Linux

  26. jasnell commented on Feb 23, 2016

    @jasnell
    Member

    I'd like to see us include all the download options but put the less common ones under a "More options" section or some such.

  27. rvagg commented on Feb 24, 2016

    @rvagg
    Member

    I suspect we're all generally on the same page here and this is just a matter of design, or organisation. More common options should be super easy to select, advanced options should be separated from them in some way that lets advanced users select those.

    ARM stats can be found here: https://nodejs.org/metrics/summaries/arch.png, I'm surprised that armv8 is as high as it is but they are all still pretty low and I'd +1 moving them down to an advanced section too until they start to become a more common download option (stick a .csv on the end of that URL to look at actual data, I can't see arm trends from the graph view). I'm not sure how to deal with them as a block though, if taken as a whole the numbers are decent but if it's only armv7 that trends upward do we still keep them together as a group?

    @nodejs/website I think we need some help on coming up with a download table solution that provides us with a common grouping and an advanced grouping.

  28. mhdawson commented on Feb 24, 2016

    @mhdawson
    MemberAuthor

    Just to confirm I agree with @rvagg's last comment, I'm not sure I'd use "advanced" but the two tier approach makes sense to me. In terms of Arm I think I'd want to keep them together until that causes problems visually. The same would go with power once we get BE included. In both cases if somebody is looking for a particular architecture I think finding them in the same place makes sense as long as it does not compromise how the page looks.

  29. mhdawson commented on Apr 1, 2016

    @mhdawson
    MemberAuthor

    PPC LE is now in the standard releases. Going to close this in favor of #377 where we will capture progress on doing the same for BE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions