Package: bugyi.release-tools
bugyi.release_toolsScripts that help release new versions of software.Badges 📛project status badges:version badges:tools / frameworks used by test suite (i.e. used bymake test):linters used to maintain code quality (i.e. used bymake lint):tools / frameworks used to render documentation (i.e used bymake build-docs):miscellaneous tools used to maintain this project:Useful Links 🔗API Reference: A developer's reference of the API exposed by this
project.cc-python: Thecookiecutterthat was used to generate this project.
Changes made to this cookiecutter are periodically synced with this project.CHANGELOG.md: We use this file to document all notable changes made to
this project.CONTRIBUTING.md: This document contains guidelines for developers
interested in contributing to this project.Documentation: This project's documentation is hosted onreadthedocs.io.gh:bbugyi200/python-release-tools:
This project’s source code is hosted on GitHub.Genericcc-pythonDocumentation 📄🔢 Basic UsageBefore making a PR please run the followingOptional one time setup: runmake use-dockerif you need to build/test this with dockermake lintto check for any format or convention issuesmake testto run all tests❓ How do I ...?🔧 See available make targetsTo see available make targets, simply runmake.🐳 Switch to and from using DockerTo start using Docker, runmake use-docker. Every subsequent make command you run will then be run inside the associated container whenever appropriate.To stop using Docker, runmake remove-docker. Every subsequent make command you run will then be run inside your native virtual environment whenever appropriate.🛠 Add a new pip dependencyNew dependencies need to be added torequirements.in. Yourrequirements.txtwill then automatically be updated to reflect those changes the next time a relevant make target is run. Alternatively, you can runmake update-requirements.Note:Before any make command is run, requirements are synced so that the development environment matches yourrequirements.txtexactly i.e. extra packages that are not present in therequirements.txtare removed and any missing packages are installed. This helps providing a consistent environment across platforms, and ensures that whenever requirements change, only minimal updates are performed.Check outpip-toolsfor more information.🙈 Ignore linting violationsForflake8violations, you can:ignore a rule for a single line of code using a#noqacomment e.g.x=1# noqa: WPS111ignorea rule for an entire file by adding it toflake8.per-file-ignoresinsidesetup.cfg.excludean entire file from flake8 checks by adding it toflake8.excludeinsidesetup.cfg.ignore a rule for all files by adding it to theflake8.ignorelist insidesetup.cfg.Formypyviolations, you can:ignoretype checking for a single line of code using a# type: ignorecomment.ignoretype checking for an entire file by putting a# type: ignorecomment at the top of a module (before any statements, including imports or docstrings).Forpydocstyleviolations, you can:ignorea rule for a single line of code using a# noqacomment (this can be combined with flake8 exclusions).exclude an entire file from pydocstyle checks by excluding it frompydocstyle.matchinsidesetup.cfg.ignore a rule for all files by adding it to thepydocstyle.ignorelist insidesetup.cfg.Forcoverageviolations, you can:excludea single line of code using a# pragma: no covercomment.excludean entire file from coverage checks by adding it to thecoverage:run.omitlist insidesetup.cfg.excludeall lines matching a given pattern by adding it to thecoverage:report.exclude_lineslist insidesetup.cfg.🧪 Run specific testsFirst, get a shell inside your development environment by runningmake dev-shell.You can then use the pytest-koption to select tests based on their names, e.g.python-mpytest-k"included_test"You can also use "and", "or" and "not" keywords e.g.python-mpytest-k"included_test or not excluded"📄 Build and view docs from a local versionYou can generate docs locally by runningmake build-docs.
You can then see the generated docs by runningcddocs/build
python-mhttp.serverand going tohttp://localhost:8000/🍪 Update my project to match the cookiecutter which generated itThis project is enabled withcruftto be able to update the template with any improvements made in the cc-python cookie cutter which generated it.make check-ccwill report if this project is up to date or out of sync with the cookiecutter.make update-ccwill update this project to be in sync with the cc-python cookiecutter. This can give improvements or new features which are added to the template after this project was created. Note one should do this on a clean branch. After running this it is a good idea to runmake allto rebuild everything and ensure things still work after the update.