Great to have you here. Here are a few ways you can help make this project better!
Please note that this project was put into maintenance mode
When reporting a bug make sure you specify the following data:
- Your AgenDAV version
- What CalDAV server you are using
- A brief description of the issue
- Step by step guide of what you did, screenshots are welcome
- What you were expecting to happen and what actualy happened
- Any logs that could help to identify the cause
You are encouraged to send fixes for bug reports as Pull Request
Please explain how this feature could help the project and what is required to implement it.
AgenDAV uses Transifex for translations.
Have a look at Transifex documentation for more information about adding a new language or upadting an existing translation.
Documentation is automatically generated and placed on https://agendav.readthedocs.io/. Updating the documentation requires some Sphinx knowledge.
Have a look at the doc/
directory.
There are some facts that will help you when contributing code to AgenDAV:
- AgenDAV ships with a Vagrant environment that is absolutely recommended when developing
- AgenDAV includes unit tests as well, run via
./web/vendor/bin/phpunit tests
- AgenDAV repository uses nvie's git flow
- Please open an issue on GitHub first and describe your desired change before starting to work on a PR
- The target branch for Pull Requests is the
development
branch - Make your pull requests as small as possible, one topic per branch
- Make sure to add tests for your feature, and update the documentation if needed
- Please explain your changes in a short, readable commit message
This project has adopted the PSR-2 Coding Style Guide for PHP Code.
This project has adopted SemVer 2 Versioning.
New commits are composed in branch development
until a new version is
released.
The main
branch always refers to the latest version available.
All notable changes made between each release are documented in the Changelog.
Manual release steps done by project maintainers.
- Checkout latest »development« branch and rebase against »main«
- Use the projects base PHP version, stored in the
.php-version
file (or run
php-version-pickup use
) - Create test build runing
npm install && npm run-script build
- Run code quality tools
- Compare the »development« branch to »main«
- Add a list of noteworthy features and bugfixes to CHANGELOG.md
- Describe breaking changes in CHANGELOG.md
- Describe changes in
doc/source/releasenotes.rst
as well
- Change the version, using semantic versioning, in these files:
doc/source/conf.py
package.json
web/src/Version.php
- Run some manual test in the Vagrant box
- Create a release commit (example commit)
- Merge »development« branch to »main«
- Tag the »main« branch with the new version
- Push branch and tag
- Update the documentation & website
- Add release download file to release page (example file)
- Clone the git repository using
git clone -b <version> https://github.com/agendav/agendav.git agendav-<version>
- Run
npm install && npm run-script dist
- Creates build files in
web/public/dist/css/
,web/public/dist/js/
andweb/vendor/
- Removes
.git
,ansible
,node_modules
- Creates build files in
- Zip directory
tar -czf ../agendav-<version>.tar.gz ../agendav-<version>
- Clone the git repository using
- Sip a tea