How should we deal with components of projects which have not changed since JBT 4.1.0.Final (eg., jbosstools-base/runtime) ?
by Nick Boldt
In looking at the JBT 4.1.1.Alpha2 build [1], I see that some features
have not yet changed since JBT 4.1.0.Final [2]. This is fine for a
project like GWT or Freemarker, where the entire project is versioned
the same way and we can simply include the previous .Final release, but
for a subcomponent of a project, like the runtime component in
jbosstools-base [3], this presents a question.
[1] http://download.jboss.org/jbosstools/updates/nightly/core/4.1.kepler/
[2] http://download.jboss.org/jbosstools/updates/stable/kepler/
[3]
http://download.jboss.org/jbosstools/builds/staging/jbosstools-base_41/al...
Currently, the base build [3] is producing this plugin:
org.jboss.tools.runtime.core 2.1.0.Alpha2-v20130927-0137-B114
But the JBT 4.1.1.Alpha2 build [1] contains this version, which is
code-wise identical except for the qualifier change in the manifest.
org.jboss.tools.runtime.core 2.1.0.Final-v20130717-0450-B102
Where it becomes an issue is that when we start building 4.1.1.Final in
November, we will be including both 2.1.0.Final-v20130717-0450-B102
(from JBT 4.1.0.Final) and 2.1.0.Final-v20131200-0000-Bxxx (from JBT
4.1.1.Final). Since these are bitwise identical, there's no point making
users update from an identical feature or plugin to a newer identical
version.
So how do we prevent the build from including a newer-versioned but
identical feature or plugin?
The only thing I can currently think of is to *exclude* these features
from the base_41 update site [3] so that only the older version from [2]
will be included.
This is basically the process I used to build JBT 4.1.0.1 - I excluded
everything from jbosstools-central's site/category.xml except the
feature which had actually changed [4].
[4]
https://github.com/jbosstools/jbosstools-central/commit/16279020cbf872f4e...
Looking for feedback here -- is this a good idea?
--
Nick Boldt :: JBoss by Red Hat
Productization Lead :: JBoss Tools & Dev Studio
http://nick.divbyzero.com
11 years, 2 months
[action] jbosstools-base/runtimes packages have been re-organized
by Rob Stryker
Hi All:
I did use-scans everywhere I possibly could, and tried to maintain that
all current APIs still work, but I did finally get around to marking
most of runtimes code to be internal. I also did not stop exporting any
of the original packages, yet. But this is the notice that in the next
major release, those packages will no longer be exported.
So... sometime in the next few weeks / months, if your code uses the
runtimes component, go through your code and make sure deprecated
methods aren't used, internal packages aren't referenced, and respect
the new restrictions.
I've bumped the major version to 3.0.0 to make clear that all old
deprecated code will be removed for the next major release.
If your code is using a method for which there is no obvious
alternative, PING ME and REQUEST the api, or some similar replacement,
be made public for your use, or ask me to help you migrate your existing
code.
Again, as I said, no code should break at this point. I've locally built
base, server, javaee, and central. But there will be further cleanup
eventually, so this is basically your warning.
if you're wondering why I made the large changes first, instead of sent
the email first, it's because it needed to be done this way. If I
alerted you first that I plan to change versions to 3.0.0, you'd update
your manifest.mf to make 3.0.0 the minimal range BEFORE i bumped hte
version, which would mean your code wouldn't compile because the 3.0.0
bundle would not be found.
So, I made the changes as API-Compatible as I can, everything is set up,
all code is marked clearly whether it's public or not, everything's
javadoc'd, and all packages are still exported. Now it's your turn to
clean your code, before I make everything hidden.
I'm not in a super rush to mark everything as hidden, but it will be for
the next major release once we can guarantee all clients are migrated.
Also, you MAY need to depend on foundation.core and foundation.ui.
Runtimes does not re-export these plugins, but it does make use of
them. Previously, runtimes depended on common, but I have severed this
link and runtimes now depends on the lower-level foundation instead.
Again, nothing should break currently. if anything has broken, please
ping me immediately.
- Rob Stryker
Causing Problems, as usual.
11 years, 2 months