On Friday, November 17, 2017 at 4:11:18 PM UTC+1, Colin Alworth wrote:
>
> Sounds like there is enough diversity of opinion that this discussion 
> should go on - first step seems to be deciding if we think the CLA
>

Some links about CLAs:
https://julien.ponge.org/blog/in-defense-of-contributor-license-agreements/ 
& 
https://julien.ponge.org/blog/developer-certificate-of-origin-versus-contributor-license-agreements/
https://web.archive.org/web/20150917011232/http://www.computerworlduk.com/blogs/simon-says/should-open-source-communities-avoid-contributor-agreements-3569648/
http://contributoragreements.org/
Some tools to manage CLAs: https://cla-assistant.io/ (by 
SAP), https://www.clahub.com/

As a) purely "community-driven projects", that b) won't even be used by 
Google (their original author), I would say that we don't need CLAs (also, 
the choice of the Apache License protects the users from a lot of things 
already).
That said, IANAL, and I'm not doing any work here on behalf of my employer; 
so people for whom CLAs are important should weigh in.
 

> and/or gerrit-style review is important for all artifacts deployed to 
> org.gwtproject. 
>

I *love* Gerrit, and use it daily at work; but I cannot ignore that GitHub 
pull requests have gotten a whole lot better those past years, and I have 
absolutely no problem using them instead of Gerrit; which is a barrier to 
entry that many don't even try passing (Go has had the same issue, they 
built tooling around it instead, and documentation, and despite that it's 
apparently still seen as a barrier to entry to many –Chrome and Android are 
different, as they're much bigger beasts already).
Keeping in mind that gwt.googlesource.com is maintained by Google which 
wouldn't be involved in those projects, this poses the problem of who would 
admin Gerrit, and whether Google would host it indefinitely for us (Google 
is using pull requests for a lot of projects, and this includes j2cl –still 
a private repository–, jsinterop-base, jsinterop-generator, and elemental2).
This all pushes for using GitHub pull requests.
Now, from my PoV, each project maintainer would be free to choose how to 
manage code in their repo (see below): whether to use PRs for everything 
(never push to master), choosing a branching and merging strategies (I for 
one would use rebase and/or squash, possibly manually to squash some 
commits and preserve others, and follow "trunk based development" 
<https://trunkbaseddevelopment.com/> –this is actually what we do for GWT 
already; I'd love to see everyone embrace the same view, but I'm not sure 
forcing a "standard" is the way to go –bikeshedding, etc.), and versioning 
and release strategies (I think everyone would agree on using semver, but 
what about maintaining several versions in parallel? releasing at a 
scheduled cadence –like Guava and Dagger do for instance– vs. "release when 
it's ready", etc.)

For the time being, it sounds like individual groupIds are the way forward, 
> with the expectation of migrating projects to org.gwtproject and 
> github.com/gwtproject once they reach a certain level of quality and 
> stability, once we decide what that is.
>

As far as I'm concerned, I'm formatting all my code using 
google-java-format (and enforce it in build) and checking it with Error 
Prone (FindBugs could possibly be a good addition).
Wrt google-java-format, just like gofmt for Go, rustfmt for Rust, 
prettier+eslint for JS/CSS/etc., ktlint for Kotlin, etc. prevents 
bikeshedding on the formatting. I don't always like how it formats things, 
but at least I don't have to worry about it. “Gofmt's style is no one's 
favorite, yet gofmt is everyone's favorite.” 
<https://www.youtube.com/watch?v=PAAkCSZUG1c&t=8m43s>
Similarly for Error Prone, nothing to configure, just let it fail your 
build (early, really early).
But that's only a fraction of code quality (see also branching strategies 
above for another fraction).
With smaller projects, I think we might be able to run tests on 
BrowserStack or SauceLabs, through Travis.

Now, I'd like to advocate for more autonomy and responsibility for 
maintainers: manage their project the way they want, release when they 
want,  use Maven or Gradle as they prefer, etc. This means that there might 
be projects that are more stable and/or of greater quality than others (but 
so are modules inside gwt-user already actually).
Jenkins CI host all their plugin in their GitHub organization, and I don't 
remember someone being angry at the diverse levels of quality, stability, 
etc. Everyone seems to understand that they're maintained by different 
people and not "products from Jenkins". (btw, they don't seem to have a CLA 
either).
 

> As per our name use policy, that should fall to the steering committee to 
> decide, but I at least would welcome more feedback from contributors on 
> what those standards might look like.
>

This is a good question Colin!
Fwiw, I never had the intention to ever publish my work on 
gwt-{http,window,history,events,places} to any (binary) repository before I 
contributed it "back" to the @gwtproject organization. I had no reason to 
keep them private, so made them public, but I don't really expect anyone to 
use them yet, other than to experiment and give feedback to help make them 
better. It always was my intention to contribute them to @gwtproject, which 
is why I chose those gwt-* names and used the org.gwtproject package (and 
groupId).
 

> Likewise from that name use document, we should avoid the use of 
> org.gwtproject packages as well until that time. This might make migration 
> a little trickier (changing packages multiple times) as we refactor various 
> modules out from gwt-user. For my part, I would like to see this line 
> blurred slightly or at least clarified - code which started its life in 
> com.google.gwt but isn't presently "controlled" by the committee due it it 
> being in progress should perhaps not be restricted in this way (in the same 
> way that Vaadin ships a GWT fork, but still uses com.google.gwt packages 
> for compatibility). We could phrase this in individual projects as "This 
> code came from GWT, and is incubating here until it is contributed back to 
> GWT", making it clear that the project is not intended to be a third party 
> tool, but is using the name in good faith that this will be again part of 
> GWT soon.
>

Sounds good.
(won't do that for the above-mentioned projects though, as I'd like to see 
them moved to @gwtproject sooner rather than later; unless I'm asked to do 
so anyway)
As soon as we start hosting projects in the @gwtproject org, this won't 
really be a problem either: with Andrei' proposal to ask for the repo and 
then start contributing to it.
Though, what about GitHub forks that people use solely for contributing 
pull requests?

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/b372d774-b381-4452-8134-98948762d830%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to