I propose to remove the prerelease configuration from bumpversion,
because I think its behavior is just too confusing.
The rational for this is that making the release procedure predictable
is more important than facilitating making pre-releases, which are sort
of the exception in the workflow.
The current configuration makes most common cases confusing:
* bug fix releases require you have to remember to use `--serialize "{major}.{minor}.{patch}"`
* to start a pre-release cycle, you actually use `minor` or `patch`
* to do the actual minor or patch release, you use `prerel`
Also, `prerel` breaks if you run it on a branch with a final release,
because it can't parse the prerelease information.
Therefore, I propose keeping the bumpversion defaults, and do the
prereleases (dev1, dev2, rc1, etc) manually (with `--new-version`),
which makes for a more predictable and intuitive behavior.
* `bumpversion minor` and `bumpversion patch` will work as expected
* pre-releases will be manually handled, but this seems a small overhead
than remembering the details I mention above.
If you're happy with this, I'll also update [the wiki][1] with new
instructions.
[1]: https://github.com/scrapy/scrapy/wiki/Scrapy-release-procedure