On 04/04/2011 09:31 AM, Vincent Massol wrote:
> Hi Sergiu,
>
> On Apr 2, 2011, at 5:34 PM, Sergiu Dumitriu wrote:
>
>> On 04/01/2011 09:09 PM, Vincent Massol wrote:
>>> Hi devs,
>>>
>>> I see Sergiu has started the git migration, cool. However could we list the 
>>> different actions to be done and when they'll be done by whom.
>>>
>>> I'll start listing some questions:
>>>
>>> * Can we continue commit in svn? Has it been put readonly? If not, 
>>> shouldn't this be done first step?
>>
>> No SVN commits from now on for the XE/XEM related repositories. I didn't
>> move the following projects:
>>
>> - xoffice
>> - xeclipse
>> - curriki
>> - contrib
>>
>>> * Can we commit in the git repos created on github right now? If not when?
>>
>> Yes. Right now.
>>
>>> * Are we going to continue having the git repos synced with the svn repo 
>>> and if so for how long?
>>
>> Depends on what we want to achieve:
>> 1. commit in either of them and automatically mirror in the other repo
>> 2. commit only in git, but the read-only svn repository should mirror github
>> 3. keep the svn repo as a backup, without any other commits in it
>> 4. hide the svn repo
>> 5. delete the svn repo
>>
>> Personally I'd go for 4, since it doesn't require maintainance (I don't
>> know how git branches and merges will integrate in svn), and it avoids
>> confusion from users downloading sources from the wrong place. I
>> wouldn't delete it completely, though, since the github experience might
>> turn out bad enough to push us back to svn, although I doubt it.
>
> I'd make it readonly FTM till we sort out what we want to do with our tools 
> that use it:
> - ohloh
> - svnsearch
> - jira/svn integration
> - etc

OK.

> After this interim period I'm +1 to hide or remove it (backup it first).
>
>>> * I've done a commit on git earlier today but didn't see any email 
>>> notifications on the notifications list? Can this be set up quickly so that 
>>> we can see what's happening?
>>
>> GitHub offers an automatic mailing hook, which is nice, but doesn't show
>> the full diff as our notification mails used to do. Personally I'd like
>> to have diffs back, even if it means more work. The best option would be
>> to patch the official mail hook so that it has an option to send the
>> diff inside the mail, but it will take a while to learn how to do that.
>> Does anybody know ruby?
>
> +1 for a nicer notif mail that the default one.
>
>>> * I'm surrounded by git users for the week end and they're telling me there 
>>> are several ways to use git (one master repo, 2 repos, etc) and that we 
>>> need to define best practices of how we want to use git since there are 
>>> lots of ways to use it. Any idea about this?
>>
>> Yes, I've been thinking about that as well. I'll send a second mail with
>> proposals, and continue this one with status/roadmap points. For the
>> moment, until we define a new strategy, we can continue working as if it
>> were a central repository, like we did so far with subversion, by
>> pushing changes to the master branches on the official repositories.
>
> ok hope you're not going to remove my new commits from now on ;)

No more lost commits, I've done all the imports.

>>> Ok enough question to get started.
>>
>> So, right now I have two more projects to synchronize, skins and the old
>> xwiki-tools, which should be ready in an hour or so. After that, all the
>> repositories should be in place.
>
> Cool.

Done already, everything is in place.

>> == Repositories vs. projects/modules
>>
>> For the moment, I kept one repository for the main top projects which
>> used to have a trunk/branch/tags structure:
>> - platform/core, platform/web, enterprise, manager, watch, rendering,
>> commons-core, commons-pom, commons-tools, and they should stay this way
>> since all the submodules are released together, so tagging them together
>> makes sense; we'll decide later if they should be split if we want to
>> release each submodule individually
>
> ok. I think they should be split only if they have independent release cycles 
> which isn't the case now so +1 to keep them together until that changes.
>
>> - platform/skin and platform/xwiki-tools are also in one repository
>> each, although I'd like to split them into individual repositories
>> sometime later
>
> +1 to split skins since they already have independent release cycles. For 
> tools I think they should have the same release cycle as platform/core and 
> platform/web and thus stay where they are.

Yes, I thought that as well, so I split them this morning. Now skins are 
under xwiki-extensions, as proposed on
http://xwiki.markmail.org/thread/k6hb7v63igrbtxiy

> Note that we've put common tools in xwiki-commons too so it makes sense to 
> keep platform related tools in platform.

Yes, I put them under xwiki-platform, which now contains:
- components, the old platform/core
- web, the old platform/web, but should be split into GWT and standard
- tools, the old platform/xwiki-tools

