[ovirt-devel] oVirt packages for JavaScript development have been updated

Ryan Barry rbarry at redhat.com
Thu Feb 16 16:48:22 UTC 2017


Just so nobody repeats my mistake --

In 2b (from the original email) -- if dependencies are updated, you must
also:

   - Resynchronize the yarn.lock in your project file if you bump
   dependencies versions, otherwise yarn.lock will not agree with
   package.json, and your build will fail...


On Fri, Feb 10, 2017 at 11:44 AM, Ryan Barry <rbarry at redhat.com> wrote:

> Awesome, thanks guys!
>
> On Feb 10, 2017 11:43, "Greg Sheremeta" <gshereme at redhat.com> wrote:
>
>> Ryan,
>>
>> I was curious, had to try it myself :) Vojtech's suggestion of bumping up
>> all your dependencies does the trick. Patch attached (there were some
>> quirks -- hopefully this helps)
>>
>> Greg
>>
>>
>> On Fri, Feb 10, 2017 at 12:10 PM, Vojtech Szocs <vszocs at redhat.com>
>> wrote:
>>
>>> Ryan, try running webpack with --display-error-details parameter.
>>>
>>> Also, maybe this comment is related: https://github.com/webpack/web
>>> pack/issues/3242#issuecomment-260411104
>>>
>>> AFAIK, Node.js v6 path APIs had some changes, which possibly broke some
>>> webpack plugins. Since current Node.js active LTS == v6, I'd expect webpack
>>> plugin authors to fix their issues, you'll need to bump some versions in
>>> package.json probably.
>>>
>>> Vojtech
>>>
>>>
>>> On Fri, Feb 10, 2017 at 6:05 PM, Greg Sheremeta <gshereme at redhat.com>
>>> wrote:
>>>
>>>> I'm clueless. Lol, actually I was just debugging the exact same thing
>>>> when I saw your email that you were working on it.
>>>>
>>>> I was next going to look into https://github.com/babel/
>>>> grunt-babel/issues/56#issuecomment-154377457 and the comment after it.
>>>>
>>>>
>>>> On Fri, Feb 10, 2017 at 12:02 PM, Ryan Barry <rbarry at redhat.com> wrote:
>>>>
>>>>> Thanks Greg!
>>>>>
>>>>> I actually merged patches for it to work, but it's always nice to see
>>>>> another approach, and in looking at your diff, I see that I also didn't
>>>>> change "--with-npm-install", which I should.
>>>>>
>>>>> As long as we have you on the phone (so to speak), I'm actually
>>>>> curious about ovirt-engine-nodejs. We've been having failures in CI since
>>>>> December, give or take, but they're not tied to any particular patch. That
>>>>> is to say that checking out an earlier commit still suddenly fails. This
>>>>> has been a low-grade annoyance while we prep for 4.1, since everything
>>>>> still builds and runs in build-artifacts without any problems, but getitng
>>>>> "-1 Continuous Integration" on every patch isn't very helpful.
>>>>>
>>>>> Webpack complains "PATH should be a string, is undefined", but never
>>>>> tells me where it's looking for this. We don't use path.resolve anywhere
>>>>> and I've probably tried every suggestion on github/stackoverflow for making
>>>>> this go away, without any success. There are a lot of reports that changing
>>>>> the downgrading the NodeJS major version (from 6 -> 5, generally) resolves
>>>>> this,b ut that's obviously not an option for us.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> On Fri, Feb 10, 2017 at 9:52 AM, Greg Sheremeta <gshereme at redhat.com>
>>>>> wrote:
>>>>>
>>>>>> I didn't realize Ryan was already doing this, so here was my take
>>>>>> (attached). Maybe it helps.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 10, 2017 at 11:33 AM, Vojtech Szocs <vszocs at redhat.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Feb 10, 2017 at 5:30 PM, Ryan Barry <rbarry at redhat.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Nothing, but thanks.
>>>>>>>>
>>>>>>>> It is/was a question of time. I didn't expect the changes to
>>>>>>>> ovirt-engine-modules to make it into master as quickly as they did (to be
>>>>>>>> fair, it's been nearly a month since the initial meeting, but that month
>>>>>>>> passed very quickly prepping for the beta release).
>>>>>>>>
>>>>>>>> I'm pushing patches to cockpit-ovirt and
>>>>>>>> ovirt-engine-nodejs-modules to get cockpit-ovirt working on master again
>>>>>>>> now.
>>>>>>>>
>>>>>>>
>>>>>>> Please add Greg & me as reviewers :-)​ also, if there are any open
>>>>>>> issues or questions, let us know.
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Feb 10, 2017 at 6:56 AM, Greg Sheremeta <
>>>>>>>> gshereme at redhat.com> wrote:
>>>>>>>>
>>>>>>>>> I can assist too. What do you need? If it's easier, I'm available
>>>>>>>>> on IRC.
>>>>>>>>>
>>>>>>>>> On Fri, Feb 10, 2017 at 8:00 AM, Sandro Bonazzola <
>>>>>>>>> sbonazzo at redhat.com> wrote:
>>>>>>>>>
>>>>>>>>>> Vojtech, can you please help Ryan and Marek with cockpit-ovirt?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Feb 8, 2017 at 3:29 PM, Vojtech Szocs <vszocs at redhat.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello devs,
>>>>>>>>>>>
>>>>>>>>>>> following packages, intended as build-time dependencies of oVirt
>>>>>>>>>>> JavaScript projects, have been updated:
>>>>>>>>>>>
>>>>>>>>>>> * ovirt-engine-nodejs
>>>>>>>>>>> * ovirt-engine-nodejs-modules
>>>>>>>>>>> * ovirt-engine-yarn
>>>>>>>>>>>
>>>>>>>>>>> If you use those packages, please read on to learn how to adapt
>>>>>>>>>>> your
>>>>>>>>>>> project. oVirt Dashboard (master) is already adapted and you can
>>>>>>>>>>> use
>>>>>>>>>>> it as your reference.
>>>>>>>>>>>
>>>>>>>>>>> ==
>>>>>>>>>>>
>>>>>>>>>>> 1, move your project from npm to Yarn:
>>>>>>>>>>>
>>>>>>>>>>> - using nodejs-modules implies that your project moves from npm
>>>>>>>>>>> to
>>>>>>>>>>> Yarn, please do this as your first step
>>>>>>>>>>> - make sure to add yarn.lock file to source control: rm -rf
>>>>>>>>>>> node_modules && yarn install # generates yarn.lock
>>>>>>>>>>> - your automation/*.packages should contain something like this:
>>>>>>>>>>>
>>>>>>>>>>>   ovirt-engine-nodejs-6.9.4
>>>>>>>>>>>   ovirt-engine-nodejs-modules-1.0.3
>>>>>>>>>>>   ovirt-engine-yarn-0.19.1
>>>>>>>>>>>
>>>>>>>>>>> - since oVirt CI uses yum cache, always specify exact version of
>>>>>>>>>>> nodejs-modules in your automation/*.packages
>>>>>>>>>>> - in your RPM build script, make sure to set up Node.js env.:
>>>>>>>>>>> source
>>>>>>>>>>> /usr/share/ovirt-engine-nodejs-modules/setup-env.sh
>>>>>>>>>>>
>>>>>>>>>>> ==
>>>>>>>>>>>
>>>>>>>>>>> 2a, dependency handling - 1st time:
>>>>>>>>>>>
>>>>>>>>>>> - clone nodejs-modules repo & update the projects.list file - add
>>>>>>>>>>> URL(s) to your project's files (package.json + yarn.lock)
>>>>>>>>>>> - bump .z in RPM Version and reset the RPM Release number, submit
>>>>>>>>>>> patch to Gerrit
>>>>>>>>>>> - in your project, update automation/*.packages to use the right
>>>>>>>>>>> nodejs-modules version
>>>>>>>>>>>
>>>>>>>>>>> 2b, dependency handling - whenever your dependencies change:
>>>>>>>>>>>
>>>>>>>>>>> - clone nodejs-modules repo & bump RPM Release number, submit
>>>>>>>>>>> patch to Gerrit
>>>>>>>>>>> - in your project, update automation/*.packages to use the right
>>>>>>>>>>> nodejs-modules version
>>>>>>>>>>>
>>>>>>>>>>> ==
>>>>>>>>>>>
>>>>>>>>>>> Q: how does the new nodejs-modules work?
>>>>>>>>>>>
>>>>>>>>>>> A: instead of maintaining one big package.json file to specify
>>>>>>>>>>> all
>>>>>>>>>>> dependencies of all projects (effectively forcing all projects
>>>>>>>>>>> to use
>>>>>>>>>>> single dependency tree), it contains the projects.list file with
>>>>>>>>>>> URL(s) to specific project files.
>>>>>>>>>>>
>>>>>>>>>>> When building nodejs-modules RPM, it goes through the list of
>>>>>>>>>>> URL(s),
>>>>>>>>>>> downloading project's files (package.json + yarn.lock), then
>>>>>>>>>>> downloading required dependencies (using Yarn) and collecting
>>>>>>>>>>> their
>>>>>>>>>>> .tar.gz sources. The nodejs-modules RPM therefore contains a
>>>>>>>>>>> flat list
>>>>>>>>>>> of all .tar.gz sources of all dependencies of all projects.
>>>>>>>>>>>
>>>>>>>>>>> When you source the setup-env.sh script, it does, among other
>>>>>>>>>>> things,
>>>>>>>>>>> tell Yarn to use
>>>>>>>>>>> /usr/share/ovirt-engine-nodejs-modules/yarn-offline-cache
>>>>>>>>>>> containing
>>>>>>>>>>> all .tar.gz sources. Then, it runs Yarn in offline mode to
>>>>>>>>>>> populate
>>>>>>>>>>> your project's node_modules directory.
>>>>>>>>>>>
>>>>>>>>>>> ==
>>>>>>>>>>>
>>>>>>>>>>> Hope this helps.
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Vojtech
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Devel mailing list
>>>>>>>>>>> Devel at ovirt.org
>>>>>>>>>>> http://lists.ovirt.org/mailman/listinfo/devel
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Sandro Bonazzola
>>>>>>>>>> Better technology. Faster innovation. Powered by community
>>>>>>>>>> collaboration.
>>>>>>>>>> See how it works at redhat.com
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Devel mailing list
>>>>>>>>>> Devel at ovirt.org
>>>>>>>>>> http://lists.ovirt.org/mailman/listinfo/devel
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Greg Sheremeta, MBA
>>>>>>>>> Red Hat, Inc.
>>>>>>>>> Sr. Software Engineer
>>>>>>>>> gshereme at redhat.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Greg Sheremeta, MBA
>>>>>> Red Hat, Inc.
>>>>>> Sr. Software Engineer
>>>>>> gshereme at redhat.com
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Greg Sheremeta, MBA
>>>> Red Hat, Inc.
>>>> Sr. Software Engineer
>>>> gshereme at redhat.com
>>>>
>>>
>>>
>>
>>
>> --
>> Greg Sheremeta, MBA
>> Red Hat, Inc.
>> Sr. Software Engineer
>> gshereme at redhat.com
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/devel/attachments/20170216/a4c7bb57/attachment.html>


More information about the Devel mailing list