-
Notifications
You must be signed in to change notification settings - Fork 334
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
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.
If there's a bug fix, additional tests, and critical modifications to the code base, do the following:
- Merge
patch-*
branch tomaster
. - Release
master
by incrementing thePATCH
version. - Update
development
branch with changes inmaster
.
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.
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.
- Must implement a new high-level PSO optimizer
- Must implement a new Topology
- New example (Jupyter notebook and rst) on a different application
- Previous bugs from the previous version must be solved.
- Increase test coverage