Bug 360157 - migrate org.eclipse.releng and doc bundles to eclipse.platform.common.git
Summary: migrate org.eclipse.releng and doc bundles to eclipse.platform.common.git
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 4.2 M3   Edit
Assignee: Kim Moir CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 360839
Blocks: 345479
  Show dependency tree
 
Reported: 2011-10-06 15:19 EDT by Kim Moir CLA
Modified: 2011-11-02 05:43 EDT (History)
14 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kim Moir CLA 2011-10-06 15:19:05 EDT
This migration will take place Friday October 14.  I think I have all the builder changes I need to implement this change in bug 350627.  I've run a test migration before.  I think SWT needs to update some of their build scripts to accommodate this change.
Comment 1 Kim Moir CLA 2011-10-07 09:22:11 EDT
Just as a side note, the git filter branch operation to add the gitignore on this repo took 16 hours to run.  These projects have a lot of tags in them.
Comment 2 Remy Suen CLA 2011-10-13 09:44:22 EDT
Is this the last of the projects?
Comment 3 Kim Moir CLA 2011-10-13 09:58:16 EDT
Remy, there is still the eclipse.releng guid projects to move.  These are mostly releng features and the builder scripts themselves.  In other words, nobody cares about them but me :-)
Comment 4 Dani Megert CLA 2011-10-13 09:59:56 EDT
(In reply to comment #3)
> Remy, there is still the eclipse.releng guid projects to move.  These are
> mostly releng features and the builder scripts themselves.  In other words,
> nobody cares about them but me :-)

And me :-)
Comment 5 Kim Moir CLA 2011-10-13 10:17:09 EDT
Note, there is currently a test repo here

kmoir@build:/gitroot/platform> ls -ld *common*
drwxrwsr-x 7 kmoir eclipse.platform 4096 2011-10-07 09:59 eclipse.platform.common.git
Comment 6 Kim Moir CLA 2011-10-14 16:51:18 EDT
Running test build with updated location of doc bundles in new Git repo.

http://git.eclipse.org/c/platform/eclipse.platform.common.git/commit/?id=e4b8c3554d81f5c5b11503abc8295504479035df
Comment 7 Kim Moir CLA 2011-10-15 13:36:22 EDT
I have to redo this repo's migration.  I accidentally copied org.eclipse.pde.doc.user from /cvsroot/eclipse instead of pde/.  Which means it's not current content.  I'll revert the map files to CVS for tonight's build.

Yay.
Comment 8 Kim Moir CLA 2011-10-16 18:57:46 EDT
Okay I reran the migration and everything seems to be fine.  Test build was successful.  Let me know if you see any problems.  The ACLs should be the same ones that are on org.eclipse.releng for both the map files and the doc bundles.

ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.common.git
Comment 9 Tomasz Zarna CLA 2011-10-17 09:41:15 EDT
Wow, the repo is almost 200MB, is this correct?
Comment 10 Kim Moir CLA 2011-10-17 09:51:50 EDT
Yes.  This is correct.
Comment 11 Kim Moir CLA 2011-10-17 09:59:43 EDT
Oleg mentioned that the e4 projects map files hadn't been migrated to Git.  Is there a plan to put them into Git in a separate repo from eclipse.platform.common? There are also build changes that are required.  I don't have rights to do the migration because I don't have e4 commit rights.
Comment 12 John Arthorne CLA 2011-10-17 13:36:52 EDT
(In reply to comment #11)
> Oleg mentioned that the e4 projects map files hadn't been migrated to Git.  Is
> there a plan to put them into Git in a separate repo from
> eclipse.platform.common? There are also build changes that are required.  I
> don't have rights to do the migration because I don't have e4 commit rights.

I suggest entering a bug against e4 for that. I thought Paul had finished all the e4 Git migration, but if he left something out there might have been a reason for it.
Comment 13 Markus Keller CLA 2011-10-18 06:44:05 EDT
The more I work with the eclipse.platform.common.git repo, the more I think it was a bad idea to put the map files into the same repository as the doc plug-ins.

The only real reason speaking for a common repository is the ACL list (all SDK committers should have access to all these projects). But there are a few serious problems:

1. The repository is huge (180MB), and that's too much if you just need to set up a new workspace to do a build input for non-doc projects.

2. The mixing of meta-tags (I<date> and M<date> tags on the *.map files) and bundle qualifier tags (v<date> on the bundle repos) blows up the list of tags and could become confusing if we e.g. adopt the git-flow model with automated tagging from the build process and then choose the I<date> format also for the auto-generated bundle qualifier tags.

3. Git is not suited to the task for map file management. Git enforces a strictly linear sequence of commits to HEAD, so this will inevitably cause a lot of push conflicts when multiple components want to release their map files around the same time. In CVS, component map files can be committed independently and in any order without any conflicts. It was already a pain sometimes that the doc.map is shared among teams, and I don't want to have conflicts with everyone else.

Especially because of point 3, I suggest to remove the maps from the common Git repo and leave org.eclipse.releng in CVS for now.
Comment 14 Tomasz Zarna CLA 2011-10-18 07:16:44 EDT
I think the last one can be tamed by applying Paul's suggestion from http://dev.eclipse.org/mhonarc/lists/e4-dev/msg05775.html. Rebasing shouldn't be that painful.
Comment 15 Kim Moir CLA 2011-10-18 07:22:22 EDT
We can rerun the migration if the repo is too large to separate out the doc and map files.  I agree that the repo is large.  I mentioned last week in the planning call that the repo was around 200MB and was told that this was okay.  I don't think that leaving our map files in CVS is a viable solution given that the Eclipse foundation will eventually be making the CVS read only.
Comment 16 Markus Keller CLA 2011-10-18 08:21:58 EDT
(In reply to comment #14)
The rebase flag solves the problem of merging incoming changes, but you still have to do Commit, Pull, wait, click OK, Push, and hope nobody pushed in between. Push is strictly sequential per Git repo, but it's parallel in CVS.


(In reply to comment #15)
> I don't think that leaving our map files in CVS is a viable solution given that
> the Eclipse foundation will eventually be making the CVS read only.

The Eclipse Foundation needs to understand that Git is an SCM. It is nice for Source Code Management, but it is not a panacea for all cases where a version management system is needed. See also bug 349048 comment 13.
Comment 17 Thomas Watson CLA 2011-10-18 08:42:10 EDT
(In reply to comment #14)
> I think the last one can be tamed by applying Paul's suggestion from
> http://dev.eclipse.org/mhonarc/lists/e4-dev/msg05775.html. Rebasing shouldn't
> be that painful.

I agree, rebasing is not painful and all committers should practice it if conflicts are found when pushing.
Comment 18 Thomas Watson CLA 2011-10-18 08:46:08 EDT
(In reply to comment #15)
> We can rerun the migration if the repo is too large to separate out the doc and
> map files.  I agree that the repo is large.  I mentioned last week in the
> planning call that the repo was around 200MB and was told that this was okay. 

I'm not sure I understand why the size is such an issue.  IMO more committers should have the docs locally replicated in order to keep the docs upto date.  A smaller group of committers should be tagging each week.

> I don't think that leaving our map files in CVS is a viable solution given that
> the Eclipse foundation will eventually be making the CVS read only.

This is the reality, CVS is going away and we need to find a new home for the maps.
Comment 19 Markus Keller CLA 2011-10-18 09:55:41 EDT
Sorry, but none of the comments after comment 13 addressed any of the issues pointed out there. Please read my comment again. Rebasing is not the pain point.

If for political reasons, we really can't stay with the best-suited repo tools for now (CVS), then we should at least keep the map files in a separate Git repository.
Comment 20 John Arthorne CLA 2011-10-18 10:56:14 EDT
(In reply to comment #19)
> Sorry, but none of the comments after comment 13 addressed any of the issues
> pointed out there. Please read my comment again. Rebasing is not the pain
> point.
> 
> If for political reasons, we really can't stay with the best-suited repo tools
> for now (CVS), then we should at least keep the map files in a separate Git
> repository.

A separate Git repository only solves the size problem. To me the size problem is the least interesting, because as Tom mentioned everyone doing build contributions is probably also contributing to doc sometimes, so they would need to keep a clone of that repository local anyway. You don't need to create a new clone every time you create a new workspace...

Problems #1 and #3 are solved by having the build do the tagging. I don't understand problem #2. The map files themselves are currently only tagged once for each build by the builder. The tags that appear in the map files don't seem related to the tags appearing on the repository containing the maps.
Comment 21 Markus Keller CLA 2011-10-18 12:33:06 EDT
> You don't need to create a new clone every time you create a new workspace...

Really? So how can I share the same clone in a master and a R3_7_maintenance workspace if I need to have both workspaces running at the same time? With symlinks or hardlinks from the two working directories to the same .git directory? I doubt that EGit and cgit handle that seamlessly. A separate repository for org.eclipse.releng is definitely more trustworthy.

> Problems #1 and #3 are solved by having the build do the tagging.

Yes, but until then, it's unnecessary churn.

> I don't understand problem #2. [..]
> The tags that appear in the map files don't seem
> related to the tags appearing on the repository containing the maps.

That's my point. Why are they in the same repository if they are not related? Keeping separate things separate is usually a plus. If we want to use I<date> as common qualifier name, then the tags would suddenly fall together.

It also sounds complicated for other workflows. E.g. the Releng Tools for CVS had Compare with > Released, so it was trivial to find out what changed between the current version in the workspace and the version from the org.eclipse.releng project. Things like that don't work any more if the real data (doc plug-ins) and the meta-data (maps) are mixed. I also wonder how it works with git-flow. You're working in branch "develop", so you can't easily look at the map files from branch "master" or "R3_7_maintenance".
Comment 22 Kim Moir CLA 2011-10-19 11:36:24 EDT
As discussed in the eclipse planning call, I'll be creating a new repository to store the releng maps alone. The doc maps will continue to reside in eclipse.platform.common. I'll be starting this immediately and copying the CVS content again to run the migration.  I'll let you know when it's ready and the map files need to be updated in the new repo.
Comment 23 Kim Moir CLA 2011-10-19 16:39:31 EDT
As discussed in this morning's planning call, the decision was made to split the releng maps into a separate repo.

This new repo is located here

ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.releng.maps.git

Please update your map files in it for the R3_7_maintenance and 3.8 stream builds in this repo.  Since I had to rerun the migration from CVS again, the map files are in the state they were last Thursday night (October 13).

You'll be happy to know that this repo is much smaller :-)

kmoir@build:/gitroot/platform> du -sh eclipse.platform.releng.maps.git/
11M     eclipse.platform.releng.maps.git/
Comment 24 Dani Megert CLA 2011-10-20 06:03:46 EDT
> Please update your map files in it for the R3_7_maintenance and 3.8 stream
> builds in this repo.  Since I had to rerun the migration from CVS again, the
> map files are in the state they were last Thursday night (October 13).

I've done this for all map files, including for R3_6_maintenance and R3_6_maintenance_Java7.
Comment 25 Kim Moir CLA 2011-10-20 09:50:02 EDT
Thanks, closing.