The streaming percentiles library uses Bazel to build.
Once Bazel (or, preferrably, Bazelisk)
is installed, build everything with bazel build //...
and run
all unit tests with bazel test //...
.
This project follows Semantic Versioning 2.0.0. In short:
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
This project follows Vincent Driessen's A successful Git branching model. In short:
master
is the main branch where the source code of HEAD always reflects a production-ready state.develop
is the main branch where the source code of HEAD always reflects a state with the latest delivered development changes for the next release.
- Update
CHANGELOG.md
with the latest change information (git diff vX.Y.Z
might be useful here) - Update
README.md
if necessary - Update the version fields in
CMakeLists.txt
- Merge all changes to the
master
branch (i.e.git checkout master && git merge develop
) - Checkout
master
(i.e.git checkout master
) - Run
./build.sh --release --clean
and ensure that all unit tests pass. - Tag the release (e.g.
git tag vX.Y.Z
) - Push the changes and the tag to
origin
(e.g.git push && git push --tags
) - Create a GitHub release associated with the tag. Be sure to include
the changes from
CHANGELOG.md
. - Build and publish binaries. For each platform:
- Clone the repository (
git clone https://github.com/sengelha/streaming-percentiles.git
) - Change into the cloned folder (
cd streaming-percentiles
) - Checkout the release tag (
git checkout tags/vX.Y.Z
) - Build the package in release mode (
./build.sh --release
) - Upload the built artifact(s) to GitHub
- Clone the repository (
- Upload the built JS (both minified and unminified) to
sengelha.github.io
.- Checkout the sengelha.github.io repository (
git clone https://github.com/sengelha/sengelha.github.io
) - Change into the sengelha.github.io folder (
cd sengelha.github.io
) - Copy the JS files to the
streaming-percentiles
directory - Push the new content to GitHub (
git add -A && git commit && git push
)
- Checkout the sengelha.github.io repository (
- Publish to NPM. From the directory
target/Release/js/src/node_package
, runnpm publish
- Send out a release announcement.