Novice Contributor Sprints at DrupalCon Vienna
Everyone is welcome (including you!)
With just about two weeks to go until DrupalCon Vienna we are anticipating an amazing week of learning and collaborating ahead! There will be code sprints all week, but Friday is our dedicated sprint day when anyone and everyone can come contribute to Drupal core and participate together in guided sprints. Add your name to the sprint signup sheet and join us.
First-time sprinters might spend their sprint day working on just a single issue, and that's okay. Some issues take weeks, months, or even years to solve! We all build on each other's work to improve Drupal for everyone.
Sprint topics at the mentored core sprint
First-time sprinter workshop
This hands-on workshop will cover the basics of contribution essentials like the Drupal.org issue queues and IRC, setting up Drupal 8 for local development on your laptop, and optionally git training. If you want to try setting up a development environment ahead of time, try the tools installer.
After attending the first-time sprinter workshop you will be prepared to participate in the Friday afternoon core sprints in Vienna, which will include plenty of tasks for contributors of all skill levels. There is no need to be a coder to participate in the sprints. There will be tasks like testing issues manually, adding documentation, and updating issue summaries that do not require writing a single line of code. Sometimes, not being a seasoned Drupal contributor is a positive advantage as you can ask the questions others neglect to ask.
Major issue triage
If you're already familiar with Drupal, but haven't contributed much before, the major triage sprint is a good way to get more involved. It's also a good fit for project managers, on-and-off-contributors, QA engineers, contributors coming from the first-time sprinter workshop, anyone interested in how Drupal core is made, or anyone concerned about Drupal 8 bugs.
In the Drupal core issue queue we assign priorities to each bug to streamline the resolution process. In this sprint, we will attack issues tagged "Major" and simply make sure the information in each issue is accurate and actionable.
Contributors will work in pairs to evaluate major issues for Drupal 8.x, update the information in the issue, and determine whether or not the issue is still relevant. The most important thing to keep in mind is forward movement through the process - this sprint is not for solving issues, only for helping maintainers and making it easier for others (possibly you!) to step in and understand what needs to be done at a glance.
You can read the steps for triaging major issues to prepare ahead of time.
This sprint will give you the skills to more successfully navigate the issue queue, comment and contribute constructively on issues, work with other contributors, and understand the process code goes through in becoming part of Drupal core. It takes a lot of contributors with varied skills and perspectives to bring all the pieces together.
Make upgrade paths easier with @deprecated documentation
Drupal 8's release process has been changed to make Drupal upgrades easy forever. We improve Drupal's APIs in scheduled six-month minor releases, but also leave the old ways of doing things in place and mark them as deprecated until Drupal 9. This huge shift for Drupal allows module and theme maintainers to adapt to changes gradually, on their own schedule, instead of needing a massive push all at once on some later release date.
To help maintainers make updates, we are adding documentation references directly in the code. In most cases the update documentation is already written so we merely need to add a link to it! Most existing deprecations are in PHP code, so this is a good task for new contributors with a basic knowledge of PHP. Itc is also a good fit for contributors who are interested in API documentation or who want to learn about API changes in Drupal 8.
Clearly define Drupal's public APIs by adding @internal tags
Drupal 8 has 6-month minor releases that improve APIs (as well as adding new features). In order to make this safe, clear, and maintainable, we defined which parts of Drupal's APIs are internal (not covered by the backwards compatibility promise and allowed to change between minor versions) through a documented policy, but that is not very explicit for developers. Adding explicit @internal tags in code documentation is more clear and effective for anyone reading the code or developing with an IDE. By helping with this effort, you can learn a lot about Drupal 8 APIs and help with the upgrade path through documenting a better-defined API surface. This sprint is a good fit for programmers who want to learn more about Drupal 8's APIs.
In addition to the mentored sprints, experienced contributors can join a variety of sprint topics in the main sprint room.There are sprints on porting contributed Media plugin modules to the new core Media API, redesigning the core admin UI for better usability, the Search API family of modules, the Open Social distribution, and much more. Sign up now to let us know you're interested in participating!
Mentors and reviewers welcome
If you are an experienced contributor, we can use your help at the mentored sprint too! Sign up to mentor. Mentors should be familiar with Drupal core and the issue queue so that you can explain the process as well as how sprinting benefits the community and the project. The best way to prepare as a mentor for the Major Issue Triage sprint, for example, is to read the meta and try walking through the steps on your own or explaining them to a co-worker or friend.
We are also looking for reviewers on sprint day. Join us in the mentored sprint room at the dedicated review table to give sprinters feedback in Drupal's peer-review process. This is a great way to participate even if you are remote, as there will be many contributors seeking reviews of their patches on sprint day. Let mentors know you are available as a reviewer and they can ping you on slack/IRC when an issue is ready for review.
See you all soon in Vienna (or online)!