Package: bumpytrack
Current version:1.1.7Tested with Python 3.8, 3,9, 3.10 and 3.11 on latest Linux, MacOS and Windows. Code is simple. Probably works in other versions and platforms.Pypi:https://pypi.org/project/bumpytrack/Github:https://github.com/nandilugio/bumpytrackBumpyTrackBumping the (semantic) version of your software every time a release is done can be a tedious task, if you:Have the version written in various files, e.g.setup.pyor a dedicated version file.Manage versioning with tags in GIT.This little script automates this process for you.Say you're usinggit-flowand you've just merged a feature to your development branch. You can just checkout and pull it, and then do:bumpytrackminor# or major if you have breaking changes, or patch if it's a simple bugfixIt will:Replace the version string in all relevant files (see config below).Commit those changes to GIT, taking care not to commit anything else (can be omitted).Create a GIT tag for this new version (can be omitted).Now you're free to push, merge to master and deploy!gitpush
gitpush--tagsUnless you forgot something or bumped by mistake of course, in which case you can just undo the commit and tag created in Git by doing:bumpytrackgit-undoFor the above version string replacements we'll need some config.This exampleshould be autoexplicative. Create apyproject.tomlor add your config to the one you already have in the root of your repository and you're good to go.InstallationpipinstallbumpytrackThen add apyproject.tomlto the root of your repository (if you don't already have it) and configure itlike this.HelpThe script is really simple, and has a decent on-line documentation. Just do:bumpytrack--helpSome of the available options:--current-version CURRENT_VERSION
                        force current version instead using version in config
                        file
  --new-version NEW_VERSION
                        force new version instead using version in config file
  --git-commit          Git: Commit files with version replacements
  --no-git-commit
  --git-tag             Git: Tag this reference with the new version
  --no-git-tag
  --config-path CONFIG_PATH
                        path to config file. Defaults to pyproject.toml in
                        current directory
  --verboseYou can also justpeek at the code. Not much of it... it just adds one to some little numbers ;pContributingMake sure you have the lastestpipandpipenvversions:pipinstall--upgradepippipenvTo start developing, start the environment by:pipenvshell
pipenvinstall-dThe installedbumpytrackwithin the pipenv environment is the editable (allapip install -e .) version of the package, so you can manually test right away.This tool uses bothpipenvfor development andsetuptoolsfor packaging and distribution. To this date there is not a 100% community-accepted best practice so I've takenthis approach. In summary:To add anapplicationdependency, add it insetup.pyand leave it with a loose version definition. Then, just dopipenv install -e .to install the dependency. Pipenv locking mecanism will work as expected, since bumpytrack itself in in the[packages]section ofPipfile(checkPipfile.lockand you'll find the deps there).To add adevelopmentdependency, add it toPipfileviapipenv install -d <my-dependency>.This way there's a single source of truth for package definition. No need to repeat the deps insetup.pyandPipfile*.TestsTo test the project runpytestinside thepipenv. Once you have something running, runtoxto check it's compatible with all python versions supported.IMPORTANT: in order to maketoxtest with different python versions, those have to be installed.pyenvis used for that purpose and should work out of the box. Check the required versions intox.iniand related files.Dev tasks automation and publishing to PyPIThis project usespepythonfor automation. There you'll find tasks to build and publish the package to PyPI.Checkthe projectout and thetasks.pyfile for more info.LicenseThis project is licensed under the MIT License - see theLICENSEfile for details.