Skip to content

Latest commit

 

History

History
63 lines (54 loc) · 7.95 KB

CONTRIBUTING.md

File metadata and controls

63 lines (54 loc) · 7.95 KB

Contributing

  1. Check the open issues for this repository, open bug reports, and the overall project 看板 for known issues and discussions.
  2. If your issue is not already listed, add your issue, optionally with :octocat: gitmoji.
  3. Clone this repository.
  4. If your issue already has a discussion, see if it has a branch. If so, checkout that branch before creating your own.
  5. Create a new branch to work in.
  6. When you're ready to submit your changes, update the version and submit a pull request from your branch to the branch you branched from (ie, the branch you checked out in step 4 above or master).
  7. One or more of the project developers will review your request and merge or request changes.

Versioning

Use Semantic Versioning 2.0.0. Always develop in a feature-specific branch and update the version (at least the patch version, but a higher-level version if appropriate) when submitting a pull request.

For this repository, the version exists in 4 places:

  1. README
  2. package.json: version
  3. mindlogger-app/android/app/build.gradle
    1. versionName
    2. versionCode (integer: increment from previous build regardless of the rest of the version numbering)
  4. ios/MDCApp/Info.plist
    1. CFBundleShortVersionString
    2. CFBundleVersion (match to versionCode, above)

Pull requests

Each pull request (PR) requires a review from at least one contributor other than the author of that PR.

Submitting a PR

  1. In your branch, update the version in all 4 necessary places.
  2. Update the CHANGELOG with a brief description of the changes in this new version.
  3. From your branch, open a pull request to master.
  4. Give your PR a descriptive title, optionally with :octocat: gitmoji.
  5. Give a brief but thorough description of what your PR does.
  6. Submit. Bitrise will run 🔬 tests.
  7. Wait for a review.
  8. Respond to the review if necessary.

Reviewing a PR

  1. Review the description.
  2. Test the branch and verify that the changes work as expected.
  3. Verify that the version and CHANGELOG have been adequately updated.
  4. If any changes are necessary, request those changes.
  5. Otherwise, or once the necessary changes are made, approve the PR.
  6. Merge the PR (usually via a merge commit, but by a merge squash or a merge rebase by discretion).

Deployment

  1. Once a PR has been merged, create and push a new tag to match the SemVer.
  2. 🚀 Bitrise will build and deploy to α testers at both 🍎 Apple and 🤖 Google.
  3. Once α testers test this version, if this version will be released to β testers or more broadly,
    1. Add release notes to the tag.
    2. A user with access to MindLogger on 🤖 Google Play Console needs to go to Release managementApp releasesClosed trackAlphaMANAGE and click RELEASE TO BETA. On the "New release to beta (Promoting from …)" page,
      1. Fill in What's new in this release?, informed by the release notes and CHANGELOG. If not much time has passed since the previous release, the COPY FROM PREVIOUS RELEASE button is useful to prefill those notes.
      2. Click Review.
      3. Review that the release looks correct, then click START ROLLOUT TO BETA.
    3. A user with access to MindLogger on 🍎 App Store Connect needs to go to TestFlightBUILDSiOS and click on the build number of the version to deploy to β testers (eg, 101 in this screenshot: Build 101).
      1. Click Test Details.
      2. Fill in What to Test. Typically you can just copy-paste from "What's new in this release?" in the Google Play Console.
      3. Click Save.
      4. Click Testers.
      5. Click Groups ⊕ and add the tester groups you want to add to this build.
      6. If the major or minor SemVer is changed, also update the version in App StoreiOS app.
    4. Both Apple and Google will have some combination of bots and humans review the new version and release notes. Once approved, users will automatically get the update per their respective device settings.