[jbosstools-dev] PLEASE READ: Proposal for new approach to managing transient upstream deps like Tern, AngularJS and Thym
Nick Boldt
nboldt at redhat.com
Sun Nov 16 11:11:41 EST 2014
If you're a dev or QE for projects which use Tern, AngularJS, or Thym,
or any other upstream incubating / frequently-changing dependency,
please *read and reply* if this approach seems reasonable to you.
---
For dependencies like Tern, AngularJS and Thym, instead of iteratively
updating them every few weeks in the target platform, we could instead
treat them like jbosstools-* components, and simply refer to them as
<dependencies> within dependent projects' root poms.
We used to do this for "moving target" upstream dependencies like m2e-*
extensions, but for JBDS 8 we put EVERYTHING into the target platform
and it was a bit of a pain to manage.
We could go a step further, too, and do automated weekly pulls of new
upstream deps.
---
The process would look like this:
* every Friday, a Jenkins job pings eclipse.org looking for the latest
available Tern, AngularJS, and Thym builds.
* if a newer one is found, a mirror is pulled and added to the pile on
http://download.jboss.org/jbosstools/updates/requirements/
* the latest one is then symlinked from
http://download.jboss.org/jbosstools/updates/requirements/{tern,angularjs,thym}/latest
* new entries are added to the parent pom for these 3 URLs:
https://github.com/jbosstools/jbosstools-build/blob/master/parent/pom.xml#L84
* projects which wish to build against these newer deps can do so by
choice (local experiments) or automatically by updating their root poms
to include new <repository> entries:
https://github.com/jbosstools/jbosstools-jst/blob/master/pom.xml#L23-L27
* projects will then need to monitor their manifests/feature.xml files
to ensure they depend on the correct versions of upstream deps:
https://github.com/jbosstools/jbosstools-jst/blob/master/plugins/org.jboss.tools.jst.jsdt/META-INF/MANIFEST.MF#L8-L22
* should they forget, their build will break w/ an obvious error message
* they can then apply a fix & rebuild, or rollback to an earlier
upstream dep in their root pom's <repository> reference, if they're not
able to move up to the newer Tern. Angular, or Thym dependency.
* if the upstream component stabilizes, it can then later be added to
the target platform; this is an approach suited for incubating upstream
dependencies.
WDYT?
--
Nick Boldt :: JBoss by Red Hat
Productization Lead :: JBoss Tools & Dev Studio
http://nick.divbyzero.com
More information about the jbosstools-dev
mailing list