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@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@redhat.com> wrote:


On Fri, Feb 10, 2017 at 5:30 PM, Ryan Barry <rbarry@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@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@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@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@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@ovirt.org
http://lists.ovirt.org/mailman/listinfo/devel



--
Greg Sheremeta, MBA
Red Hat, Inc.
Sr. Software Engineer
gshereme@redhat.com





--
Greg Sheremeta, MBA
Red Hat, Inc.
Sr. Software Engineer
gshereme@redhat.com