>> I split+merged xwiki-applications and xwiki-plugins into one repository
>> per extension, holding together the plugin and the related application
>> where both modules make up an extension (for example the tag plugin and
>> the tag application). Although this might seem like there are a lot of
>> repositories, IMO it's a lot better since:
>> - it's not possible to checkout just one subdirectory from a repository,
>> as can be done in subversion; with only one big repo with all the
>> extensions in it, people wanting to fork an extension to patch it would
>> also have to fork unrelated and unused/deprecated extensions like the
>> selenium application
>> - each extension has its own lifecycle, while tagging/branching is done
>> per repository; it wouldn't look nice to have one repository with a
>> thousand different tags, each one actually relevant to only one of the
>> extensions
>> - putting all the extensions together is easy with a parent repository
>> including all the extensions as submodules (similar to svn externals),
>> so it will still be easy to have all the extensions checked out
>
> +1 for what you've done.
>
>> == More setup work needed
>>
>> There's still some work left to do after all the repositories are in place:
>>
>> - Make parent poms for the extensions made of plugin+app

^ Working on it right now.

>> - Finish setting up the aggregation repositories by adding the recently
>> migrated submodules and writing parent poms

^ Done.

>> - Update all the poms with the new scm information
>> - Update dev:Community.SourceRepository and related pages
>> - Send an announcement
>> ---------------- I hope that this should all be done by Monday morning
>> - Configure Jenkins with the new repositories
>> - Configure all the GitHub repositories:
>> -- remove the wiki and issue tracker offered by github
>
> this is done
>
>> -- enable the mail notifications
>
> I can do that (I'm in the train now but when I reach home).

I did it this morning.

>> -- add descriptions and homepage URLs for all repositories
>> - Swallow the delay introduced by learning the new tools :(
>
> More things to do:
> - configure new locations in ohloh (I've seen that it supports Git repos) - I 
> can do that
> - check if sonar supports Git and ask the sonar guys to update the XWiki view 
> on nemo - I can do that
> - update the Release Process page on xwiki.org
> - make the svn repo read only (minimum) - This is the first step to do 
> (should have been done earlier to prevent committers from committing in them).
> - since a lot of us are learning Git I'd suggest doing a git clone of all 
> repos on a server machine with a crontab to do git pull in order to keep a 
> backup in case we need to restore something.
>
>> Later steps:
>> - See how to write notification emails with the diff in them
>> - Add README files in each repository, to be displayed on the github page
>> - Decide what to do with contrib
>>
>> == Ideas for Contrib
>>
>> We should migrate contrib as well to github, either under the xwiki
>> organization, or under a related xwiki-contrib organization. I don't
>> have a strong opinion about this choice.
>> - Keeping them together seems like the right thing to do, since they are
>> all related to XWiki
>> -- it's easy to find incubating or retired projects
>> -- it's possible to give rights to users only on some repositories, so
>> there's no technical reason not to do it
>> - Keeping them separate makes sense since:
>> -- we mention that contrib projects don't have to be that closely
>> related to XWiki, so contrib could host personal projects not related to
>> the main goal of the XWiki projects
>> -- it could dilute the focus on the main projects by polluting the
>> organization dashboard
> -- we don't control the quality of contrib repositories and they're not done 
> by the xwiki dev team and there's no easy way to make that clear for users I 
> think (a README maybe but I don't think that's enough).
>
>> Thinking more about it, I think the contrib as it is right now doesn't
>> make sense as a whole:
>> - /people/ shouldn't be at all under the xwiki organization, since each
>> committer can have their own repositories on github now
>
> Exactly
>
>> - /sandbox/ projects could go under their maintainer's repository
>
> Sounds good since it's now easy to fork.
>
>> - /retired/ and small /projects/ could be repositories under either the
>> xwiki or the xwiki-contrib organization
>
> +1 to move back retired stuff from the xwiki dev team into the xwiki org in a 
> retired repo.
> +1 to move the rest in the xwiki-contrib org
>
>> - big /projects/ (wiki30 and concerto) could go under their own
>> organizations, since they aren't 100% XWiki and they have different
>> committers, goals, lifecycles
>
> Either that or they use xwiki-contrib org, their choice I'd say.
>
>> As per granularity, IMO one repository per module is again the right
>> approach; GitHub was designed with many repositories in mind, we don't
>> have to keep their number to a minimum.
>
> +1
>
>> == Git help
>>
>> I'll be available on IRC to answer questions. Git has good
>> documentation, many tutorials, and I think it has good and intuitive
>> support in all modern IDEs (I'm a console user myself).

I've been working on a guide, based on my older guide for git usage, 
currently at http://incubator.myxwiki.org/xwiki/bin/Main/UsingGitHub but 
I'll move it to documentation drafts after I finish a first pass on it 
to remove all references to svn.

-- 
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to