Markwon/release-management.md
2020-10-09 17:42:12 +03:00

49 lines
1.4 KiB
Markdown

# Release checklist
- [ ] CHANGELOG.md has proper version for released changes
- [ ] Code occurrences of `@since $SNAPSHOT;` are replaced with proper version (`@deprecated` also)
- [ ] `gradle.properties` has proper version (NOT SNAPSHOT)
- [ ] documentation web site is published (if has changes)
# Release management
Development happens in the `master` branch. Although CI (via Github workflows) is triggered
with each push, all releases are happening in manual mode (stable and snapshot versions
of the library and the sample app).
```
# Stable and snapshot library release (depending on the version specified in `gradle.properties`)
./gradlew upA -Prelease
# Sample app release
./app-sample/deploy.sh
```
Tests must be run before releasing (either locally or via CI).
## `@since` annotation
All code changes should have a documentation comment with version of the library specified.
For changes before _stable_ release (snapshots) a special `$SNAPSHOT;` version can be used
(useful when the next version name of the library is still not known).
```java
/**
* @since $SNAPSHOT;
*/
// @since $SNAPSHOT;
```
These changes must also be placed in according section of the `CHANGELOG.md` file:
* `Added`
* `Changed`
* `Fixed`
* `Deprecated`
* `Removed`
Stable release must replace all `$SNAPSHOT;` occurrences with proper library version name.
## Documentation
If there are updates to documentation web site these should be published