The moment of the meeting of two media is a moment of freedom and release from the ordinary trance and numbness imposed by them on our senses.
These apps are not directly affiliated with the event, so questions and support inquiries should go to Lemberg.
Thanks to Lemberg for their efforts!
The purpose of this blog post is to tell others how in one week I went from fruitlessly searching the Issue Queue, to contributing to Drupal 8 while interacting with core contributors...and how you can too! I did this by triaging Issues that had the Novice Tag with the help of Drupal Mentors and I documented the process along the way. There are a ton of Issues left to triage and core contributors need your help! So, if you have some experience with Issues and/or core, you can help us too!
How did I get to this point where I was triaging Novice Issues?
As a new contributor to Drupal I was directed to look at Issues tagged Novice to help out. And after looking at the first few Issues I was left befuddled and confused to the point where the only way to express my feelings was through a cat meme.
In the wake of my confusion I mostly drank vanilla frappuccinos and produced over-caffeinated curses about the long list of Issues to chose from, and my inability to contribute to any of them. This is when I turned to the Drupal community! I was able to lean on the help of senior contributors such as Aimee Degnan, Kristen Pol, and John Storey.
I would link them to an Issue and say “Ummm, what?”. With their help I was able to contribute to ongoing Issues like Installing in a non-English language fails for command-line installations , and adding a Beta Phase and Remaining Task template to “Rewrite the documentation of content_translation_entity_type_alter()” . I became very happy with my contributions and wanted to help more!
It was about this time, recalling my elaborate curses regarding the Issues queues, Kristen Pol pointed out an apprenticeship that Cathy Theys was currently offering regarding going through the Issue queue and triaging the Novice Tags. Conveniently, this is the exact thing I was calling for earlier that day! Cathy is a Drupal 8 Core contributor, Drupal Mentor, and overall Leader. She knows how to do the things and is patient enough to teach everyone how to do them. In the first week of working with Cathy part time I was able to: learn how tell if an Issue should have a Novice Tag, interact with fellow core contributors, and even become a mentor for the upcoming DrupalCon in LA! :-) If any of those things sound like something you’d like to do, stop reading right now and shoot me an email or ping me on IRC in the channels #drupal or #drupal-contribute, my IRC name is Patrick_Storey!First steps to triaging Issues
I started by learning what the “Novice Tag” stands for. Apparently it means “new contributor to Drupal”. This contributor could be an expert in their field, but merely just new to contributing to the Drupal project. This runs contrary to what I thought, which I assumed it meant a Task for beginners in the field like myself. This definition alone really cleared up worlds of understanding for me. So that’s the first thing one must learn, what we mean in Drupal when we say “Novice Task”.
After speaking with Cathy Theys about where we should start we decided to start with Issues that were "Tasks" because those are at a high risk of not being committable. Drupal 8 is currently in Beta. And some Issues are about changes that are not going to be in the current version of Beta. So for new contributors we decided it was best to only have them work on Issues that would get in the current version of Beta. I certainly didn’t want to work on an Issue, do it correctly, only to have to wait a year to see the results. I wanted to link it to others and brag about it now!
Luckily the Drupal community has already thought about what makes a good Novice Issue and created a handbook for common things to avoid and use in triaging Issues. The Novice Tasks handbook page documents what makes a good or bad Novice Task. With this powerful handbook at our disposal we are ready to triage Novice Tag Issues!How to search for Beta Issues with the Novice Tag
Start by searching for Novice Tasks in the Drupal 8 Issue queue This should produce a screen with these filters selected.
This information is to help decide if an Issue still has Novice Task(s) on it. Here are the steps I take when first reviewing an Issue:
- Read the Issue Summary, read the remaining Tasks, read the last few comments. Can you identify what the next steps are?
- Look for the comment where the Novice Tag was added. To do this use the browser find (control-f or cmd-f) and search for the +Novice note. Sometimes the Tag gets added and removed often, look at each scenario.
- What did the person say in their comment when they added the Novice Tag? Has the Task been completed already? If so, then there may be no other Novice Tasks for the Issue.
- Is the Issue Summary up to date detailing which Tasks have been done, and which Tasks still need to be done? If not this Issue will need an Issue Summary update before it remains a Novice Issue. You can do the Issue Summary update yourself following this documentation or Tag the Issue with a “Needs Issue Summary update” Tag, comment why it needs an Issue Summary update, and reference the documentation.
- Are the Tasks linked to a contributor Task document saying how to do the Task?
After reviewing the Issue I then decide if the Issue should have the Novice Tag on it or not.
- Compare the information you have gathered with the Novice Tasks documentation to see if this Issue meets the requirements for a Novice Tag
- A good way to see this is to review the Task or Issues to avoid for a Novice Tag documentation.
- If the issue meets the criteria of an “issues to avoid”, then the Novice tag should be removed.
- If the task in question that the Novice tag was added for meets the criteria of a “tasks to avoid”, then the Novice tag should be removed.
This can seem like a confusing thing to do at first, but feel free to ping me on IRC in the channels #drupal or #drupal-contribute, my IRC name is Patrick_Storey. After doing a few Issues together this process will become a lot easier to understand!Template for the removal of a Novice Tag.
When removing the Novice Tag, this is a good template to follow:
- Delete the Tag by erasing it from the “Issue Tags” section.
- Then leave a comment saying why, and cite the documentation to back up your reasoning. Such as below.
I am removing the Novice Tag from this Issue because [why]
I’m using this documentation as a source: https://www.drupal.org/core-mentoring/novice-tasks#avoid
- You should put your reason for removal in the [why] part of the above template
Sometimes there are things we can do to the Issue to keep the Novice Tag. Such as providing a Beta Evaluation or updating the Issue Summary.
- If a "Task" has been assigned the priority of “Normal” it should have a Beta Evaluation. You may perform a Beta Evaluation following the documentation on how to evaluate Issues.If you can not perform a Beta Evaluation at that moment,
- comment that it needs a beta evaluation, why (it is a Task of Normal priority) and reference the contributor Task documentation for how to do a beta evaluation in the comment.
- add the Tag: needs Issue Summary update
- update the Issue Summary, adding a remaining Task of "do a beta evaluation". To aid in this endeavor the dreditor browser plugin has a button for "Insert Tasks", which inserts a HTML table template. Place your cursor in the remaining Tasks section of the Issue Summary, then hit the “Insert Tasks” button. Then uncomment any table rows that you have noticed are remaining Tasks, especially the row to do a beta evaluation.
- Use Dreditor when starting a Beta Evaluation. This will provide you with the “Insert Beta Evaluation” button
- When you click the Beta Evaluation button you will get an output like this
- Be careful as some of the table rows in the template are not spaced out in a clear manner, there is an Issue opened for dreditor that is discussing a work around
- I put spacing for each new instance of a table row . This will result in the spacing to be like this.
- To properly fill in the form, uncomment the relevant rows and put why that row is relevant.
- If the Beta Evaluation results in the Issue needing to be postponed, remove the Novice Task because the Issue will no longer be valid for this version.
- Then hit save.
- If you are doing this for the first few times, or the update you did was a bit complicated, paste a link to your comment in IRC in #drupal or #drupal-contribute so someone else can check if it looks correct. Ping Patrick_Storey or YesCT just by typing their name when you say something in the channel. (If they are not in the channel, just post it to the channel in general, please do not ask anyone else specifically to check.)
Also see the contributor Task handbook page on how to evaluate if a Drupal core Issue is allowed in Beta for further guidance.Examples of Issues I’ve changed
Here is a link to one of the first Issues where I removed a Novice Tag: https://www.drupal.org/node/507502. In this example I removed it for having over 100 comments on the Issue, listed my reasons, and the source documentation I was using.
Here is a link to an Issue where the Novice Tag remained but I provided an Issue Summary update, and a Beta Evaluation: https://www.drupal.org/node/2478535. I kept the Novice Tag as this Issue had a request to update the patch to incorporate feedback from a review.Have any questions?
If you have any questions feel free to hop onto the Drupal chat on IRC in #drupal or the contribution channel #drupal-contribute, or come to the weekly “Triaging Novice Issues office hours” Google hangout at 2pm-4pm PST (21:00-23:00 UTC) on Wednesdays! You can add the Mentor Calendar directly to your Google Calendar to see notifications of when the office hours are! Or feel free to join the Drupal Mentors group to keep up to date with all Drupal mentoring!
The Installing Git series is a free series that walks you through the process of installing Git for the first time and/or updating Git to the latest release on both Windows and Macs.
Installing Git on Windows is pretty straight forward, you just download the "Git for Windows" installer, and step through the process.
On a Mac though:
* You might not have any version of Git installed
* You might have the version that comes with Xcode or the Command Line Developer Tools
* You might have the version from Apple as well as an official install
* Or, you might just need to update an existing official install
This series covers all of those scenarios to get you updated to and running on the latest release.
It also covers the basic Git configuration options you need to set in order to use Git effectively.
So, what are you waiting for? Watch them now! They're free!Tags: Gitplanet-drupal
We’re excited to announce this talk, Content After Launch – Preparing a Monkey for Space on Wednesday, May 15, 2015 from 5pm to 6pm at DrupalCon LA!
So what’s it all about? Well, coupled with a silly metaphor, I’m going to be talking about what happens to content during various stages of a website build, from the initial kickoff, through the production, and well after launch. The talk will touch on:
- how all team members can get involved in the success of a launched website.
- setting and managing expectations for what it takes to run a site post-launch.
- everything you might have missed while focused on designing and building the website.
Come for the metaphor, stay for the juicy takeaways! Spoiler alert – there will be an abundance of monkey photos.
In one of our latest projects we developed a Facebook app which integrates with Drupal. Even though Drupal 7 has a powerful set of core tools to manage files and images, using it would unnecessarily overcomplicate a simple PHP app.
Drupal 8 is skipping through the betas and it won’t be long until we’re staring at a release candidate. With that in mind, i’m now taking the time to learn some of the key concepts that you’ll need to know as a day to day site builder using Drupal 8.Custom Config Entity Types
A custom configuration entity type referred to as a config entity for most of this article is a custom definition of an entity that allows you to provide a config class, validation schema and custom storage.
They'll have hundreds of practical usages during development custom development. To give some examples, core uses them for user roles, blocks, image styles and plenty more. Use your IDE to see what’s extending ConfigEntityBase if you’re interested.Creating Our Config Entity Type Schema
First up, lets define our schema. The schema allows us to say what fields our config entity should have and what type those fields should be.
At first, I dismissed the need for yet another module. I have always added the Google Analytics code straight into a template file in various other CMS and static sites I have been involved in over the years. Why do I need a module to do that? Well, you don't, but the Drupal Google Analytics Module does offer a lot more functionality that will make it worth your while.
The first thing you need to do, it you haven't is sign up for a Google Analytics account. It's pretty straight forward process.
Once you are signed up, the most confusing thing to me was the Account vs. Property vs. View:
I break it down like this. Account is the company or the owner. The Property is the website. The view is segmented data of the website. At first, you should have a default "All Website Data" view, but moving forward you may have an app and a website, or a view for different languages on the site like /en and /de.
At least 20 people helped push one or more issues forward in Montpellier, at the Drupal Dev Days Performance Sprint!
Here’s an overview of what we set out to do, what we did, and what the next steps are.The plan for DDD Montpellier
- Priority one: uncover the “unknown unknowns”, i.e. finding more performance issues.
- Priority two: Drupal 8’s internal page cache was enabled by default shortly before DDD Montpellier, so we should try to find edge cases where it breaks (where stale content is served from the internal page cache).
- Priority three: fix known performance problems, as well as those uncovered by the work done for priorities one & two.
We already know that certain things are slow, and we know how to fix them. But significant portions of slowness do not yet have explanations for, let alone precise or even rough plans on how to reduce the slowness.
The parts of Drupal 8 that are slow that we do not have a strong grasp on yet are the bootstrap phase in general, but also routing, container services and route access checking.
Berdir, amateescu, dawehner, yched, znerol, pwolanin and I did a lot of profiling, testing hypotheses about why certain things took a given amount of time, comparing to Drupal 7 where possible, figuring out where the differences lied, and so on.
Bits and pieces of that profiling work1 are in https://www.drupal.org/node/2470679, including patches that help profile the routing system.
In the weeks since DDD Montpellier, effulgentsia and catch have continued discussions there, posted further analyses and filed many more issues about fixing individual issues.2. Try to break Drupal 8’s internal page cache & fix it
So, Drupal 8 had the internal page cache enabled by default shortly before DDD Montpellier, with only a few known problems. Having many people to try to break it, using scenarios they use daily in their day jobs, that’s the ideal way to find any remaining cache invalidation problems.
Many tried, and most did not succeed in breaking it (yay! :)), but about half a dozen problems were discovered. See https://www.drupal.org/node/2467071.What we got done
We fixed so incredibly many issues, and we had more than twenty people helping out! Notably, fgm was all over class loading-related issues, borisson_ and swentel got many of the page cache issues fixed, pwolanin pushed routing/REST/menu links issues forward significantly, and we overall simply made progress on many fronts simultaneously.
We made Drupal 8’s authenticated user page loads several percent faster in the course of that week!
Most of the page cache problems that were discovered (see above) were fixed right at the sprint! There are 4 known issues left, of which one is critical on its own, one is blocked, and the two others are very hard.
(If you want more details, we have day-by-day updates on what got done.)
We currently have 11 remaining criticals with the “Performance” tag. Getting that to zero is our top priority. But many in that list are difficult.
If you specifically care about performance for authenticated users: less difficult issues can be found in the child issues of the Cache contexts meta issue. And for some least difficult issues, see the child issues of the SmartCache issue.
Generally speaking, all major issues tagged with either “Performance” or “D8 cacheability” can use a hand.
Hopefully see you in the queues! :)
It was impossible to capture all things we considered in an issue, that’d have slowed us down at least tenfold. ↩
DrupalCon LA is right around the corner! Woo hoo! I'll be there. Will you?
If this will be your first DrupalCon, I'd like to provide you with some ideas of how you can approach things. You have different options available to put together your Con: