Hi all,
It's been some weeks since we've started discussing how to refactor JSDT
repositories, and a lot of new ideas came to the discussion and blurred
the initial plan.
As a reminder, the idea behind it is to be able to build and test the
whole JSDT with a singe "mvn clean verify", for quality sake and to
lower entry barrier for contributors to run tests. It is something that
we, in the JBoss & Exadel team, feel very important for our productivity
on this project and also to increase the durability of the JSDT project
by making it more accessible for new contributors.
So we need to define a new plan that allow to make progress as I feel
that the more we discuss it, and the less things are happening.
I re-read the discussion and found the 2 following ideas with there
benefits and drawbacks:
#1: Merge master branches in webtools.jsdt.core
+ Everyone first agreed it was a good idea
+ it's relatively easy and it can be done in one or two hours of
work. 2 merge commits + adapt map files on master.
+ We don't need an additional repo and we can work with the ones we
already have
- It makes master and maintainance branch use different
repositories/workflows, for example, it makes cherry-pick and backport
of changes a bit more difficult (but not impossible)
#2: Merge all active branches (master and maintenance) in
webtools.jsdt.core, and then archive webtools.jsdt debug and tests repo.
+ More consistency between master and maintenance
+ It's relatively easy and it can be done in about one a day of work
(counting ~2h for each branch to merge them). This can be done branch
after branch (so that solution #1 can be interpreted as a first
increment solution #2
+ We don't need an additional repo and we can work with the ones we
already have
- As we can't merge tags with same name (a tag == a commit, mustn't
be changed after for history sake), then we'll most likely have to leave
tags in their former repository.
. Although they won't be active any more, older repositories must be
kept and archived for history sake (they contain tags). If repostories
are archived and their URL change, most likely older version of map
files won't work any more.
Currently, it looks like we're in a chicken-egg problem because we're
waiting for master branches to be made read-only (
https://bugs.eclipse.org/bugs/show_bug.cgi?id=424538 ) before doing
anything, but our inability to agree on clear plan and action items make
that webmasters left the discussion and won't do anything until a JSDT
project lead give an explicit +1 on this.
Some have said that it is not really necessary to make master branch
read-only before merging and that we can start merging master without
it. I agree with them and I'm personally in favor of just doing changes
since I believe if we do it fast enough there is a very low risk of
missing an incoming commit.
So I suggest the following action items:
1. Apply step #1 and merge master branches. Here is a branch that does
that, as described in
https://bugs.eclipse.org/bugs/show_bug.cgi?id=424210#c5 :
https://github.com/mickaelistria/webtools.jsdt.core/tree/424210-master .
This branch is based on current HEADs for master branches (you can find
the 3 HEADs in the history). You can see that this branch builds fine
locally with:
$ git fetch https://github.com/mickaelistria/webtools.jsdt.core.git
424210-master
$ git checkout FETCH_HEAD
$ mvn clean verify -Dbuild-individual-bundles -DskipTests
And you can easily merge it into JSDT repo with
$ git push git://git.eclipse.org/gitroot/jsdt/webtools.jsdt.core.git
FETCH_HEAD:master
2. Ask webmaster to make master branches read-only and if necessary port
commits to this new branch.
3. Create a tag and update map files on master to use this new repo
4. Profit: enable tests for every contribution via Gerrit, create a
category.xml file to be able to test JSDT build output without having to
rebuild all webtools, enable Sonar, Jacoco...
Then repeat for all necessary branches (on demand).
So, can a JSDT project lead give a +1 and merge the branch I suggest so
we can make some progress?
Cheers,
--
Mickael Istria
Eclipse developer at JBoss, by Red Hat <http://www.jboss.org/tools>
My blog <http://mickaelistria.wordpress.com> - My Tweets
<http://twitter.com/mickaelistria>
_______________________________________________
wtp-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/wtp-dev