On 04/04/2011 10:50 AM, Sergiu Dumitriu wrote: > 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).
I forgot to say that I've already did something like this by removing the XWikiCommitters groups from the migrated projects. In theory, commits shouldn't be possible anymore, but I haven't checked. >> - 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

