Nota
Sebbene la documentazione QGIS sia utilizzata per dimostrare il processo, tutti i comandi e i passaggi illustrati di seguito si applicano anche al sito Web QGIS.
Now that you know the rules to follow to write a clean doc for QGIS, let’s dive in the process of production of this documentation and how quickly and safely share your changes with the community.
Assuming you already have a GitHub account,
you first need to clone the source files of the documentation in order to have
your own copy you can work on: go to the QGIS-Documentation repository page (for convenience, this repository
is called below qgis/QGIS-Documentation
) and click on the Fork button in
the upper right corner.
Few seconds later, in your GitHub account you find a QGIS-Documentation
repository (https://github.com/<YourName>/QGIS-Documentation
).
This repo is a safe copy in which you have full write access and can push all
your contributions without a risk to affect the official documentation. At the
beginning, this repository contains the same branches as qgis/QGIS-Documentation
and is defaulted to master
branch. Branches are parallel lines of
development containing different snapshots of the doc that may merge or diverge.
Preferably create a branch for each issue you want to tackle and you can create
as many branches as you want.
Suggerimento
Do your changes in an ad’hoc branch, never in master
By convention, avoid making changes in your master
branch except merging
the modifications from the master
branch of qgis/QGIS-Documentation
(called qgis:master
). And use it as model to create new branches for a
clean history and snapshot.
There are different ways to contribute to QGIS documentation. Though we expose them below separately, they are not mutually exclusive, meaning that you can, at any moment, switch from one process to another without any harm because they both follow the scheme below:
From your cloned repository, you can now propose changes to the main documentation. Indeed, GitHub web interface offers you ways to easily:
Read the GitHub Hello-world project to learn some basic vocabulary and actions that will be used below.
Documentation can be improved by addressing issues reported at https://github.com/qgis/QGIS-Documentation/issues or issues you may have encountered while browsing the doc. They can be of different types: typo error, missing feature, wrong or out of date description...
Fix Me
shortcut¶The QGIS project provides an easy way to reach source file from online documentation. Indeed, instead of browsing the source files in GitHub to find the one that suits the issue, or if you find an issue while reading the manuals, you simply have to click the “Fix Me” link at the bottom of the page to open its source file in Edit mode.
This will open the file in the qgis:master
branch with a message at the
top of the page telling you that you don’t have write access to this repo and
your changes will be applied in a new branch of your repository.
Note that if you have commit rights to QGIS-Documentation repository, then
no message will show and you’ll directly modify qgis:master
branch itself
unless you save your changes in another branch.
Do your changes following guidelines available at http://docs.qgis.org/testing/en/docs/documentation_guidelines/
When you finish, at the bottom of the page, comment a bit what your changes
are about and click on Propose File change. This will generate a
new branch (patch-xxx
) in your repo.
Suggerimento
If your master
branch is even with qgis:master
, you can safely
replace in the link qgis
by <YourName>
. In this case, once your changes
are done, you need to check Create a new branch for
this commit and start a pull request and avoid modifying
master
.
GitHub web interface helps you update the repo with your contribution in an easier way but it doesn’t offer tools to:
You then need to install git on your hard drive in order to get access to more advanced and powerful tools and have a local copy of the repository. Some basics you may often need are exposed below. You’ll also find rules to care about even if you opt for the web interface.
In the code samples below, lines beginning with $
show commands you should
type while #
are comments.
Now you are ready to get a local clone of your QGIS-Documentation repository:
$ cd ~/Documents/Development/QGIS/
$ git clone git@github.com:<YourName>/QGIS-Documentation.git
The former command line is simply an example.
You should adapt both the path and the repository URL, replacing <YourName>
with your user name.
Suggerimento
Permission denied (publickey) error?
If you get a Permission denied (publickey) error, there may be a problem with your SSH key. See GitHub help for details.
Check it:
$ git remote -v
origin git@github.com:<YourName>/QGIS-Documentation.git (fetch)
origin git@github.com:<YourName>/QGIS-Documentation.git (push)
$ git branch
* master
You can start to work here but in the long terme process you will get a lot of issue when you will push your contribution (called Pull Request in github process) as the master branch of the QGIS-Documentation repository will diverge from your local/remote repository.
To be able to follow the work in the main project, add a new remote repository in your local repository. This new remote repository is the QGIS-Documentation repository from QGIS project:
$ git remote add upstream git@github.com:qgis/QGIS-Documentation.git
$ git remote -v
origin git@github.com:<YourName>/QGIS-Documentation.git (fetch)
origin git@github.com:<YourName>/QGIS-Documentation.git (push)
upstream git@github.com:qgis/QGIS-Documentation.git (fetch)
upstream git@github.com:qgis/QGIS-Documentation.git (push)
So now you have the choice between two remote repository:
Nota
upstream is just a label, a kind of standard name but you can call it as you want.
master
branch)¶Before working on a new contribution, you should always update your local master branch in your local repository. Just run this command line:
# switch to master branch (it is easy to forget this step!)
$ git checkout master
# get "information" from the master branch in upstream repository
# (aka qgis/QGIS-Documentation's repository)
$ git fetch upstream master
# merge update from upstream/master to the current local branch
# (which should be master, see step 1)
$ git merge upstream/master
# update **your** remote repository
$ git push origin master
Now you have a local and remote repositories which have both master
branch up to date with
QGIS-Documentation from QGIS organisation. You can start to work on your
contribution.
manual_en_
branch)¶Along the testing documentation, we continue to fix issues in QGIS 2.18 doc, meaning that you can also contribute to it. Following the previous section sample code, you can easily do that by selecting the corresponding branch.
When you clone the repository (see Local repository), your clone has all the branches of the upstream repository. As above, you need to ensure your branch is up to date with the upstream’s:
# change branch e.g. for 2.14 LTR
$ git checkout manual_en_2.14
# get "information" from the manual_en_2.14 branch in upstream repository
$ git fetch upstream manual_en_2.14
# merge update from upstream/manual_en_2.14 to the current local branch
$ git merge upstream/manual_en_2.14
# update **your** remote repository
$ git push origin manual_en_2.14
In this way your local and remote branches for the 2.14 version are up to date with the one of the official upstream repository.
Now that your base branch is updated, you need to create a dedicated branch in which you add your contribution. Always work on a branch other than the base branch! Always!
$ git checkout -b myNewBranch
# checkout means go to the branch
# and -b flag creates a new branch if needed, based on current branch
$ git branch
master
manual_en_2.14
* myNewBranch
# a list of existing branch where * means the current branch
# You can now add your contribution, by editing the concerned file
# with any application (in this case, vim is used)
$ vim myFile
# once done
$ git add myFile
$ git commit
Few words about commit/push commands:
.
. Be concise.
Your description can be longer, end with a .
and you can give much more details.#
with a number to refer to an issue. Prefix with Fix
if you fix the
ticket: your commit will close the ticket.Now that your changes are saved and committed in your local branch, you need to send them to your remote repository in order to create pull request:
$ git push origin myNewBranch
After your PR has been merged into the official QGIS-Documentation, you can delete your branch. If you work a lot this way, in few weeks you will get a lot of unuseful branches. So keep your repository clean this way:
# delete local branch
$ git branch -d myNewBranch
# Remove your remote myNewBranch by pushing nothing to it
$ git push origin :myNewBranch
And do not forget to update the master
branch in your local repository!