Skip to content

Commit

Permalink
Update changelog for v1.0.0 (#60)
Browse files Browse the repository at this point in the history
  • Loading branch information
Carolyn Russell authored Apr 26, 2021
1 parent 2e0298e commit b73eb01
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 84 deletions.
1 change: 1 addition & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches-ignore: # Should publish on main and regular branches, but not release/ or tagged branches
- 'release/**'
- 'hotfix/**'
- "v[0-9]+.[0-9]+.[0-9]+" # branches matching v*, i.e. v1.0, v20.15.10
- "v[0-9]+.[0-9]+.[0-9]+-rc*" # branches matching v*, i.e. v1.0-rc1, v20.15.10-rc5
tags:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build
name: Release

on:
push:
Expand Down
60 changes: 31 additions & 29 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,53 +34,55 @@ Ref: https://keepachangelog.com/en/1.0.0/

## Unreleased

## [v1.0.0](https://github.com/provenance-io/explorer-service/releases/tag/vx.x.x) - 2021-04-23

### Features
* Added a script to pull in protos used in the client #5
* Added a `build.gradle` to allow the protos to be compiled to java on build task #5
* Added support for multisig on transactions, accounts, and validators (limited) #9
* Added Validator-specific APIs #15
* Added Account-specific transaction API #11
* Added working docker-compose script #10
* Dockerize Database #36
* Added Min Gas Fee statistics #30
* Added a script to pull in protos used in the client [#5](https://github.com/provenance-io/explorer-service/issues/5)
* Added a `build.gradle` to allow the protos to be compiled to java on build task [#5](https://github.com/provenance-io/explorer-service/issues/5)
* Added support for multisig on transactions, accounts, and validators (limited) [#9](https://github.com/provenance-io/explorer-service/issues/9)
* Added Validator-specific APIs [#15](https://github.com/provenance-io/explorer-service/issues/15)
* Added Account-specific transaction API [#11](https://github.com/provenance-io/explorer-service/issues/11)
* Added working docker-compose script [#10](https://github.com/provenance-io/explorer-service/issues/10)
* Dockerize Database [#36](https://github.com/provenance-io/explorer-service/issues/36)
* Added Min Gas Fee statistics [#30](https://github.com/provenance-io/explorer-service/issues/30)

### Improvements
* Added templates and build workflow
* Updated `/api/v2/validators/height/{blockHeight}` to translate page to offset for proper searching
* Upgraded to gRpc blockchain calls #17
* Upgraded to gRpc blockchain calls [#17](https://github.com/provenance-io/explorer-service/issues/17)
* Upgraded to Kotlin gradle
* Updated the transaction database tables to allow for better searching #15
* Updated block queries to return the same object with updated info #13
* Updated the transaction database tables to allow for better searching [#15](https://github.com/provenance-io/explorer-service/issues/15)
* Updated block queries to return the same object with updated info [#13](https://github.com/provenance-io/explorer-service/issues/13)
* Updated native queries to use exposed query-building instead
* Updated transaction queries to return same objects as other similar queries #14
* Updated transaction queries to return same objects as other similar queries [#14](https://github.com/provenance-io/explorer-service/issues/14)
* Upgraded Exposed library from 0.17.1 to 0.29.1
* Updated the copy_proto script to be more intuitive
* Because we have a docker gha workflow that builds, I removed the branch-> main designation for build gha #34
* Added gradle custom `downloadProtos` task to download protos instead of shell script.
* Because we have a docker gha workflow that builds, I removed the branch-> main designation for build gha [#34](https://github.com/provenance-io/explorer-service/issues/34)
* Added gradle custom `downloadProtos` task to download protos instead of shell script.
* Updated Validator.bond_height to come from real numbers
* Added Asset status to the asset objects
* Added Asset status to the asset objects
* Added current gas fee to Validator objects
* Initial conversions from nhash to hash #44
* Changed ownership on assets #45
* Improved query performance #53
* Added release workflow #58
* Initial conversions from nhash to hash [#44](https://github.com/provenance-io/explorer-service/issues/44)
* Changed ownership on assets [#45](https://github.com/provenance-io/explorer-service/issues/45)
* Improved query performance [#53](https://github.com/provenance-io/explorer-service/issues/53)
* Added release workflow [#58](https://github.com/provenance-io/explorer-service/issues/58)

### Bug Fixes
* Translated the signatures back to usable addresses
* Fixed `gas/statistics` from previous updates
* Changed out Int to BigInteger in API return objects #34
* Added distinct to Tx query so it actually only brings back tx objects/counts #34
* Added total tx count to Spotlight object #34
* Made Block Hash look like a hash #34
* Updated a couple docker scripts cuz I moved things around in the last commit #34
* Added a db index on tx_cache.height
* Added additional db indices
* Changed out Int to BigInteger in API return objects [#34](https://github.com/provenance-io/explorer-service/issues/34)
* Added distinct to Tx query so it actually only brings back tx objects/counts [#34](https://github.com/provenance-io/explorer-service/issues/34)
* Added total tx count to Spotlight object [#34](https://github.com/provenance-io/explorer-service/issues/34)
* Made Block Hash look like a hash [#34](https://github.com/provenance-io/explorer-service/issues/34)
* Updated a couple docker scripts cuz I moved things around in the last commit [#34](https://github.com/provenance-io/explorer-service/issues/34)
* Fixed a bug where candidate/jailed validators were being filtered out of results
* Added missing protos #55
* Properly handling Multi Msg txs #56
* Added missing protos [#55](https://github.com/provenance-io/explorer-service/issues/55)
* Properly handling Multi Msg txs [#56](https://github.com/provenance-io/explorer-service/issues/56)

### Data
* Added migrations for Tx, BlockProposer, TxMessage, and TxMessageType data points #57
* Added a db index on tx_cache.height
* Added additional db indices
* Added migrations for Tx, BlockProposer, TxMessage, and TxMessageType data points [#57](https://github.com/provenance-io/explorer-service/issues/57)

## PRE-HISTORY

94 changes: 42 additions & 52 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,63 +122,53 @@ only pull requests targeted directly against main.

### Release Procedure

If new commits are API breaking, a new major version will be released. Everything else can be considered the next
minor version to be released.

- All new commits are merged into `main`
- The `CHANGELOG` will be updated as needed

To create a new release:

- Start on `main`
- Create the release candidate branch `rc/v*` (going forward known as **RC**)
and ensure it's protected against pushing from anyone except the release
manager/coordinator
- **no PRs targeting this branch should be merged unless exceptional circumstances arise**
- On the `RC` branch, prepare a new version section in the `CHANGELOG.md`
- All links must be link-ified: `$ python ./scripts/linkify_changelog.py CHANGELOG.md`
- Copy the entries into a `RELEASE_CHANGELOG.md`, this is needed so the bot knows which entries to add to the release page on github.
- Kick off a large round of testing
- If errors are found during testing, commit the fixes to `main`
and create a new `RC` branch (making sure to increment the `rcN`)
- After simulation has successfully completed, create the release branch
(`release/vX.XX.X`) from the `RC` branch
- Create a PR to `main` to incorporate the `CHANGELOG.md` updates
- Tag the release (use `git tag -a`) and create a release in Github
- Delete the `RC` branches

### Point Release Procedure

At the moment, only a single major release will be supported, so all point releases will be based
off of that release.

In order to alleviate the burden for a single person to have to cherry-pick and handle merge conflicts
of all desired backporting PRs to a point release, we instead maintain a living backport branch, where
all desired features and bug fixes are merged into as separate PRs.

Example:

Current release is `v0.1.0`. We then maintain a (living) branch `sru/release/v0.1.N`, given N as
the next patch release number (currently `0.1.1`) for the `0.1` release series. As bugs are fixed
and PRs are merged into `main`, if a contributor wishes the PR to be released as SRU into the
`v0.1.N` point release, the contributor must:

1. Add `0.1.N-backport` label
2. Pull latest changes on the desired `sru/release/vX.X.N` branch
3. Create a 2nd PR merging the respective SRU PR into `sru/release/v0.38.N`
4. Update the PR's description and ensure it contains the following information:
- **[Impact]** Explanation of how the bug affects users or developers.
- **[Test Case]** section with detailed instructions on how to reproduce the bug.
- **[Regression Potential]** section with a discussion how regressions are most likely to manifest, or might
manifest even if it's unlikely, as a result of the change. **It is assumed that any SRU candidate PR is
well-tested before it is merged in and has an overall low risk of regression**.
- Create the release version branch `release/vx.x.x` (aka `release`)
- On the `release` branch, prepare a new version section in the `CHANGELOG.md`
- At the top of latest changes add `## [vx.x.x](https://github.com/provenance-io/provenance/releases/tag/vx.x.x) - YYYY-MM-DD`
- All links must be link-ified: `$ python ./scripts/linkify.py CHANGELOG.md`
- Copy the latest release entries into a `RELEASE_CHANGELOG.md`, this is needed so the bot knows which entries to add to the release page on github.
- Tag the release (use `git tag -a vx.x.x -m "vx.x.x"`)
- Push the tag up (use `git push origin vx.x.x`)
- The release will happen automatically in github
- Create a PR from branch `release` to `main` to incorporate ONLY the `CHANGELOG.md` updates
- Do not push `RELEASE_CHANGELOG.md` to `main`
- Delete the `release` branch

### Hotfix Procedure

If a hotfix is needed against the current release, a hotfix branch will be created from the current version tag per the
follow procedure:

- Start from tag `vx.x.x`
- Create a branch `hotfix/vx.x.(x+1)` (aka `hotfix`)
- The hotfix commit should be PR'd against both `main` and `hotfix`
- The `CHANGELOG` should be updated accordingly for both

It is the PR's author's responsibility to fix merge conflicts, update changelog entries, and
ensure CI passes. If a PR originates from an external contributor, it may be a core team member's
responsibility to perform this process instead of the original author.
Lastly, it is core team's responsibility to ensure that the PR meets all the SRU criteria.
Lastly, it is core team's responsibility to ensure that the PR meets all the Hotfix criteria.

Finally, when a point release is ready to be made:
When the hotfix is ready to be released:

1. Create `release/v0.1.N` branch
2. Ensure changelog entries are verified
1. Be sure changelog entries are added to `RELEASE_CHANGELOG.md`
3. Add release version date to the changelog
4. Push release branch along with the annotated tag: **git tag -a**
5. Create a PR into `main` containing ONLY `CHANGELOG.md` updates
1. Do not push `RELEASE_CHANGELOG.md` to `main`
- Start on `hotfix/vx.x.(x+1)` (aka `hotfix`)
- On the `hotfix` branch, prepare a new version section in the `CHANGELOG.md`
- At the top of latest changes add `## [vx.x.x](https://github.com/provenance-io/provenance/releases/tag/vx.x.x) - YYYY-MM-DD`
- All links must be link-ified: `$ python ./scripts/linkify_changelog.py CHANGELOG.md`
- Copy the latest release entries into a `RELEASE_CHANGELOG.md`
- Tag the release (use `git tag -a vx.x.x -m "vx.x.x"`)
- Push the tag up (use `git push origin vx.x.x`)
- The release will happen automatically in github
- Create a PR into `main` containing ONLY `CHANGELOG.md` updates
-Do not push `RELEASE_CHANGELOG.md` to `main`
- Delete the `hotfix` branch

Note, although we aim to support only a single release at a time, the process stated above could be
used for multiple previous versions.
4 changes: 2 additions & 2 deletions scripts/linkify.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import fileinput
import re

# This script goes through the provided file, and replaces any " \#<number>",
# This script goes through the provided file, and replaces any " #<number>",
# with the valid mark down formatted link to it. e.g.
# " [\#number](https://github.com/provenance-io/explorer-service/issues/<number>)
# Note that if the number is for a PR, github will auto-redirect you when you click the link.
Expand All @@ -11,5 +11,5 @@
#
# $ python ./scripts/linkify_changelog.py CHANGELOG.md
for line in fileinput.input(inplace=1):
line = re.sub(r"\s\\#([0-9]+)", r" [\\#\1](https://github.com/provenance-io/explorer-service/issues/\1)", line.rstrip())
line = re.sub(r"\s#([0-9]+)", r" [#\1](https://github.com/provenance-io/explorer-service/issues/\1)", line.rstrip())
print(line)

0 comments on commit b73eb01

Please sign in to comment.