## Prerequisites
This guide assumes that you have:
+
- a GPG key matching your GitHub authentication credentials
- i.e., the email address identified by the GPG key is the same as the one in your `~/.gitconfig`
- a GitHub fork of Shaarli
- maintainer permissions on the main Shaarli repository, to:
- push the signed tag
- create a new release
-- [Composer](https://getcomposer.org/) and [Pandoc](http://pandoc.org/) need to be installed
+- [Composer](https://getcomposer.org/) needs to be installed
+- The [venv](https://docs.python.org/3/library/venv.html) Python 3 module needs to be installed for HTML documentation generation.
## GitHub release draft and `CHANGELOG.md`
See http://keepachangelog.com/en/0.3.0/ for changelog formatting.
This file should contain the same information as the release note draft for the upcoming version.
Update it to:
+
- add new entries (additions, fixes, etc.)
- mark the current version as released by setting its date and link
- add a new section for the future unreleased version
```
-## Increment the version code, updated docs, create and push a signed tag
-### Generate documentation
+## Increment the version code, update docs, create and push a signed tag
+### Update the list of Git contributors
```bash
-$ cd /path/to/shaarli
-
-# create a new branch
-$ git fetch upstream
-$ git checkout upstream/master -b v0.5.0
-
-# rebuild the documentation from the wiki
-$ make htmldoc
-
-# commit the changes
-$ git add doc
-$ git commit -s -m "Generate documentation for v0.5.0"
-
-# push the commit on your GitHub fork
-$ git push origin v0.5.0
+$ make authors
+$ git commit -s -m "Update AUTHORS"
```
### Create and merge a Pull Request
### Bump Shaarli version to v0.x branch
-```
+```bash
$ git checkout master
$ git fetch upstream
$ git pull upstream master
### Create a GitHub release from a Git tag
From the previously drafted release:
+
- edit the release notes (if needed)
- specify the appropriate Git tag
- publish the release
### Generate and upload all-in-one release archives
Users with a shared hosting may have:
+
- no SSH access
- no possibility to install PHP packages or server extensions
- no possibility to run scripts
```
This will create the following archives:
+
- `shaarli-vX.Y.Z-full.tar`
- `shaarli-vX.Y.Z-full.zip`