Drupal Contribute Workshops: activities

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

This Wiki serves as a collaborative planning page for
the Drupal Contribute Workshop events.

Where do we start? Getting Involved

It’s really the Drupal community and not so much the software that makes the Drupal project what it is. So fostering the Drupal community is actually more important than just managing the code base.

Why contribute? Getting Involved Guide

Drupal's success is primarily based on the immense amount of collaboration between contributors.

Motivation:
Following up with New type of drupal one-day camp: DrupalConTribute, which already introduced this idea, a while ago, this document, mostly focuses on the types of activities that could be carried by participants as a complement to the initial post.
The primary focus of this document, would be to provide illustrations and concrete examples of contributions for potential participants who would like to know what they could/would do if they were to attend these events. Further details about events themselves, such as after parties, food and other related topics are not specifically discussed in this Wiki.
To better understand the motivation behind the Drupal Contribute workshops, please look at New type of drupal one-day camp: DrupalConTribute.

Ideally, we would be able to bring participants with different complementary skills to work together towards any type of contribution to the community, as described below.

Suggested scope of work and contributions for Drupal workshops (based on Ways to get involved): [TOC/Index]

  1. Explore the code, testing and reporting
  2. Discover, learn/study: organized/structured trainings with tutorials
  3. Review and support: peer code reviews, support on drupal.org/IRC/IM/QQ Groups/other
  4. Polish the shape: Design/User Experience(UX)/User Interface(UI)/Theming
  5. Craftmanship, maintain/create: tickets fixing, module maintenance or code contributions
  6. Transfer your knowledge: Documentation/translation
  7. Face reality: Open projects, working with others
  8. Open contributions: Ideas and suggestions are welcome!

 

1 - Explore the code, testing and reporting

One of the greatest strengths of Drupal through its community relies in its capacity and speed to test and report issues.
The general idea of this type of contributions focused on testing code and reporting on identified bugs, potential issues or support requests.

No coding should really be involved or necessary for this type of contributions since most of the work relies in creating new tickets and documenting existing or new identified issues while testing. Any code from drupal.org could be considered, such as Drupal Core (for example 8.x branch), contributed modules/sandbox, themes (latest dev versions), etc...
Ideally, logged/tracked issues would be able to follow recommended standards, best practices and guidelines, as suggested at Issue Summary Template standards, and if possible also contain suggestions of potentially viable solutions.

Existing issues in need review status, could also be tested with or without patch and a log/feedback comment could be posted in corresponding ticket to provide information and results on the tests carried (whether successful or not).

The topics discussed would pertain to the groups and initiatives such as Testing and Quality Assurance, Drupal.org Testing Infrastructure, Drupal.org Improvements and any other discussion groups related with Testing and Reporting.

Examples of concrete results:

  • Several issues identified in Drupal Core 8.x, created several bug reports.
  • Applied and tested several patches for contributed modules. Reported in opened tickets on successful and failed tests with information on the context and potential solutions.

