[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