Using the Github UI to Make Pull Requests

From Joomla! Documentation

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎Nederlands
Tutorial

This article helps you understanding and creating Pull Requests on Github, so you can contribute to a project like Joomla!.

Many changes, including bug fixes and feature additions can be implemented and reviewed via the normal GitHub pull request workflow.

Some changes though are "substantial", and we ask that these be put through a bit of a design process and produce a consensus among the community and the core team.

Before making a pull request

A hastily proposed pull request can hurt its chances of acceptance. Low quality proposals, proposals for previously rejected features, may be quickly rejected, which can be demotivating for the unprepared contributor. Laying some groundwork ahead of the pull request can make the process smoother.

Although there is no single way to prepare for submitting a pull request, it is generally a good idea to pursue feedback from other project developers beforehand to ascertain that the pull request may be desirable. Although it may seem like a useful feature or bug fix, there may be reasons it cannot work that you have not considered (or could not know about).

As a rule of thumb, receiving encouraging feedback from long-standing project developers, and particularly members of the core team or existing contributors, is a good indication that the pull request is worth pursuing. To get feedback, we suggest you join the Volunteers Portal and join RingCentral (still referred to as Glip, just ask a team lead in the Volunteers portal to add you) to ask other developers. Once you are ready, we suggest, before doing any code, you submit an issue to the Joomla! issue tracker with "RFC" at the beginning. That will create a request for comments which will help you to identify any additional work or issues you may have to overcome to get your idea accepted.


What is a Pull Request?

A Pull Request is a request to pull some code to a repository (project) on GitHub.

You are asking if some code changes or a new piece of code you have written can be added to the project codebase. The changes can be a solution to solving a bug or a new feature. GitHub has a simple web interface that makes it very easy to propose a simple change to code. You don't need to install any software or do anything beside register for a GitHub account.


Identify the change you would like to made

Be clear of the problem you wish to solve and do check through pull requests already made to see if someone has already started a solution. You may be able to help or enhance it.

In this example, the contributor has seen that the alias is on the same line as the title and wraps. The solution, add a line break so that it is forced onto a new line

The situation before the patch is applied

Find the file you want to modify on Github

If you don't have a GitHub account yet, sign up on GitHub. It is free. Go to the Joomla! CMS repository and find the file you like to edit. You can navigate through the files and folders by clicking on the folder to drill down the file tree until you find the file you want then click on the file name.

Before you start navigating through the files check that you are in the right branch There is a dropdown box to the left next to the 'New pull request' button. It will show staging which is the current branch of the CMS being worked on Staging. For the development of the next 3.10 version. 3.10-dev and 4.0-dev. Branch names can change! Ask fellow Joomla developers if you are not sure which branch to select. An example of the files in the Joomla GitHub repository Find the files you need to change. In our example, we have to edit the following files:

  • administrator/components/com_categories/tmpl/categories/default.php
  • administrator/components/com_categories/tmpl/categories/modal.php
  • administrator/components/com_content/tmpl/articles/default.php
  • administrator/components/com_content/tmpl/featured/default.php

The files changed


Make your changes

Navigate to the files, and edit the files by clicking on the pencil icon on the right.

In our example, four files were edited so that the alias could be styled to go onto the next line. Origionally with a line brake but in discussion it was changed to a div

<div class=

and a closing

</div>

The files to be edited on GitHub

Note: you may have noticed the blue message above the page. This message is telling you that GitHub made a copy of the project for you, where you can make changes. This copy is called a Fork. The changes you made in this copy can be used in the original project. If you would like to read more about how GitHub works, you can read this article for some background information.


Add a title and description

Below in the editor, we can give our Pull Request a title and a description.

The title has to be short and must explain what this pull request does.

The description contains more detailed information about the Pull request and some information how to test it. Make this information so complete and clear as possible. When you made a Pull Request of an issue on GitHub, it is very common to add also the issue ID in the description. You can do this by typing a # (hash tag) with directly following the issue ID. You can find this ID directly after the title of the issue, in the same notation.


Describe the changes

Send the Pull Request

Click on the button "Propose file changes" and after that on the button "Create Pull Request". Your pull request is made now!

Create pull request.PNG


And now?

The only thing you have to do now is wait until someone will test this PR. When someone comments, you will be notified via an email. It can happen that someone requests addition information, so try to stay up-to-date with you Pull Request.

If a Pull Request is successfully tested twice, a moderator will add the label 'RTC' to it. RTC means: Ready To Commit'. In basic language it tells someone who has commit rights: This Pull request is successfully tested, and can be added to Joomla!. The admin will add (Merge) the project to the Joomla! CMS github repository. Your Pull Request is definitive now, and will be present in the next version of Joomla! if it was about fixing a bug or in the next minor version if the PR was about a new feature.