Skip to content

Commit 1593575

Browse files
committed
build: release
2 parents ef9ee66 + 9fa80eb commit 1593575

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+2172
-1950
lines changed

.github/workflows/ci.yml

+23-20
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
branches:
77
- '**'
88
env:
9-
NODE_VERSION: 14.18.1
9+
NODE_VERSION: 16.13.0
1010
PARSE_SERVER_TEST_TIMEOUT: 20000
1111
jobs:
1212
check-ci:
@@ -105,43 +105,43 @@ jobs:
105105
MONGODB_VERSION: 5.0.3
106106
MONGODB_TOPOLOGY: replicaset
107107
MONGODB_STORAGE_ENGINE: wiredTiger
108-
NODE_VERSION: 14.18.1
108+
NODE_VERSION: 16.13.0
109109
- name: MongoDB 4.4, ReplicaSet, WiredTiger
110110
MONGODB_VERSION: 4.4.10
111111
MONGODB_TOPOLOGY: replicaset
112112
MONGODB_STORAGE_ENGINE: wiredTiger
113-
NODE_VERSION: 14.18.1
113+
NODE_VERSION: 16.13.0
114114
- name: MongoDB 4.2, ReplicaSet, WiredTiger
115115
MONGODB_VERSION: 4.2.17
116116
MONGODB_TOPOLOGY: replicaset
117117
MONGODB_STORAGE_ENGINE: wiredTiger
118-
NODE_VERSION: 14.18.1
118+
NODE_VERSION: 16.13.0
119119
- name: MongoDB 4.0, ReplicaSet, WiredTiger
120120
MONGODB_VERSION: 4.0.27
121121
MONGODB_TOPOLOGY: replicaset
122122
MONGODB_STORAGE_ENGINE: wiredTiger
123-
NODE_VERSION: 14.18.1
123+
NODE_VERSION: 16.13.0
124124
- name: MongoDB 4.0, Standalone, MMAPv1
125125
MONGODB_VERSION: 4.0.27
126126
MONGODB_TOPOLOGY: standalone
127127
MONGODB_STORAGE_ENGINE: mmapv1
128-
NODE_VERSION: 14.18.1
128+
NODE_VERSION: 16.13.0
129129
- name: Redis Cache
130130
PARSE_SERVER_TEST_CACHE: redis
131131
MONGODB_VERSION: 4.4.10
132132
MONGODB_TOPOLOGY: standalone
133133
MONGODB_STORAGE_ENGINE: wiredTiger
134-
NODE_VERSION: 14.18.1
134+
NODE_VERSION: 16.13.0
135135
- name: Node 12
136136
MONGODB_VERSION: 4.4.10
137137
MONGODB_TOPOLOGY: standalone
138138
MONGODB_STORAGE_ENGINE: wiredTiger
139139
NODE_VERSION: 12.22.7
140-
- name: Node 15
140+
- name: Node 14
141141
MONGODB_VERSION: 4.4.10
142142
MONGODB_TOPOLOGY: standalone
143143
MONGODB_STORAGE_ENGINE: wiredTiger
144-
NODE_VERSION: 15.14.0
144+
NODE_VERSION: 14.18.1
145145
fail-fast: false
146146
name: ${{ matrix.name }}
147147
timeout-minutes: 15
@@ -183,19 +183,22 @@ jobs:
183183
include:
184184
- name: PostgreSQL 11, PostGIS 3.0
185185
POSTGRES_IMAGE: postgis/postgis:11-3.0
186-
NODE_VERSION: 14.18.1
186+
NODE_VERSION: 16.13.0
187187
- name: PostgreSQL 11, PostGIS 3.1
188188
POSTGRES_IMAGE: postgis/postgis:11-3.1
189-
NODE_VERSION: 14.18.1
190-
- name: PostgreSQL 12, PostGIS 3.1
191-
POSTGRES_IMAGE: postgis/postgis:12-3.1
192-
NODE_VERSION: 14.18.1
193-
- name: PostgreSQL 13, PostGIS 3.1
194-
POSTGRES_IMAGE: postgis/postgis:13-3.1
195-
NODE_VERSION: 14.18.1
196-
- name: PostgreSQL 14, PostGIS 3.1
197-
POSTGRES_IMAGE: postgis/postgis:14-3.1
198-
NODE_VERSION: 14.18.1
189+
NODE_VERSION: 16.13.0
190+
- name: PostgreSQL 11, PostGIS 3.2
191+
POSTGRES_IMAGE: postgis/postgis:11-3.2
192+
NODE_VERSION: 16.13.0
193+
- name: PostgreSQL 12, PostGIS 3.2
194+
POSTGRES_IMAGE: postgis/postgis:12-3.2
195+
NODE_VERSION: 16.13.0
196+
- name: PostgreSQL 13, PostGIS 3.2
197+
POSTGRES_IMAGE: postgis/postgis:13-3.2
198+
NODE_VERSION: 16.13.0
199+
- name: PostgreSQL 14, PostGIS 3.2
200+
POSTGRES_IMAGE: postgis/postgis:14-3.2
201+
NODE_VERSION: 16.13.0
199202
fail-fast: false
200203
name: ${{ matrix.name }}
201204
timeout-minutes: 15

CHANGELOG.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ Details:
4242
- Suitable environment: experimental
4343

4444

45-
[log_release]: https://github.com/parse-community/parse-server/blob/release/CHANGELOG.md
46-
<!--[log_release]: https://github.com/parse-community/parse-server/blob/release/changelogs/CHANGELOG_release.md -->
45+
[log_release]: https://github.com/parse-community/parse-server/blob/release/changelogs/CHANGELOG_release.md
4746
[log_beta]: https://github.com/parse-community/parse-server/blob/beta/changelogs/CHANGELOG_beta.md
4847
[log_alpha]: https://github.com/parse-community/parse-server/blob/alpha/changelogs/CHANGELOG_alpha.md
4948
[branch_release]: https://github.com/parse-community/parse-server/tree/release

CONTRIBUTING.md

+40-7
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
- [Pull Request](#pull-request)
2323
- [Breaking Change](#breaking-change)
2424
- [Merging](#merging)
25+
- [Breaking Change](#breaking-change-1)
26+
- [Reverting](#reverting)
27+
- [Major Release / Long-Term-Support](#major-release--long-term-support)
2528
- [Versioning](#versioning)
2629
- [Code of Conduct](#code-of-conduct)
2730

@@ -154,15 +157,15 @@ If your pull request introduces a change that may affect the storage or retrieva
154157
[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:
155158

156159
```
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
158161
```
159162
To stop the Postgres instance:
160163

161164
```
162165
docker stop parse-postgres
163166
```
164167

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:
166169

167170
```
168171
#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
303306
```
304307

305308
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
307310
- `fix` - fix a bug
308311
- `refactor` - refactor code without impact on features or performance
309312
- `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
335338

336339
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.
337340

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:
340348
341349
```
342350
fix: remove handle from door
343351
344352
BREAKING CHANGE: You cannot open the door anymore by using a handle. See the [#migration guide](http://example.com) for more details.
345353
```
346354
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.
349382
350383
## Versioning
351384

0 commit comments

Comments
 (0)