Skip to content

Development Guidelines

matidau edited this page Apr 26, 2023 · 2 revisions

THIS PAGE IS WORK IN PROGRESS. FEEL FREE TO CONTRIBUTE AND/OR EXTEND IT.

Introduction

Since 14.08.2015 Z-Push is hosted and developed on the Z-Hub community stack, available at www.z-hub.io. As bugtracking system, JIRA is used, available at jira.z-hub.io. A Z-Push wiki is available at wiki.z-hub.io.

The old SVN was migrated to git and is managed using Stash available at stash.z-hub.io.

The old SVN is available as read-only at: https://svn.z-push.org/.

Updated locations as of 17.05.2021. Read more at https://forum.kopano.io/topic/3738/packages-and-services-available-under-new-locations

Contributing

Contributions are very welcome!

The basic contribution workflow is:

  1. Create a user in JIRA
  2. Get in contact to get permissions to Stash
  3. Find or create a ticket for your contribution in JIRA
  4. Assign it to yourself
  5. Start progress of the issue in JIRA
  6. On the right side, there is a link called "Create branch"
  7. Select the type, generally "feature" or "bugfix" (see constraints below)
  8. Create branch in the z-push repository (please do not create your own repository) - branch from develop!
  9. Checkout your branch
  10. Develop
  11. Commit & push upstream (see commit message constraints below)
  12. Make a pull request (generally against develop, but might be a different branch for special cases)
  13. Update your ticket

Commit message

Z-Push is licensed under AGPLv3 and so all contributions must be released under the same license. A git hook makes sure that every commit message contains the sentence "Released under the Affero GNU General Public License (AGPL) version 3.".

A valid commit message is:

ZP-123 Awesome new feature. Released under the Affero GNU General Public License (AGPL) version 3.
  • ZP-123

    is a JIRA ticket. This ticket must exist before the commit can be done. If you want to fix an issue, search for the issue in JIRA, assign the ticket to yourself or create a new ticket.

  • Awesome new feature.

    Describe you code with a few words or sentences. The extensive description should be available in the ticket.

  • Released under the Affero GNU General Public License (AGPL) version 3.

    The license sentence needs to be appended to your commit message to be allowed in our system.

If your commit message does not contain these three parts, the commit will be rejected by the system.

Branch names

Z-Push uses the Gitflow branching model, described here and here.

JIRA & Stash are compatible with this branching model.

When pushing upstream only bugfix, feature or hotfix branches are accepted, like:

feature/ZP-123-awesome-feature