|
22 | 22 | - [Pull Request](#pull-request)
|
23 | 23 | - [Breaking Change](#breaking-change)
|
24 | 24 | - [Merging](#merging)
|
| 25 | + - [Breaking Change](#breaking-change-1) |
| 26 | + - [Reverting](#reverting) |
| 27 | + - [Major Release / Long-Term-Support](#major-release--long-term-support) |
25 | 28 | - [Versioning](#versioning)
|
26 | 29 | - [Code of Conduct](#code-of-conduct)
|
27 | 30 |
|
@@ -154,15 +157,15 @@ If your pull request introduces a change that may affect the storage or retrieva
|
154 | 157 | [PostGIS images (select one with v2.2 or higher) on docker dashboard](https://hub.docker.com/r/postgis/postgis) is based off of the official [postgres](https://registry.hub.docker.com/_/postgres/) image and will work out-of-the-box (as long as you create a user with the necessary extensions for each of your Parse databases; see below). To launch the compatible Postgres instance, copy and paste the following line into your shell:
|
155 | 158 |
|
156 | 159 | ```
|
157 |
| -docker run -d --name parse-postgres -p 5432:5432 -e POSTGRES_PASSWORD=password --rm postgis/postgis:13-3.1-alpine && sleep 20 && docker exec -it parse-postgres psql -U postgres -c 'CREATE DATABASE parse_server_postgres_adapter_test_database;' && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION pgcrypto; CREATE EXTENSION postgis;' -d parse_server_postgres_adapter_test_database && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION postgis_topology;' -d parse_server_postgres_adapter_test_database |
| 160 | +docker run -d --name parse-postgres -p 5432:5432 -e POSTGRES_PASSWORD=password --rm postgis/postgis:13-3.2-alpine && sleep 20 && docker exec -it parse-postgres psql -U postgres -c 'CREATE DATABASE parse_server_postgres_adapter_test_database;' && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION pgcrypto; CREATE EXTENSION postgis;' -d parse_server_postgres_adapter_test_database && docker exec -it parse-postgres psql -U postgres -c 'CREATE EXTENSION postgis_topology;' -d parse_server_postgres_adapter_test_database |
158 | 161 | ```
|
159 | 162 | To stop the Postgres instance:
|
160 | 163 |
|
161 | 164 | ```
|
162 | 165 | docker stop parse-postgres
|
163 | 166 | ```
|
164 | 167 |
|
165 |
| -You can also use the [postgis/postgis:13-3.1-alpine](https://hub.docker.com/r/postgis/postgis) image in a Dockerfile and copy this [script](https://github.com/parse-community/parse-server/blob/master/scripts/before_script_postgres.sh) to the image by adding the following lines: |
| 168 | +You can also use the [postgis/postgis:13-3.2-alpine](https://hub.docker.com/r/postgis/postgis) image in a Dockerfile and copy this [script](https://github.com/parse-community/parse-server/blob/master/scripts/before_script_postgres.sh) to the image by adding the following lines: |
166 | 169 |
|
167 | 170 | ```
|
168 | 171 | #Install additional scripts. These are run in abc order during initial start
|
@@ -303,7 +306,7 @@ For release automation, the title of pull requests needs to be written in a defi
|
303 | 306 | ```
|
304 | 307 |
|
305 | 308 | The _type_ is the category of change that is made, possible types are:
|
306 |
| -- `feat` - add a new feature |
| 309 | +- `feat` - add a new feature or improve an existing feature |
307 | 310 | - `fix` - fix a bug
|
308 | 311 | - `refactor` - refactor code without impact on features or performance
|
309 | 312 | - `docs` - add or edit code comments, documentation, GitHub pages
|
@@ -335,17 +338,47 @@ If a pull request contains a braking change, the description of the pull request
|
335 | 338 |
|
336 | 339 | The following guide is for anyone who merges a contributor pull request into the working branch, the working branch into a release branch, a release branch into another release branch, or any other direct commits such as hotfixes into release branches or the working branch.
|
337 | 340 |
|
338 |
| -- For changelog generation, only the commit message set when merging the pull request is relevant. The title and description of the GitHub pull request as authored by the contributor have no influence on the changelog generation. However, the title of the GitHub pull request should be used as the commit message. |
339 |
| -- If the pull request contains a breaking change, the commit message must contain the phrase `BREAKING CHANGE`, capitalized and without any formatting, followed by a short description of the breaking change and ideally how the developer should address it, all in a single line. This line should contain more details focusing on the "breaking” aspect of the change and is intended to assist the developer in adapting. Keep it concise, as it will become part of the changelog entry, for example: |
| 341 | +- A contributor pull request must be merged into the working branch using `Squash and Merge`, to create a single commit message that describes the change. |
| 342 | +- A release branch or the default branch must be merged into another release branch using `Merge Commit`, to preserve each individual commit message that describes its respective change. |
| 343 | +- For changelog generation, only the commit message set when merging the pull request is relevant. The title and description of the GitHub pull request as authored by the contributor have no influence on the changelog generation. However, the title of the GitHub pull request should be used as the commit message. See the following chapters for considerations in special scenarios, e.g. merging a breaking change or reverting a commit. |
| 344 | + |
| 345 | +### Breaking Change |
| 346 | + |
| 347 | +If the pull request contains a breaking change, the commit message must contain the phrase `BREAKING CHANGE`, capitalized and without any formatting, followed by a short description of the breaking change and ideally how the developer should address it, all in a single line. This line should contain more details focusing on the "breaking” aspect of the change and is intended to assist the developer in adapting. Keep it concise, as it will become part of the changelog entry, for example: |
340 | 348 |
|
341 | 349 | ```
|
342 | 350 | fix: remove handle from door
|
343 | 351 |
|
344 | 352 | BREAKING CHANGE: You cannot open the door anymore by using a handle. See the [#migration guide](http://example.com) for more details.
|
345 | 353 | ```
|
346 | 354 | Keep in mind that in a repository with release automation, merging such a commit message will trigger a release with a major version increment.
|
347 |
| -- A contributor pull request must be merged into the working branch using `Squash and Merge`, to create a single commit message that describes the change. |
348 |
| -- A release branch or the default branch must be merged into another release branch using `Merge Commit`, to preserve each individual commit message that describes its respective change. |
| 355 | +
|
| 356 | +### Reverting |
| 357 | +
|
| 358 | +If the commit reverts a previous commit, use the prefix `revert:`, followed by the header of the reverted commit. In the body of the commit message add `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted. For example: |
| 359 | +
|
| 360 | + ``` |
| 361 | + revert: fix: remove handle from door |
| 362 | + |
| 363 | + This reverts commit 1234567890abcdef. |
| 364 | + ``` |
| 365 | +
|
| 366 | +### Major Release / Long-Term-Support |
| 367 | +
|
| 368 | +Long-Term-Support (LTS) is provided for the previous Parse Server major version. For example, Parse Server 4.x will receive security updates until Parse Server 5.x is superseded by Parse Server 6.x and becomes the new LTS version. While the current major version is published on branch `release`, a LTS version is published on branch `release-#.x.x`, for example `release-4.x.x` for the Parse Server 4.x LTS branch. |
| 369 | +
|
| 370 | +#### Preparing Release |
| 371 | +
|
| 372 | +The following changes are done in the `alpha` branch, before publishing the last `beta` version that will eventually become the major release. This way the changes trickle naturally through all branches and code consistency is ensured among branches. |
| 373 | +
|
| 374 | +- Make sure all [deprecations](https://github.com/parse-community/parse-server/blob/alpha/DEPRECATIONS.md) are reflected in code, old code is removed and the deprecations table is updated. |
| 375 | +- Add the future LTS branch `release-#.x.x` to the branch list in [release.config.js](https://github.com/parse-community/parse-server/blob/alpha/release.config.js) so that the branch will later be recognized for release automation. |
| 376 | +
|
| 377 | +#### Publishing Release |
| 378 | +
|
| 379 | +1. Create LTS branch `release-#.x.x` off the latest version tag on `release` branch. |
| 380 | +2. Create temporary branch `build-release` off branch `beta` and create a pull request with `release` as the base branch. |
| 381 | +3. Merge branch `build-release` into `release`. Given that there will be breaking changes, a new major release will be created. In the unlikely case that there have been no breaking changes between the previous major release and the upcoming release, a major version increment has to be triggered manually. See the docs of the release automation framework for how to do that. |
349 | 382 |
|
350 | 383 | ## Versioning
|
351 | 384 |
|
|
0 commit comments