Skip to content

Versioning Guidelines

Lj Miranda edited this page Jul 16, 2018 · 4 revisions

PySwarms Versioning Guidelines

We will start releasing with respect to the semantic versioning guidelines. In addition, we'll follow best practices described in this post. PySwarms's versioning will follow the format:

MAJOR.MINOR.PATCH

Regular releases in PyPI

Every time we do a release, we'll bump the MINOR version by 1. This means that if our current release in PyPI is v.0.2.0, then our next release is v.0.3.0. There's still a lot of features that can be added to PySwarms for it to be considered feature-complete, so we'll do the first major release (v.1.0.0) in the far future.

Patch releases

If there's a bug fix, additional tests, and critical modifications to the code base, do the following:

  1. Merge patch-* branch to master.
  2. Release master by incrementing the PATCH version.
  3. Update development branch with changes in master.

Development branch pre-releases

We can also do pre-releases in the development branch every time a new feature was added and we're still not ready for the next MINOR release. To such, we'll then follow the format:

LATEST_RELEASE-dev.MAJOR.PATCH

Say we have added a new feature in the development branch after we releasing v.0.2.0 in preparation for v.0.3.0. We then designate this pre-release as v.0.2.0-dev.1. If there are any bug fixes on this current release, then we just affix a path version (v.0.2.0-dev.1.1). If there's another feature, then we can make another pre-release in the form v.0.2.0-dev.2, and so on and so forth.

Version Candidate Checklist

In order for a branch to become a candidate for the next minor version, the feature requirements below must at least be fulfilled. For more info, please check an explanation of PySwarms's API. Needless to say, documentation and relevant unit tests must accompany the new features.

Feature List

  • Must implement a new high-level PSO optimizer
  • Must implement a new Topology
  • New example (Jupyter notebook and rst) on a different application

Others

  • Previous bugs from the previous version must be solved.
  • Increase test coverage
Clone this wiki locally