[TODO#1, TODO#5, TODO#7]
Back to top

2 - Discover, learn/study: organized/structured trainings with tutorials

This scope of work probably needs to be further defined for each session and more closely organized depending on participants.
For each session we would need to further define at least a trainer and several topics to be covered along with tutorials.
Ideally, trainers, topics/tutorials would also remain open to particular requests from the community and for example, for each session a choice of different topics could be given to the community with votes [TODO#3].
Any level of knowledge and experience in Drupal could be considered from Beginner to Advanced (to get a basic idea for technical profiles: Knowledge Assessment For Drupal).

For Trainers:

This type of contributions may also present a very interesting experience and opportunity for potential trainers who would also greatly benefit from this type of experience by:

  • Challenging their Drupal knowledge and experience skills.
  • Improving communication skills.
  • Structuring and improving training materials, resources or tutorials.
  • Mentoring others or working towards mentorship (see Google Summer of Code (GSOC) and Drupal Group: Google Summer of Code 2012).
  • Self evaluating by getting feedbacks and testimonials on training practices or teaching skills.

Sometimes, it could be surprising how much can be learnt by holding training sessions, in particular answering questions from participants.

Language matters: Chinese over English

For this particular initiative, requiring a large part of communication, we would probably have to specify a language before hand.
Chinese would be considered as default, in the sense that every session could be at least carried in Chinese (priority given to the local community).
For Non Chinese speakers, a preferred language would have to be specified as it may present some limitations due to the language barrier.

Examples of concrete results:

  • Covered intermediate level topic Introduction to Drupal 7 Database API: hooks, classes, database engines, with several tutorials.
  • Covered beginner level topics: Review of Drupal Core files, Drupal hooks basic module API, Form API, with several tutorials.

[TODO#4, TODO#7]
Back to top

3 - Review and support: peer code reviews, support on drupal.org/IRC/IM/QQ Groups/other

Related topics: Code Review of Full Project Applications, Helping maintainers in the issue queues, see also: 代码审查/Peers Code Review.

Examples of concrete results:

Additional Resources:

[TODO#5, TODO#6, TODO#7]
Back to top

4 - Polish the shape: Design/User Experience(UX)/User Interface(UI)/Theming

The purpose of this working group would be to bring participants for who visual appearance matters, to work on improving Drupal's overall design or user experience.

  • Improving Drupal Core or contributed modules' user interface or design with mockups/wireframes [TODO#8], or design files.
  • Explore/discuss standards and best practices for Design, Theme development, Usability and User Experience (UX).
  • Contribute patches to existing themes to improve browser compatibility, fix issues, or improve any other aspects related with the front-end.
  • Help improving/drive and comment UX/UI community initiatives.
  • Contribute themes, designs, layouts and related documentation on theme's user interface or implementation/standards/APIs.

The scope of work would be mostly oriented towards users' front-end and interface programming which already covers a very large range from purely designing PSD files, to improving responsive themes with SASS or JQuery interactions.

Profiles that might be interested:

  • Designers: Pure graphic design with Photoshop, Illustrator (AI), GIMP or other graphic/art software.
  • UX/UI Designers: With a higher level perspective, design wireframes and interfaces based on users' experience and best usability practices. Requires a deep functional understanding of the resulting application.
  • Themers: Involving PHP or other server side programming and knowledge of the Drupal theming system.
  • HTML/CSS integrators: Different versions for HTML/CSS, browser compatibility testing, responsive theming, etc...
  • Javascript/client-side programmers: Mostly browser/front-end programming involving various libraries such as JQuery or other Javascript libraries.
  • Other (Consultants, project managers, etc...)

Examples of concrete results:

  • Contributed patches to popular Spark theme.
  • Contributed new responsive theme with designs, layout, wireframes and code on drupal.org.
  • Provided UI/UX review in bug tracker after testing from a high level perspective the user interface of several contributed modules.

[TODO#5, TODO#7]
Back to top

5 - Craftmanship, maintain/create: tickets fixing, module maintenance or code contributions

One of the most discernable type of contributions, the realm of developers: Contribute to development

Examples of concrete results:

  • Posted several tickets in module's tracker assigned to developer, submitted patch, reviewed and tested by by the community (RTBC) and pushed.
  • Rolled in GIT code and fixed assigned issues.
  • Contributed/added new module or sandbox code in GIT

Additional resources:

[TODO#1, TODO#4, TODO#5, TODO#6, TODO#7]
Back to top

6 - Transfer your knowledge: Documentation/translation

The lack of documentation would probably need to be more emphasized when it comes to assessing the reasons of a project's failure, or on the contrary, success for competing Open Source initiatives (such as Drupal projects). Comparisons of contributed modules could highlight the importance of Documentation as part of the selection criteria which would gain the largest adhesion from the community. For more information, see Contribute to documentation.

Screencasts and any other media tools to improve the general quality of the documentation or tutorials would surely be highly recommended [TODO#4].

Examples of concrete results:

  • Translated to Chinese Simplified many new strings in modules, themes.
  • Translated to Chinese Simplified Views Core or Rules documentation pages and tutorials.
  • Added new tutorial on groups.drupal.org on using a contributed module (Display Suite, for example), with link to screencast page in Chinese.

[TODO#1, , TODO#5, TODO#6, TODO#7]
Back to top

7 - Face reality: Open projects, working with others

Many projects carried with Drupal or sponsored by the Drupal association involve actors from very different industries with skills, experience and knowledge out of the Drupal world. The general idea of this initiative is to try to bring people with different backgrounds into getting more involved with Drupal (proselytism in a sense).

Once again the scope of this working group would have to be further defined, discussed before hand and more structured.
In reality, this comes down to a free day of development/consulting/design/help for anybody with good ideas of projects that could potentially benefit from/to (both ways) the support of the Drupal community for various reasons:

  • Project is technically interesting.
  • Project is particularly suitable for Drupal or demonstrates a particularly convenient/common use case.
  • Project presents a good training opportunity or an application of what was learnt/studied in previous workshop training sessions.
  • Non profit, Open Source, Associations, and any other projects driven by/towards community services.
  • Any good reasons that would raise participants' interest.

Depending on community's response and interest, any project could be considered, from a complete website, to coding particular parts of modules, themes, etc...
The main difference between this group and other types of contributions, such as modules or themes development (#WS4, #WS5), is that proposed projects/contributions would need to have a strong correlation with a real-life problem and potentially involve people with backgrounds outside of the web development or Drupal world.

Examples of concrete results:

  • Someone with not much programming background, actually coming from Marketing, expresses a strong interest in Drupal and would like to build a small website for an association with a small blog and a few more pages or functions. A matching/interested programmer from the community could be able to teach/explain/show to this person how the site could be built by themselves.
  • More complicated projects for advanced programmers, not a full project, but just bug fixing or sprinting (bug fixes, testing, feature request, etc....).

[TODO#1, , TODO#5, TODO#6, TODO#7]
Back to top

8 - Open contributions: Ideas and suggestions are welcome!

The current list could most likely be further expanded with other topics/initiatives, therefore, we would greatly appreciate any further ideas, suggestions, recommendations for any other type of contributions that wouldn't have been covered above and could help contributing to the Drupal community.
Unlike what most people think, contributing is not only about sharing code, submitting patches or modules. By doing an action as simple as posting a few lines comment on drupal.org, to ask a question or report a problem encountered, you would already be making a highly valuable contribution.
Examples of other potential contributions: Project management, Marketing Drupal).

[TODO#7, TODO#9]
Back to top

Additional notes:

  • Contribute from Home:
    None of these activities would actually necessarily require a physical presence and we are going to look at formalizing ways of collaborating online, through Groups, IRC, Instant Messengers (IM), etc... [TODO#1, TODO#4]
  • Communication and contributions would have to remain, as much as possible, within the range of tools provided or recommended by the Drupal community, such as drupal.org, groups.drupal.org, localize.drupal.org, Ventral/PAReview, etc... Online project collaboration would also be preferable [TODO#1, TODO#4].
  • Please ignore any items marked as TODO#N, since they refer to additional TODO notes, initially used by authors. They should most likely be removed later on as this Wiki page is edited.
  • This Wiki page certainly doesn't have the pretension of being an exhaustive or official guide to workshop or index of Drupal contributions, work groups or discussion topics.
    The only purpose here is to structure and better define different types of work and contributions for carrying collaborative workshop events. The content of this Wiki only engages authors' opinions with which you may disagree and we encourage you to react.

 

We would greatly appreciate your questions, comments, feedbacks, objections, concerns, or suggestions on any aspects of this Wiki page, and would surely be glad to provide more information.

Thanks very much to all for your involvement and participation.
Cheers!