XMLWordPrintable

    Details

    • Similar Issues:
    • Epic Link:
    • Sprint:
      Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1

      Description

      Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

      Approach

      • General things to validate
        • Ensure "run scripts" still work with yarn
        • maven-frontend-plugin supports yarn natively, so we just need to switch this over.
        • Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless? Check out "yarn link"
      • JDL Next
        • Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
        • Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
      • blueocean-core-js
        • Do the same as above
        • At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
      • blueocean-web, dashboard and personalization
        • Port these over to yarn as well
      • Test with Artifactory

        Attachments

          Issue Links

            Activity

            michaelneale Michael Neale created issue -
            michaelneale Michael Neale made changes -
            Field Original Value New Value
            Rank Ranked higher
            cliffmeyers Cliff Meyers made changes -
            Description Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.  Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- What's the best way to get yarn installed? I believe it can be installed via npm, but it would be nice if we could eliminate that dependency. Might require some extended work in maven-frontend-plugin. There was discussion about that when yarn was announced but the maintainer said it wasn't on his radar. Would it be worth implementing that and possibly contributing it back?
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless?
            - JDL Next
            -- Can evaluate how easy Yarn is to use for standalone JS projects
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            cliffmeyers Cliff Meyers made changes -
            Description Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- What's the best way to get yarn installed? I believe it can be installed via npm, but it would be nice if we could eliminate that dependency. Might require some extended work in maven-frontend-plugin. There was discussion about that when yarn was announced but the maintainer said it wasn't on his radar. Would it be worth implementing that and possibly contributing it back?
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless?
            - JDL Next
            -- Can evaluate how easy Yarn is to use for standalone JS projects
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- What's the best way to get yarn installed? I believe it can be installed via npm, but it would be nice if we could eliminate that dependency. Might require some extended work in maven-frontend-plugin. There was discussion about that when yarn was announced but the maintainer said it wasn't on his radar. Would it be worth implementing that and possibly contributing it back?
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless?
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            cliffmeyers Cliff Meyers made changes -
            Description Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- What's the best way to get yarn installed? I believe it can be installed via npm, but it would be nice if we could eliminate that dependency. Might require some extended work in maven-frontend-plugin. There was discussion about that when yarn was announced but the maintainer said it wasn't on his radar. Would it be worth implementing that and possibly contributing it back?
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless?
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- What's the best way to get yarn installed? I believe it can be installed via npm, but it would be nice if we could eliminate that dependency. Might require some extended work in maven-frontend-plugin. There was discussion about that when yarn was announced but the maintainer said it wasn't on his radar. Would it be worth implementing that and possibly contributing it back?
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless? Check out "yarn link"
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            cliffmeyers Cliff Meyers made changes -
            Assignee Cliff Meyers [ cliffmeyers ]
            cliffmeyers Cliff Meyers made changes -
            Epic Link JENKINS-35749 [ 171790 ]
            cliffmeyers Cliff Meyers made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            cliffmeyers Cliff Meyers made changes -
            Description Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- What's the best way to get yarn installed? I believe it can be installed via npm, but it would be nice if we could eliminate that dependency. Might require some extended work in maven-frontend-plugin. There was discussion about that when yarn was announced but the maintainer said it wasn't on his radar. Would it be worth implementing that and possibly contributing it back?
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless? Check out "yarn link"
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- maven-frontend-plugin supports yarn natively, so we just need to switch this over.
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless? Check out "yarn link"
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            cliffmeyers Cliff Meyers made changes -
            Description Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- maven-frontend-plugin supports yarn natively, so we just need to switch this over.
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless? Check out "yarn link"
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well

            Given the increasing tempo of build failures to to npm, the challenges with shrinkwrap and the inability to use mirrors, it may be time to evaluate the use of yarn as an alternative.

            Approach
            - General things to validate
            -- Ensure "run scripts" still work with yarn
            -- maven-frontend-plugin supports yarn natively, so we just need to switch this over.
            -- Do local installs work nicely? (for rapid development). Can we obviate or at least better integrate w/ slink so rapid dev is more seamless? Check out "yarn link"
            - JDL Next
            -- Need to determine if/how a Yarn-published module is able to freeze its dependencies when pulled in via npm (since there is no shrink, probably not, but maybe there's some magic)
            -- Publish some beta JDL's and then pull them in via a blueocean-plugin PR to ensure ATH passes and things work, etc
            - blueocean-core-js
            -- Do the same as above
            -- At this point perhaps we add JDL as a peerDep and avoid the need to republish core-js each time new JDL is published (large pain point)
            - blueocean-web, dashboard and personalization
            -- Port these over to yarn as well
            - Test with Artifactory

            Hide
            jglick Jesse Glick added a comment -

            Is this intended to solve part/all of INFRA-1139, or is it related to some extent?

            Show
            jglick Jesse Glick added a comment - Is this intended to solve part/all of  INFRA-1139 , or is it related to some extent?
            jglick Jesse Glick made changes -
            Link This issue relates to INFRA-1139 [ INFRA-1139 ]
            jglick Jesse Glick made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            jglick Jesse Glick made changes -
            Remote Link This issue links to "plugin-pom PR 57 (Web Link)" [ 16207 ]
            Hide
            michaelneale Michael Neale added a comment -

            Jesse Glick partially yes. That specific issue that happened recently wasn't the npm registry, more a repo of binaries (still have to work out how to mirror that), but the more common case is this. 

             

            Yarn doesn't specifically change things to allow the jenkins npm registry to be used but it is one of the side benefits. 

             

            Cliff Meyers this is in review - what is best way to test this? and IIUC the plugin-pom change wont' make it use the artifactory proxy automatically? 

            Show
            michaelneale Michael Neale added a comment - Jesse Glick partially yes. That specific issue that happened recently wasn't the npm registry, more a repo of binaries (still have to work out how to mirror that), but the more common case is this.    Yarn doesn't specifically change things to allow the jenkins npm registry to be used but it is one of the side benefits.    Cliff Meyers this is in review - what is best way to test this? and IIUC the plugin-pom change wont' make it use the artifactory proxy automatically? 
            Hide
            cliffmeyers Cliff Meyers added a comment -

            I did not put this in review just because there will be multiple PR's and more testing that needs to be done in CI. I suppose it's semantics anyways.

            Show
            cliffmeyers Cliff Meyers added a comment - I did not put this in review just because there will be multiple PR's and more testing that needs to be done in CI. I suppose it's semantics anyways.
            Hide
            cliffmeyers Cliff Meyers added a comment -

            First PR that adds yarn support to plugin-pom is here: https://github.com/jenkinsci/plugin-pom/pull/57

            Show
            cliffmeyers Cliff Meyers added a comment - First PR that adds yarn support to plugin-pom is here: https://github.com/jenkinsci/plugin-pom/pull/57
            Hide
            jglick Jesse Glick added a comment -

            Yup, already linked above.

            Show
            jglick Jesse Glick added a comment - Yup, already linked above.
            jglick Jesse Glick made changes -
            Status In Review [ 10005 ] In Progress [ 3 ]
            cliffmeyers Cliff Meyers made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            cliffmeyers Cliff Meyers made changes -
            Remote Link This issue links to "blueocean-plugin PR 981 (Web Link)" [ 16214 ]
            Hide
            cliffmeyers Cliff Meyers added a comment -

            Second PR that uses yarn to build blue ocean modules is here: https://github.com/jenkinsci/blueocean-plugin/pull/981

            Show
            cliffmeyers Cliff Meyers added a comment - Second PR that uses yarn to build blue ocean modules is here: https://github.com/jenkinsci/blueocean-plugin/pull/981
            michaelneale Michael Neale made changes -
            Sprint Blue Ocean - 1.1-beta-1 [ 291 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2 [ 291, 306 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2 [ 291, 306 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta3 [ 291, 306, 316 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4 [ 291, 306, 316 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1-beta5 [ 291, 306, 316, 321 ]
            cliffmeyers Cliff Meyers made changes -
            Link This issue is blocked by JENKINS-44423 [ JENKINS-44423 ]
            Hide
            cliffmeyers Cliff Meyers added a comment -

            This is on hold until new extensibility system lands. Both from a conflict standpoint, but also hopefully because a lot of our need to publish to npm registry may be obviated by it, and there are some pitfalls with publishing to npm/yarn registry when using a custom repo / mirror.

            Show
            cliffmeyers Cliff Meyers added a comment - This is on hold until new extensibility system lands. Both from a conflict standpoint, but also hopefully because a lot of our need to publish to npm registry may be obviated by it, and there are some pitfalls with publishing to npm/yarn registry when using a custom repo / mirror.
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1 [ 291, 306, 316, 321 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 306, 316, 321, 331 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 306, 316, 321, 331 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1, Blue Ocean 1.2-beta1 [ 291, 306, 316, 321, 331, 336 ]
            Hide
            jamesdumay James Dumay added a comment -

            Move this to backlog unit we can get Viveks time to unblock

            Show
            jamesdumay James Dumay added a comment - Move this to backlog unit we can get Viveks time to unblock
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1, Blue Ocean 1.2-beta1 [ 291, 306, 316, 321, 331, 336 ] Blue Ocean - 1.1-beta-1, Blue Ocean 1.3, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 296, 306, 316, 321, 331 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean 1.3-beta-2, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 296, 306, 316, 321, 331 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.4, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 306, 311, 316, 321, 331 ]
            jamesdumay James Dumay made changes -
            Rank Ranked lower
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.5 - candidates, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 306, 311, 316, 321, 331 ] Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1 [ 291, 306, 316, 321, 331 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            michaelneale Michael Neale made changes -
            Status In Review [ 10005 ] In Progress [ 3 ]
            michaelneale Michael Neale made changes -
            Status In Progress [ 3 ] Open [ 1 ]
            cliffmeyers Cliff Meyers made changes -
            Assignee Cliff Meyers [ cliffmeyers ]
            Hide
            jamesdumay James Dumay added a comment -

            Postponing. Looks like NPM is less crappy nowdays?

            Show
            jamesdumay James Dumay added a comment - Postponing. Looks like NPM is less crappy nowdays?
            jamesdumay James Dumay made changes -
            Resolution Postponed [ 6 ]
            Status Open [ 1 ] Resolved [ 5 ]

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              michaelneale Michael Neale
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: