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

tedbow's picture

It seems like this would require anyone you wanted even to post a comment on issue thread or post support request to make a github.com account (if we move the issue queues also).

Is that true? Would there be ways around this?

bayousoft's picture

"Switching to Github thus reduces a pretty major "Drupalism," which reduces the barrier of contribution for a critical mass of developers."

kylebrowning's picture

If Drupal is oriented around not re-inventing the wheel(i.e., adding symphony) then why are we doing just that with git.drupalcode.org....

redndahead's picture

It's a distribution issue. Since the project would be packaged and distributed on d.o. anyway the licensing issues stay unfortunately.

so hard to stay off my soap box

Crell's picture

That looks pretty good overall. There's lots of other factors in the spreadsheet but I think these are the big points of contention.

One correction I'd make is the swarming-forking. There's nothing at all that stops me from working in my own little sandbox until a branch is perfect, then posting a 200 K patch right now. Sometimes I do that, sometimes I don't. There's also nothing at all that says you can't file a PR on github with in-progress work. People do that all the time to get early reviews. There is no difference in visibility between the two tools; it's all down to how people decide to use them.

What is different is that the process for 3-4 people to collaborate on a single issue is different with GitHub. On Drupal.org if I post a patch, leave it for 2 days, it gets stale (fast moving core), dawehner can come by and reroll it for me without my involvement at all. (He does that for me frequently, because he's awesome.) On GitHub, if I file a PR, let it sit for 2 days, and then dawehner comes by to update it, he has to file a PR against the branch in my sandbox that I have to merge, after which it becomes part of the PR against core. If I am taking 3 weeks off of core for some reason, the issue is therefore stalled unless dawehner takes my branch and files a NEW PR against core, closing the old one.

PRs, in their current form, tend to favor a single "champion" for an issue with 0 or more people backing him up via nested PRs. That works well when one person is really driving an issue, which is often but not always.

If you have a lot of collaborative back and forth, I'd need to give dawehner access to my repo so we could just both push to the same branch and be done with it. (This is actually what we're doing now for the HtmlPage issue, since I'm very liberal with commit access to the WSCCI sandbox.)

D.o issues, in their current form, tend to favor "serial drive-by" issues. That is, I'll do one patch, dawehner will do a second, timplunkett will do a 3rd, etc. until it is done. That works well when you don't have a lot of back-and-forth between people, which is often but not always.

If you have a lot of collaborative back and forth, unless you manually setup a shared sandbox branch (as you'd do with GitHub) you basically start over with each patch that's posted, and never maintain any history, ever. I have a lot of issues where I've had 3, 4, or 5 local branches that contain just one commit for the latest patch from an issue plus one commit for my changes. Manually incorporating interdiffs to keep a meaningful branch history is not worth the effort at all.

I don't think either one wins in this case. Both models have places where they break down severely. Note also "in their current form" in both cases, as both could probably be improved or worked around in some way.

mortendk's picture

one thing that would make me happy is just the idea of being able to get around the licensing issues & beeing able to use CC 3.0 graphics in our themes.

This might be a small thing but it drives me nuts that i cant use cc3.0 opensource icon libraries in a theme cause of the goddamn GPL2 on d.o

... on the other hand thats a policy issue - argh my brain is fried after reading all of these comments

haydeniv's picture

No, that's not a part of the suggestion at all. We can (and probably shoud) keep the old forum content as a read-only historical archive.

Please update the issue summary as it is not clear that leaving historical data is the intent. I read through the article referenced for why Ubuntu made their move and a major driver for that was the outdated content returning dated search results.

That's nonsense. People don't really care what the domain name is of the place they're getting help. It's not like everything in the Drupal community happens on Drupal.org – there's also IRC, Twitter, mailing lists, etc.

I'll concede that point and retract my previous statement.

With this proprosal what exactly are we looking to do? Here is how I currently read it based on the summary and comments you've made:

  1. Put current forums into a read only mode
  2. Remove link to forums from the /support page
  3. Add a link to stack exchange to the /support page where forums link was

Does this sound correct? Did I miss anything? I am in favor of doing this by the way. I'm even ok with deleting or unpublishing the content from the old forums because it will only become more dated. I'm just trying to clarify what the steps to accomplish this is because it is a little muddy right now.

webchick's picture

...but I'm going to continue editing that comment for accuracy, so feel free to add a mail rule to ignore me. :D

Crell's picture

http://developer.github.com/

I don't see releases mentioned there, but if we ask for an API for them I doubt they'd be against adding it. It's probably on their internal todo list anyway.

If we're making releases on Drupal.org instead of letting Github do them (although I don't know why at that point), then we'd just be detecting a push of a new tag and taking action based on that. That's totally doable:

http://developer.github.com/v3/git/tags/
http://developer.github.com/v3/repos/hooks/

GitHub's API is fairly well designed, I think, so if it doesn't exist yet writing a Guzzle Service Description for it so that we can build logic around it should be dead simple:

http://guzzlephp.org/webservice-client/guzzle-service-descriptions.html

webchick's picture

First, thanks so much to everyone who has participated here, and has helped flesh out Ye Olde Spreadsheet of DOoOoOoOm. I feel like we have made a ton of progress here in identifying the actual pain points on Drupal.org, what makes Github so compelling, and what concerns are about moving our tools off-site.

Here's my current read of the discussion/research so far. Please help correct this where it is wrong; the D.o SWG has a meeting tonight and I'd like to provide an update, and I'd like to ensure that update is accurate.

Pro-Github

Github has a few key things going for it that are driving votes to this proposal. They are:

  • Ubiquitousness. With a community of 3.5 million users and 6 million repositories, used by many major open source projects, etc. there's almost no developer out there who hasn't been exposed to Github in some fashion, and most use it for their day-to-day work. Switching to Github thus reduces a pretty major "Drupalism," which reduces the barrier of contribution for a critical mass of developers.
  • Pull requests and amazing code review tools. Because patches are sooooo 2003. :P Pull requests integrate into the development process: Write code, run command, poof, record is there. Push more commits, poof, available to all. No need to code, diff, figure out interdiff, post, upload.

    Github also offers awesome code review tools; highlight a line, comment on it in-place, comments on outdated diffs get automatically collapsed from view, thus cutting down dramatically on 100+ reply issues. Drupal.org has Dreditor, a browser add-on which tries very hard to replicate some of this, but it's not really nearly the same.

  • In-browser editing of files. This is a huge killer feature, particularly for non- or less-technical contributors. See a typo in a comment somewhere? Click 3 buttons and you've got a fix submitted. Want to change the markup of that function? Copy/paste code directly from Firebug into the Github window and submit it directly to the maintainer in a couple of clicks. For a huge class of fixes, contributors wouldn't need to know anything at all about Git in order to help! Versus right now, they need an entire ladder of tutorials in order to learn how to do this type of contribution effectively.

    The other thing I really like about this is we'd no longer need to mark things "needs work" for silly minutia like whitespace or grammar; the reviewer could just fix it up as they go. This would be a huge shot in the arm, morale-wise to core developers, and probably others.

  • Not invented here. It could also kill off several thousand lines of "contrib but actually custom" code that our community is responsible for maintaining and paying for. Time/money spent on this huge chunk of code slows down our ability to keep our website up to date on the latest major Drupal releases, and would free up more resources for tackling problems that more directly relate to making Drupal a better CMS with better add-ons with a better website supporting it.

Pro-Drupal.org

While Drupal.org can feel old and crufty at times, there actually are a number of important benefits that it offers us, namely:

  • Centralization / Canonicalism. Two really critical features that Drupal.org offers are: 1) one place to look for all Drupal-related code (on Github it could be literally anywhere), and 2) an easy way to denote the canonical project (http://drupal.org/project/views is obviously "the views module" and http://drupal.org/sandbox/webchick/387493 is obviously not, even if I called it "the Views module." These are absolute requirements, so that means that even if we switch development/collaboration tools to Github, Project module (the thing powering the download pages) is here to stay. (Though, potentially not also Project Issue Tracking, Project Release, Version Control API, Version Control API Git, Drupal.org Git, Drupal.org Project, Git instructions, etc. etc.)
  • "Swarming" vs. Forking. Read Crell's nice comment for more details. This particularly happens in the core queue, but there's potential for it in any issue. The Drupal.org collaboration model is that a problem exists in one central place (issue), and people come around to solve it, working iteratively on the same chunk of code until it meets the proper standards. There is visibility by everyone interested in the fix at every step in the process, and all steps are in one place to go back and reference or learn from.

    By contrast, the Github collaboration model is built around individuals working in their own sandboxes, and only notifying people there are things going on when it's ready to merge. Lack of visibility into changes coming "down the pipe," as well as the risk of duplicate work happening is more likely here. It's also my understanding that people who've started PRs need to add co-collaborators one by one, which greatly works against "swarming" efforts. Because Drupal.org is great at...

  • Empowering the masses. Drupal.org-style "swarm" collaboration largely happens because anyone at all can change anything at all about an issue. Fix a title, add a tag, post a patch, mark it "needs work," update the summary. This provides a lot of opportunities for lesser-known (or not known at all) community members to help with "issue queue triage" and leave the tough problems for maintainers. The "Community Tagging" feature that Drupal.org offers, in particular, is huge in empowering small groups to self-organize around particular issues and knocking them out at sprints, etc.

    My understanding is that on Github, there is no concept of "community tagging," and rather all of these types of "issue metadata" need to be managed by the repo maintainers themselves. And, because there's no way to delegate people with permissions to only update issue statuses and not also the code like there is on Drupal.org, doing so requires limiting the list of helpers to those who you trust not to commit wanton code to the repo without review (either purposely or accidentally).

  • Structured issue queue metadata. We make rampant use of issue "components" (a pre-defined list of categories defined by the project maintainer to help find issues), as well as "stauses" (needs work, postponed (maintainer needs more info), reviewed and tested by the community) that put issues through a given workflow. Github offers non-structured tagging that would be a poor substitute for this, and as mentioned above, switching any of these statuses on any issue needs to be done by über-busy maintainers.

As a result in the short-fall of Github's issue queue/workflow features, this original proposal was written around the idea of only using Github for the code management, and not the issue queue. But doing this seems to negate a lot of the benefits of the proposal in the first place. :\ This is something we can likely work with Github on (especially if we become a paying customer of theirs), but it's worthy of note.

I know there are other many, many other pieces of feedback that are not reflected here, but I'm trying really hard to "bubble up" the biggest ones. Do you feel this captures them? If not, let me know!

haydeniv's picture

Just mulling this over, could we make an exception to the hosting GPL code on the repo for this project and state that exception on the project page saying you cannot use this theme for anything but d.o? And then use a modified license in a license.txt file in the repo stating the same? Of course the project could never have any releases associated with it including dev releases but if it was at least in a GIT repo it would make it much easier to contribute.

I'll see if I can get my intellectual property attorney friend to take a look and see what implications he thinks this could have.

Gaelan's picture

There's something very similar (also trello-like) for GitHub.

cweagans's picture

The issue tracker has been the main pain point that I've heard about. I don't think it's unreasonable to ask Github to add some additional goodies to their issue tracker, but since they don't really have managers, what timeframe would that happen on? Is it a matter of convincing some specific person that these changes would be beneficial? (scor noted that there's a previous drupal contributor that now works at Github, so maybe he'd be a good person to ask: https://groups.drupal.org/node/313068#comment-953993)

The other thing is that we could potentially build a more full-featured issue tracker on top of Github, a la http://www.bitbucketcards.com/ (I realize that's for Bitbucket, but you get the idea - it's a 3rd party service that enhances the existing functionality of Bitbucket's issue tracker)

cweagans's picture

I just wanted to point out that Github has the capability of creating releases, and if we can use it, that's great. If it doesn't make sense, that's fine too.

webchick's picture

Could we trigger these things to happen on Drupal.org using Github's REST API?

mikl's picture

You have posted this point several places in this thread. My response is here: https://groups.drupal.org/node/313083#comment-955518

mikl's picture

You have posted this point several places in this thread. My response is here: https://groups.drupal.org/node/313083#comment-955518

tsvenson's picture

Thanks for the insight to how Github works for the Symfony community Lukas.

What would be interesting to know in addition is what kind of users it is that participate in the Symfony issue queues. Here on d.o for example there are just under 30k users that has configured git access, but there are almost one million active accounts. Thus we have a lot of users with other main experiences and roles than developing that are participating in the issue queues.

Yes, our issue queues are often quite noisy as a result and sometimes the discussion are, shall we say, quite passionate about things. And sure there is bikeshedding going on too.

For me that is a price well worth paying for the added value all these users, me included I hope, brings to the community. Particularly as Drupal over the years have moved to a more UI-driven sitebuilding platform feedback from and testing by users are invaluable.

There are also many users, again me included, that have discovered they also wanted to give coding a go thanks to this. While my own skills are still very basic and at novice lever, there are many others who now are respected contrib developers and project maintainers.

Thus far in this discussion I haven't yet been convinced that will be possible to retain after a move to Github. I think the risk is quite huge we will lose most of them in the move.

I notice you have been a member here on d.o for 2+ years so maybe you can shed some light into this for me. Would be greatly appreciated.

mikl's picture

So is it TRUE that by Drupal we can not develop powerful website like Stack Exchange?

Nope, but just because we could, doesn't mean that we should.

Bringing the forum module to feature parity with a modern engine like Stack Exchange would require thousands of man hours, and all we'd accomplish would be reinventing the wheel.

That time could be spent a lot better, and I think you'd be hard pressed to find volunteers for that kind of undertaking. Forum is one of the least-loved modules in Drupal core and has remained virtually unchanged since Drupal 4.5 or so.

mikl's picture

What is being proposed here is uninstalling Forum module from d.o in effect deleting all of the forum content.

No, that's not a part of the suggestion at all. We can (and probably shoud) keep the old forum content as a read-only historical archive.

and basically saying we're not doing a good job providing support so go look somewhere else for it.

That's nonsense. People don't really care what the domain name is of the place they're getting help. It's not like everything in the Drupal community happens on Drupal.org – there's also IRC, Twitter, mailing lists, etc.

I just want to be clear what impression this may convey.

Weasel words. Don't do FUD.

[...]outdated results. I think this could have been resolved with better forum pruning.

Yeah, that's also a huge problem with the current forums. And the exact purpose of the Stack Exchange engine is to enable good community moderation. They've spent several man-years building and tuning a great system for that. No way we could replicate that.

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: