Hi, this is proabably not related to the previous mail, but I just wanted to mention this interesting article about a "successful branching model with Git". Maybe you have already heard of this but nevertheless I think it's worth to send it here: http://nvie.com/posts/a-successful-git-branching-model/
Thanks, Fabio On Sat, Apr 2, 2011 at 5:34 PM, Sergiu Dumitriu <[email protected]> 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'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? > >> * 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 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. > > == 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 > - platform/skin and platform/xwiki-tools are also in one repository > each, although I'd like to split them into individual repositories > sometime later > > 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 > > == 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 > - Finish setting up the aggregation repositories by adding the recently > migrated submodules and writing parent poms > - 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 > -- enable the mail notifications > -- add descriptions and homepage URLs for all repositories > - Swallow the delay introduced by learning the new tools :( > > 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 > > 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 > - /sandbox/ projects could go under their maintainer's repository > - /retired/ and small /projects/ could be repositories under either the > xwiki or the xwiki-contrib organization > - big /projects/ (wiki30 and concerto) could go under their own > organizations, since they aren't 100% XWiki and they have different > committers, goals, lifecycles > > 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. > > == 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). > > -- > Sergiu Dumitriu > http://purl.org/net/sergiu/ > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

