Recent comments

Events happening in the community are now at Drupal community events on www.drupal.org.

Welcome

Welcome to the brainstorming group for the 2014 Drupal.org roadmap! This group is to help the Drupal.org Software Working Group gather community input into the 2014 budget and plans for Drupal.org improvements. Please read the announcement for more background/details.

Latest ideas Most popular Recent Comments

To participate:

  1. Review the list of submitted proposals and "vote up" and/or comment on ones that speak to you.
  2. If you don't see your idea reflected, propose your own ideas using the idea template.
  3. While we want to hear about everything that's on your mind, we're especially interested in small, but impactful ideas.
  4. Proposals are wiki pages, so feel free to provide additional details in other peoples' proposals; think of them as "issue summaries" for ideas, so keep them neutral.

Voting/feedback will considered until 00:00 GMT on September 6, 2013, in order to give us ample time to make a proposal (which the results here will be a part of) for the Drupal Association Board Retreat prior to DrupalCon Prague. Thanks for participating!

Recent comments

barryvdh's picture

Sorry that I didn't read all thousands of comments on this page, but I just wanted to share my experience with Drupal.org and Github.

I think it's great that Drupal is using more 'standard' frameworks/tools etc, like the Symfony core and Composer.
Just like Composer is the de facto standard for packaging packages these days (and hopefully Drupal modules too?), Github is the standard for open source projects source control and collaboration.

It might not fit the current workflow for 100%, but seeing so many projects on Github, I'm pretty sure that nothing is impossible to overcome, certainly as Github has offered help..

I understand that the issuetracker doesn't have as many features, but I think a lot can be helped by just tagging labels. The current drupal issue trackers always appears to be slow and a bit chaotic, due to all the options you have to enter/search.. Certainly compared to Github, which let's you create/respond to issues within seconds without too much hassle..

Also, the patch system is horrible. The issue tracker is often full of half-done patches where I can view the changes, but I usually just want to see the result (+ changes) in a nice way, not a text file with +/- and line numbers..
With Github, you can just view the Pull Request changes or view the fork's code entirely, good for easy testing..

And for the code itself, is it at all possible to even view the code without downloading/checking out? For many projects/forks I just want to have a quick look at the code, see the latest commits and compare versions. (EDIT: As I'm writing this, I just found http://cgit.drupalcode.org/drupal/ but that looks horrible compared to Github and is not really promoted on the website/module pages..)

I also don't know how to easily submit a patch with the webinterface, which I do with Github quite often (typos, small tweaks etc are fast to fix without checking out, fixing, pushing etc)

I really like Drupal and I love that it embraces Symfony and other tools, but PLEASE make it easier to contribute. Especially now that you use those other tools, we have more code in common with other project, so outsiders are probably more eager to contribute some code/fixes when they have a familiar interface.
Don't you want to be part of the 'PHP OS Community' instead of only the 'Drupal Community'?

(Sorry about the negativity about the drupal.org issuetracker/git interface, but I never felt inclined to actually view the code/submit a patch, in contrast to Github which makes it all soooo easy.. I love Drupal itself ;) )

rooby's picture

Good point about Drupal governance and decision making power.

I don't see a consensus ever being reached within the community on whether or not the perceived benefits of this would be worth the amount of effort required to switch and the amount of perceived impact on the community.
I haven't really seen much in recent debate that hasn't already been said in previous debates, which points to time wasting like you say.

Another thing is that if professional developers are deterred from contributing to something they want to contribute to just because they don't want to learn the ways of that community (it isn't just the Drupal community that have their Drupalisms, all communities have their own ways of doing things to some extent), then I would argue they aren't much of a professional.
Working with technology means learning new things all the time.

I would say there are other areas of Drupal that are larger barriers to entry than learning the workings of Drupal git and issue queues, which really aren't that much different to what you would find anywhere else.

rooby's picture

Actual content aside, one things I find annoying about these types of debates is the fallback to people being or not being insiders.

Technically you could be referred to as a github insider and I could say that you are speaking github propaganda.

Insider is not a proper argument so it should stay out of the discussion.

cyberswat's picture

nice .. has nothing to do with what I was referring to about github ... but nice.

cordoval's picture

sweet, DrupalCon will have 2 sessions to talk about this tooling, outstanding!

cyberswat's picture

Github offered to send a team out to discuss issues like this and help us find a solution ... all the way up to the point where they offered resources to help craft and document the solution.

The only comment I'm adding to continue this thread is that as smart as everyone in this community is ... maybe we should see what they have to say. I know they would like to talk to us.

jaypan's picture

Nice post. Theoretically, it should shut down conversations on moving to Github. Realistically, those determined to do so will keep talking about it, instead of using their time productively to improve what we already have.

neclimdul's picture

Thanks for bringing this perspective into the new discussion. A lot of the talk has been about new users. We should totally be thinking about new user experience and engaging new users. We should even be considering how better to onboard them. However as jthorson did such a good job of pointing out, we have a vibrant community.

The fact is, much of drupal.org is the codification of the community and culture that we all share. We should keep this in sharp view in this discussion because as important as new users are, they're a close number #2 to supporting the community and culture that we already have.

jthorson's picture

2 cents? You've taken up the torch on a highly divisive debate that thankfully had died down half a year ago, allowing folks to focus on "making" actual progress instead of "talking" about progress. I find this constant re-hashing of 'smoking crater' issues (to steal a webchick coinism) extremely frustrating every time it comes up, especially as someone who has been involved with i) Drupal governance, ii) Drupal.org infrastructure, and iii) actively attempting to upgrade our internal toolset.

If we had had half as many people hours volunteered towards working on developing our automation infrastructure as the community has put into the github debate in the last year, we would have an internal feature set that does everything that github does, but also works around every one of the github shortcomings that people have identified as well!

My perspective is that the 'lets move to github' debate is a developer-centric argument which does not take into account the rest of the Drupal community, including hobbyists, site builders, clients, and evaluators. Furthermore, I see the centralization of the community within the Drupal.org site, a feeling of pride and ownership around the own-dogfood infrastructure, and most of all the freedom to evolve and adapt as the needs of the community change, all as significant cornerstones to the description of what makes Drupal Drupal.

Admittedly, this evolution and adaptation hasn't kept up over the last few years. The project, and drupal.org site specifically, built up a significant amount of technical debt which needed to be overcome before we could again start building forward momentum on this front. This got further stalled out by the politics of the drupal.org D7 upgrade ... ironically, we are 6-8 months behind where we should be as a community, specifically because of the github debate when it first arose (which essentially froze the upgrade for a period of time, further delaying those of us out there who were actively trying to work on new site functionality, but dependent on the D7 changes to do so).

That said, things have been changing significantly over the last 6-18 months. A majority of that technical debt has been overcome, the DA has staffed up new development positions to help with the ongoing evolution and growth of the Drupal.org site and ensure we don't let it grow stale again, and volunteers are actively developing new infrastructure to enable the more advanced patch workflows and automation being requested by developers. Lets not demotivate these individuals and derail their efforts, by once again re-engaging the 'github! github!' pitchfork zombie mob!

You suggest launching a pro/con document for the debate ... I think I could identify at least three such documents already in existence. My perception has been that those most adamant about the perceived need to move to Github are very dismissive of the arguments against it, and have taken a 'that's not valid because here's a potential workaround' approach to the debate. Meanwhile, those against the proposal are making the arguments based on fundamental values, beliefs, and principals; which are not something that is easily changed simply due to the presence of an alternative solution ... and thus, neither side is going to budge (except out of exasperation, which I suspect is what has happened in at least one public case).

At the end of the day, it simply comes down to a difference in what we individually hold most important from a values perspective, and what order we prioritize the various Drupal community values. This misalignment is a fundamental division which will not easily be resolved through g.d.o or the issue queues. This is a big part of why the Drupal Governance initiative took place, in order to lay out where the true ownership and decision-making power exists in situations where the community can not come to a near-consensus on its own.

You suggest focusing on workflow ... with this I am in full agreement. Define the experience you want on Drupal.org ... but then leave the implementation details up to those responsible for the design and implementation work. The Drupal Governance activities over the last 24 months, and the establishment of the technical and drupal.org working groups, were designed specifically to provide some leadership, and establish formal responsibility and accountability for highly divisible topics such as this. The Drupal Association has completely realigned their own structure and activities to ensure that we do not repeat the mistakes of the past, and have committed to making Drupal.org everything that developers need it to be, and more.

You say "Creating any type of in house barrier will always deter a great majority of contributors who know that they can just fork and PR any repo worldwide available in github." This too, is an experienced developer-centric argument, which is positioned as gospel within the drupal-to-github debate. However, anyone who has spent any time in the "new contributor project applications queue" will realize that this is a misrepresentation. A huge number of new contributors attempting to contribute to the Drupal project have NEVER used git, let alone github. What many experienced Drupal developers fail to realize is that we still have an enormous number of "hobbyist" contributors, who build a module to scratch their own itch and decide to publish it back to the community ... but in the meantime, have never worked with anything but tarballs. Yes, this may change after the launch of D8, but that's an entirely different debate for an entirely different time. ;)

cordoval's picture

@crell, @chx is with us on this. I believe we fail to see he is up for the move, just that he is trying to warn us to just be very careful and to prepare the road before we walk on it.

@chx let's try to build a plan and perhaps launch a document where we summarize pros and cons and ways in which a possible beta flow would work on a system like github or gitlab, and with a layer of a tool like gush be it whatever or a custom one.

I agree we should first not talk about implementation details, but rather on sketching rather the current flow and how can this be improved should we move to a bottom layer to say gitlab-like platform.

for instance something like:

Flow 1:

1 It should be easy for anyone to contribute to an ongoing issue without involving another human. This is absolutely paramount. There is nothing more important than this.

