Bug Fixes
- Don't use linux commands on windows
([393](https://github.com/python-semantic-release/python-semantic-release/pull/393),
[`5bcccd2`](https://github.com/python-semantic-release/python-semantic-release/commit/5bcccd21cc8be3289db260e645fec8dc6a592abd))
- Mypy errors in vcs_helpers
([`13ca0fe`](https://github.com/python-semantic-release/python-semantic-release/commit/13ca0fe650125be2f5e953f6193fdc4d44d3c75a))
- Skip removing the build folder if it doesn't exist
([`8e79fdc`](https://github.com/python-semantic-release/python-semantic-release/commit/8e79fdc107ffd852a91dfb5473e7bd1dfaba4ee5))
https://github.com/relekang/python-semantic-release/issues/391#issuecomment-950667599
Documentation
- Clean typos and add section for repository upload
([`1efa18a`](https://github.com/python-semantic-release/python-semantic-release/commit/1efa18a3a55134d6bc6e4572ab025e24082476cd))
Add more details and external links
Features
- Allow custom environment variable names
([392](https://github.com/python-semantic-release/python-semantic-release/pull/392),
[`372cda3`](https://github.com/python-semantic-release/python-semantic-release/commit/372cda3497f16ead2209e6e1377d38f497144883))
* GH_TOKEN can now be customized by setting github_token_var * GL_TOKEN can now be customized by
setting gitlab_token_var * PYPI_PASSWORD can now be customized by setting pypi_pass_var *
PYPI_TOKEN can now be customized by setting pypi_token_var * PYPI_USERNAME can now be customized
by setting pypi_user_var
- Rewrite Twine adapter for uploading to artifact repositories
([`cfb20af`](https://github.com/python-semantic-release/python-semantic-release/commit/cfb20af79a8e25a77aee9ff72deedcd63cb7f62f))
Artifact upload generalised to fully support custom repositories like GitLab. Rewritten to use twine
python api instead of running the executable. No-op mode now respected by artifact upload.