How should Discourse handle GitHub pull requests?

(Kevin P. Fleming) #19

We have an open source GitHub-attached CLA Manager that will be released in the next few weeks; if you can hold tight, we may save you quite a bit of work.

(Jeff Atwood) #20

We already have a bot which checks to see that GitHib pull requestors have filled out this form:

You’ll notice it in action on the pull requests

(Jeff Atwood) #21

Can you be more specific than “saddened?”

(Kevin P. Fleming) #22

Alright, I’ll let you know when our CLA Manager has been released. It’s a lot friendlier than using Google Docs, and fully supports corporate CLAs (including allowing a corporate license manager to authorize/deauthorize individuals, etc.). If you want to use it, that’s great, if not, no loss :slight_smile:

(Jeff Atwood) #23

My only point was that we already did the “lot of work”, though more and better solutions are always welcome!

(sparr) #24

I am far less likely to contribute to such a project, and expect to see negative response from the community if/when a proprietary/closed fork of the software is made in the future.

(Jeff Atwood) #25

Did you see this at under section 6?

We, as authoritative representatives of “The Company” (Civilized Discourse Construction Kit, Inc.) do solemnly swear and commit back to You that the “The Project” remains freely accessible under these terms. As “The Project” continues to remain under the control of co-founders Jeff Atwood, Sam Saffron and Robin Ward, “The Work” (Discourse/Discourse) will always and forever remain publicly free and available in its entirety under the same terms as are described in the GNU General Public License (GPL) v2.0. If, at which time, Jeff Atwood, Sam Saffron and Robin Ward no longer retain control as co-founders of “The Company”, and the licensing model for “The Project” (Discourse/Discourse) changes to another scheme other than the GNU General Public License (GPL) v2.0, then an effort will be made, if possible, to hand “The Project” off to a third-party under the guidance of the Free Software Foundation.

The purpose of the CLA is to allow us to re-license and sell “enterprisey” versions to enterprises that are allergic to GPL, e.g.

(sparr) #26

I did. That desired use case does not bother me so much. However, the CLA as written would allow you to abandon Discourse, fork a proprietary product, and never look back. I don’t expect you to do that, but maybe you die or retire or get bought and the next people in charge aren’t so scrupulous.

(Sam Saffron) #27

Thing is, by the time anything like that could possibly happen Discourse would be so mature that the community would simply fork and start working on the fork instead of the original Discourse.

The code is GPL, we can not retract it from the GPL.

(sparr) #28

It could happen tomorrow. It could happen 6 months from now (the stated goal timeline for Discourse being buyable).

(Sam Saffron) #29

hmmm, I am not sure what exactly you are suggesting here? how can we make you feel more comfortable?

(sparr) #30

I don’t think you can. I am a fan of “share alike” licenses (like the GPL, CC-SA, etc). I’ve released code (stand alone and patches to other projects) under non-SA licenses before, but far more grudgingly and less often. Having a CLA is probably the best business decision for Discourse, so I don’t hope to change your mind.

(caue rego) #31

After programming for over 20 years I still feel like a complete noobie with you guys talking here… I’ve made a couple of pull requests already, very insignificant ones, and I’m starting to think about copying at least most of your whole business model (as I perceive it) to start one of my own open source projects.

I’m also always thinking about, one day maybe, start contributing more with pull requests, and just now I fell on this old topic and, after reading it without clicking in all links, most of which I never heard of, I’m in doubt of a few points on this whole discussion:

  • What is the purpose of the CLA? I honestly haven’t read it as I’m averse of legal terms language. Could you, maybe, add a simplified explanation for it? I never received any bot warning for my few contributions.

  • What does Travis Continuous Integration do exactly? I read the whole site, which is small if you take off the blog, and I couldn’t figure it out. Google also didn’t help me there. Code Climate, at other hand, is pretty clear to me, they say it very upfront: “Automated Code Review - Quality & security analysis for Ruby on Rails, PHP and Javascript.”.

Finally, are there any other updates to this topic? Sorry for resurrecting it if it was supposed to be dead already!

By the way, I found this by searching for “pull” on this site. If that helps anything…

(Alexander) #32

I think a simplified explanation would be a great idea.

AFAICT the CLA means* that the Discourse org owns your contributions, so they can re-license the code however they want**. I think it also says* that as long as the Discourse org is in charge of the codebase, the codebase will be available under a GPL-compatible license.

* I could be lying, ask your lawyer to be sure
** which they do to make money

From their getting started doc:

Travis CI is a hosted continuous integration service. It is integrated with GitHub and offers first class support for:
C, C++, Clojure, Erlang, Go, Groovy, Haskell, Java, JavaScript (with Node.js), Objective-C, Perl, PHP, Python, Ruby, Scala
Travis CI’s build environment provides different runtimes for different languages, for instance multiple versions of Ruby, PHP, Node.js. It also comes preinstalled with a variety of data stores and common tools like message brokers.
You can easily test your project against one or more versions of languages and even data stores.

It’ll let you run stuff on their computers based on GitHub triggers, which makes it handy to set up as a place to run your code’s test suite every time you commit to your repository.

(Michael Downey) #33

I also am not a lawyer …

However, it reads pretty clear that you are granting a license, not assigning copyright (ownership). However it also gives them permission to relicense your contributions under any license terms they wish, including open source and commercial licenses.

It is a non-exclusive grant so you are still welcome to license your personal contributions to others however you wish.

(caue rego) #34

Aha, so it’s meant to simplify testing in many different language versions… But what for? Isn’t the code meant to run in just 1 version?

(Alexander) #35

Authors of libraries, plugins, etc might want to test against more than one version of a language or framework.

However any continuous integration system could still extremely useful when testing against just one version of things…

(caue rego) #36

Yeah, I meant “what for” in here. So, basically to complement Code Climate in the languages not covered by it?

(Alexander) #37

They cover separate things:

Code Climate is a service that runs an analysis of your source code. It lets you measure, over time, the “quality” of the code you write.

Travis is a service that runs your test suite every time a commit is made. It lets you know pretty quickly if a new commit has broken some functionality that you previously expected and tested.

(Sawood Alam) #38

As the code base grows bigger and bigger, it is very important for maintainers to learn to say NO, but politely.

These are very important steps for encouraging contributions. Any actions be it accept or reject should be timely. Contributions, big or small, deserve constructive feedback. Failing to act or communicate timely makes the contributions stale and difficult to merge later at the same time it discourages the new contributors.