Anyone can do fork, checkout branches and send PR's towards each other branch, or in particular Drupal would have cannonical branches 1 per real issue (not all issues are cannonical issues, they are say differentiated by labels and are part of a milestone in the system). So given a top layer of guidelines perhaps we can achieve more closure and agreement, this is just an example, and probably chx can help bake it, we all will be able to help bake things some more.
So anyone can submit code, and we have to have a guideline to connect their submission with the main cannonical issue. Also aided by labels or branch convention or PR title tagging convention and github features for linking PRs/Issues.

  1. At the same time it should be easy to understand why a change was enacted in a way it was.

This could also be achieved by a status, more than just closed or open (green or red on github), but more something like a reference with a summary of whoever wants to be connecting their contribution to the thread. they can use gists or even patches, maybe the tool for authoring should be smart enough to pick up the patches that are in a thread and build later a consolidated PR to be lined at the bottom. Just an idea.

  1. The open source world moved to github. We need to as well. This is debatable but unavoidable.

We all are agreeing here. This will come with greater strength as we start registering components from drupal in packagist or/and also in their own drupal packagist, however not making distinction is probably what will make drupal more widespread and invite further contribution. Creating any type of in house barrier will always deter a great majority of contributors who know that they can just fork and PR any repo worldwide available in github. I for instance personally find very disconcerting even to have to switch from github to gitlab just to depend on a lib. This of course is subjective and gush or others could make it a bliss or maybe a search across that will make it platform independent but it is more of an unsaid norm to be on github and packagist.

also there are currently good boots out there, proprietary but we actually also started a gush-bot-io https://github.com/gushphp/gushbot mimicking http://fabbot.io/ which does minor stuff for cs.
Having a full rest bot that communicates even with a cli like gush or other could definitely do things a bliss.

Just as a note also, Gush was made for maintainers and contributors, and i give always an example from a friend who QA a software on a mac, but had to install windows and she clicked so much the track on windows that she had to stop working for days and the doctor told her swollen elbow needed to stop working. It was pretty bad, and then we created Gush because even github interface clicking and doing this so many times is just not humane imo.

2 cents

chx's picture

I am thinking nothing but new users day and night , believe me :)

Crell's picture

If someone is already contributing to almost any other PHP open source project, they already have a GitHub account. If we want them to contribute to Drupal, why should we force them to create an account on Drupal.org and hand over all their data to another entity (profile, activity, etc.)?

That question cuts both ways. If we want to attract more contributors, we need to think about it from the "new user" perspective, too.

cordoval's picture

nice summary @chx, I believe (now we are understanding each other better after our call over skype), I am with you on working on the points you are proposing. I will try to focus now on core, but this is something i will come back to to comment. Thanks chx!

chx's picture
  1. It should be easy for anyone to contribute to an ongoing issue without involving another human. This is absolutely paramount. There is nothing more important than this.
  2. At the same time it should be easy to understand why a change was enacted in a way it was.
  3. The open source world moved to github. We need to as well. This is debatable but unavoidable.

In the current github way we can do two things without involving bots:

  1. Create an issue and link code changes to it. This satisifies 1. but kills 2. as the conversation becomes a two level tree where the top is the issue and the leaves are the pull requests. Reading this becomes painful fast.
  2. Create a pull request and then when someone else wants to work on it, they can fork the branch the PR was opened for and link to their PR. The conversation hopefully becomes a linked list (but even that would require a bot closing the original PR the moment a new one is submitted based on it). Without a bot, this becomes a full blown tree and an incredible mess.

What we need to think on is better workflows either involving Github the company or Github APIs.

attiks's picture

@Cordoval, I know, I would love to use gush for d.o.

cordoval's picture

i think the reason that i do have work on github, does not emphasizes of the flow of collaboration. Only those doing strong FOSS with PR flow can attest on how this flow on git is very flexible.

So even if it is to move to gitlab self hosted, that is definitely a win compared to the current state of things.

attik the library you mention is used by Gush too

Anonymous's picture

That's currently what I do on the projects that I maintain, though I do leave the issue queues on Drupal.org open (at least for now). I have a zap set up on Zapier to take new issues from Drupal.org and create a new issue on Github.

Also, nothing is really stopping people from maintaining their own release feed. You can tell Update Manager to look somewhere else for project information. I'm about to go ahead and start doing that for my other projects since I don't have access to create full projects and it doesn't look like I will anytime soon.

damienmckenna's picture

Don't forget that there's nobody stopping anyone using multiple remotes on their contributed project so they can use Github for development & support, and then push to d.o for releases.

jaypan's picture

I also use Github regularly for certain projects. Github is great, and they do what they do very well. So for myself, it's also not a fear of change. Rather, I'd prefer to make Drupal.org into what we want/need, even using Github as inspiration, rather than moving Drupal project hosting to a 3rd party.

attiks's picture

I had a great talk with the Sytse from Gitlab

We would love to see Drupal using GitLab to enable better collaboration!

As discussed the free GitLab CE also supports LDAP user login.

If you do need to use GitLab EE we are prepared to give Drupal.org a free license for this.

We can also do a free call with your operations people to set up a highly available system.

The PHP API library I mentioned was: https://github.com/m4tthumphrey/php-gitlab-api

Subscribe with RSS Syndicate content

Recent comments

Group organizers

Group categories

Difficulty to implement

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: