Google I/O is upon us as we'd like to have something concrete to say
by I/O even if the actual process (e.g. new commit workflow) hasn't
been opened by then. To that end, there are a number of practical
things we need to discuss.
1. GIT has already been decided on. We need to decide on a hosting
provider. Options are Google Projects or Github. If there is a third
provider someone wants to propose, the group can consider that as
well.
2. Source Tree Management. Bhaskar (Google) has a straw proposal
(https://docs.google.com/a/google.com/document/d/
1gRJnBd9TOhRg6eMKhEVIX3cfG_qaz8fs1aqbLjR_MCk/edit) There are two goals
(Google) is interested in. First, allowing trunk to not be gated by
internal Google projects. Second, ensuring a 'high quality' release
branches that internal Google projects can depend on. There are many
ways this could happen, I'm open to counter proposals. Part of
Bhaskar's document is influenced by the GCC process already used by
Google, part of the nomenclature comes from Chrome's "Dev-Beta-Stable"
6-week process. We are also open to vendor branches living in the same
repo, so if Red Hat or Vaadin want to have their own branches, that is
fine. This is often done for tool integration (e.g. GWT Designer used
to have a hacked/forked GWT embedded in it) Overall, we want to get
Google out of the bottleneck of blocking commits because of invisible
confidential apps being broken that you can't see, but still maintain
a high quality stable codebase.
3. Build system. Ant? Maven? Ant+Ivy? Gyp?
4. Testing. Part of the problem of Google's current predicament is
that GWT's test suite isn't sufficient to cover all the cases that
break our internal apps. I propose that Reviewers demand reasonable
tests be submitted with patches (100% coverage I think is
unreasonable, use good judgement)
5. Code-style. Keep GWT's current code-style/checkstyle
6. Buildbot. We need continuous builds. GWT has somewhat complex
requirements due to cross browser testing. Any ideas on vendors to use
would be helpful.
> 3. Build system. Ant? Maven? Ant+Ivy? Gyp?
@Thomas: What is the state of the current maven build?
On Monday, June 11, 2012 7:11:16 PM UTC+2, Ray Cromwell wrote:
Google I/O is upon us as we'd like to have something concrete to say
by I/O even if the actual process (e.g. new commit workflow) hasn't
been opened by then. To that end, there are a number of practical
things we need to discuss.
1. GIT has already been decided on. We need to decide on a hosting
provider. Options are Google Projects or Github. If there is a third
provider someone wants to propose, the group can consider that as
well.Same as Daniel. I'd rather keep Google Code Hosting, at least as a first step.I'm open to moving elsewhere (GitHub's pull requests are great! I must say haven't yet understood the contribution workflow at Google Code, but if we're going to keep a separate code review tool then we only need a Git repo to push changes in).
Also, how is Google intending to sync with their internal build system? Using MOE (or moe-java)?If they can easily revert changes on their side pending an upstream fix, or changes downstream to accommodate for the change, without totally blocking their sync'ing process, then a "beta" line wouldn't be needed (if Google would be the only day-to-day user of that code line!).The more information we have, the easier we can make a decision.3. Build system. Ant? Maven? Ant+Ivy? Gyp?An aside question is: are we going to modularize the build. It seems like Google would like it to happen. I do too.If we modularize, then I'm afraid Ant is not an option. It's already quite complicated to maintain the current build, and it won't scale with more modules and more complex dependencies.Ant+Ivy might be a solution but I don't know it.I'm used to Maven, and there aren't many things done today that couldn't be done with Maven (including the recent Elemental code generation).Gyp seems to be tailored for C/C++ builds rather than Java builds (even though they seem to be possible quite easily), and I doubt anyone here actually really knows it.FYI, besides compilation, and putting apart things very specific to the way things are currently built, the build currently uses (AFAICT):- a custom JavaDoc doclet, to include examples- custom Ant task to get the current SVN revision, to put it in the About.java, and about.html in the SDK (other custom tasks are not really useful outside Ant)- custom Checkstyle checks- Elemental runs a Python script to generate Java code from IDL, the script needs GCC (or actually any compatible preprocessor) to preprocess the IDL files; this is why Elemental is not currently built by default when you do an "ant dist".Nothing seems to be an issue in a Maven build: "there's a plugin for that".There are also a few things run manually, committed to the SVN, and then only picked up by the build:- protocol buffer protoc (for DevMode's RemoteUI, for integration within Eclipse)- JNI (to use IE on Windows for the automatic update check at DevMode/Compiler startup, to use the platforms' proxy configuration)- DevMode pluginsBasically, what we need is a way to manage dependencies between modules, all of Ivy, Gyp and Maven (and Gradle, Buildr, etc.) do it.I'm not opposed to Gyp or Ivy, but would prefer Maven. I could go with Gradle if others think it's better.
BTW, if going Maven, I'd like to pull the gwt-maven-plugin within GWT as an "official" plugin, and as a rewrite from scratch (too much legacy and (imo) badly designed things in the current plugin if you ask me)4. Testing. Part of the problem of Google's current predicament is
that GWT's test suite isn't sufficient to cover all the cases that
break our internal apps. I propose that Reviewers demand reasonable
tests be submitted with patches (100% coverage I think is
unreasonable, use good judgement)+1
“80% and no less!” ;-)5. Code-style. Keep GWT's current code-style/checkstyle
6. Buildbot. We need continuous builds. GWT has somewhat complex
requirements due to cross browser testing. Any ideas on vendors to use
would be helpful.
Some comments inline. Sorry for the brevity. But I've only got about 15 minutes before I lose my signal.On Jun 16, 2012, at 7:45 AM, Thomas Broyer wrote:
On Monday, June 11, 2012 7:11:16 PM UTC+2, Ray Cromwell wrote:
Google I/O is upon us as we'd like to have something concrete to say
by I/O even if the actual process (e.g. new commit workflow) hasn't
been opened by then. To that end, there are a number of practical
things we need to discuss.
1. GIT has already been decided on. We need to decide on a hosting
provider. Options are Google Projects or Github. If there is a third
provider someone wants to propose, the group can consider that as
well.Same as Daniel. I'd rather keep Google Code Hosting, at least as a first step.I'm open to moving elsewhere (GitHub's pull requests are great! I must say haven't yet understood the contribution workflow at Google Code, but if we're going to keep a separate code review tool then we only need a Git repo to push changes in).I would like to strongly suggest using Github. If we're going to Git, the act of moving to Github is practically friction-free. There's also nothing particularly complex about co-hosting it, either.The reason I think hosting at Github is worth pushing for, is it is there is just something about Github that makes people want to contribute. It has collaboration at its core. The way the pull request workflow works cannot be understated. It is an absolutely fantastic way to manage community patches. It's easy to make them. It's easy to review them. It's easy to accept them. And, in my opinion, the less friction there is within the tiers of development, the more time we'll have to focus on moving GWT forward and encouraging others to contribute to that.Git repositories can be cloned and synced with absolute ease. So whether or not the master branch lives at Github or Google Code won't affect the complexity of setting up Gerrit or any automated testing. Indeed, our public repositories. Indeed, we do this very thing at Red Hat.Finally, I think the move to Github is a way to make a "splash" out of this effort. There already is a Google Code project, and moving from SVN to Git will be a very low visibility change. But if the GWT project shows up at Github, people are really going to notice.
Am 16.06.2012 um 20:34 schrieb Mike Brock:Some comments inline. Sorry for the brevity. But I've only got about 15 minutes before I lose my signal.On Jun 16, 2012, at 7:45 AM, Thomas Broyer wrote:
On Monday, June 11, 2012 7:11:16 PM UTC+2, Ray Cromwell wrote:
Google I/O is upon us as we'd like to have something concrete to say
by I/O even if the actual process (e.g. new commit workflow) hasn't
been opened by then. To that end, there are a number of practical
things we need to discuss.
1. GIT has already been decided on. We need to decide on a hosting
provider. Options are Google Projects or Github. If there is a third
provider someone wants to propose, the group can consider that as
well.Same as Daniel. I'd rather keep Google Code Hosting, at least as a first step.I'm open to moving elsewhere (GitHub's pull requests are great! I must say haven't yet understood the contribution workflow at Google Code, but if we're going to keep a separate code review tool then we only need a Git repo to push changes in).I would like to strongly suggest using Github. If we're going to Git, the act of moving to Github is practically friction-free. There's also nothing particularly complex about co-hosting it, either.The reason I think hosting at Github is worth pushing for, is it is there is just something about Github that makes people want to contribute. It has collaboration at its core. The way the pull request workflow works cannot be understated. It is an absolutely fantastic way to manage community patches. It's easy to make them. It's easy to review them. It's easy to accept them. And, in my opinion, the less friction there is within the tiers of development, the more time we'll have to focus on moving GWT forward and encouraging others to contribute to that.Git repositories can be cloned and synced with absolute ease. So whether or not the master branch lives at Github or Google Code won't affect the complexity of setting up Gerrit or any automated testing. Indeed, our public repositories. Indeed, we do this very thing at Red Hat.Finally, I think the move to Github is a way to make a "splash" out of this effort. There already is a Google Code project, and moving from SVN to Git will be a very low visibility change. But if the GWT project shows up at Github, people are really going to notice.if we move to github we need to take the issue tracker and the wiki with us. This would be a lot of work. This is why I suggested staying on google code in the first place.
Pull requests are really awesome!
And I've used Rietveld with git and it can do branch comparison like Github does without any problem!
On Mon, Jun 18, 2012 at 11:12 AM, Christian Goudreau <quee...@arcbees.com> wrote:
Pull requests are really awesome!I haven't used github, but from what I know, this is mainly for non-maintainers to submit a request to the maintainers, right? Most of us are committers, but given that this is a new project, I expect we'll want reviews from each other (probably a +2) before things get checked in, even on the dev line. I'm not sure how the pull request fits into that model.
Can you do a side-by-side diff/review in github? Your example doesn't show that....
The formality of gerrit is quite useful. For example, we have a whole infrastructure built around automated commits based not test results for chromeos.
Bhaskar