Merge pull request #4295 from nextcloud/contributing

Enhanced doc
This commit is contained in:
Andy Scherzinger 2019-08-05 13:11:36 +02:00 committed by GitHub
commit e9dcfe4769
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,15 +8,20 @@
1. Guidelines
1. Issue reporting
1. Labels
1. PR
1. Pull request (PR)
1. Issue
1. Bug workflow
1. Contributing to Source Code
1. Developing process
1. Branching model
1. Android Studio formatter setup
1. Build variants
1. Contribution process
1. Fork and download android/master repository
1. Create pull request
1. Create another pull request
1. Backport pull request
1. Pull requests that also need changes on library
1. Translations
1. Releases
1. Types
@ -24,10 +29,12 @@
1. Release Candidate
1. Dev
1. Version Name and number
1. Stable / Release candidate
1. Dev
1. Release cycle
1. Release Process
1. Stable
1. Release Candidate
1. Stable Release
1. Release Candidate Release
1. Development Dev
@ -128,12 +135,23 @@ To make sure your new pull request does not contain commits which are already co
* Use GitHub to issue PR
### 4. Backport pull request:
If some pull request is worth to backport to a dot release, label it as "backport-request".
Use backport-bot via "/backport to stable-version", e.g. "/backport to stable-3.7".
This will automatically add "backport-request" label to PR and bot will create a new PR to targeted branch once the base PR is merged.
If automatic backport fails, it will create a comment.
* create a new branch based on latest stable branch
* git cherry-pick commits from origin pull request
* create pull request on github with "Backport of #originPullRequest: description"
* remove label "backport-request" from origin pull request
### 5. Pull requests that also need changes on library
For speeding up developing, we do use a master snapshot of nextcloud-library, provided by jitpack.io.
This means that if a breaking change is merged on library, master branch of the app will fail.
To limit this risk please follow this approach:
- on app PR: first use a reference to your library branch in build.gradle: ext -> androidLibraryVersion, e.g. androidLibraryVersion = "changeSearch-SNAPSHOT"
- on library PR: use label "client change required" to indicate that this is breaking change. This will prevent GitHub from merging it.
Once both PRs are reviewed and ready to merge:
- on library PR: remove label and merge it (for a short time now master cannot be built!)
- on app PR: change androidLibraryVersion back to "master-SNAPSHOT"
- wait for CI and then merge
With this approach the "downtime" of not building master is limited to the timestamp between merge lib PR and merging app PR, which is only limited by CI.
## Translations
We manage translations via [Transifex](https://www.transifex.com/nextcloud/nextcloud/android/). So just request joining the translation team for Android on the site and start translating. All translations will then be automatically pushed to this repository, there is no need for any pull request for translations.
@ -210,7 +228,7 @@ Release Candidate releases are based on the git [master](https://github.com/next
2. Create a [release/tag](https://github.com/nextcloud/android/releases) in git. Tag name following the naming schema: ```rc-Mayor.Minor.Hotfix-betaIncrement``` (e.g. rc-1.2.0-12) naming the version number following the [semantic versioning schema](http://semver.org/)
### Dev Release
### Developement Release
Dev releases are based on the [master](https://github.com/nextcloud/android/tree/master) branch and are done independently from stable releases for people willing to test new features and provide valuable feedback on new features to be incorporated before a feature gets released in the stable app.
The deployment/build is done once a day automatically. If code has changed a new apk will be published [here](https://download.nextcloud.com/android/dev) and it will, with a little delay, be available on [Fdroid](https://f-droid.org/repository/browse/?fdfilter=nextcloud&fdid=com.nextcloud.android.beta).