- Check if on latest master
- Create a branch:
git checkout -b python3
- Copy new content, not the entire file, from cookiecutter
- Update the file with details from
setup.pyand deps fromtox.ini
CC=~/mopidy-dev/cookiecutter-mopidy-ext/\{\{cookiecutter.repo_name\}\}
cp $CC/.gitignore .
cp $CC/setup.py .
cp $CC/pyproject.toml .
cp $CC/tox.ini .
cp $CC/MANIFEST.in .
rm .travis.yml
cp -r $CC/.circleci .- Check diff for custom files that should still be ignored
- Set package name
- Run
tox -e check-manifestto check if everything is included
- Check for dependencies installed which needs to go into
.circleci/config.ymlor themopidy/ci-pythonDocker images
- Remove
{% raw %}clauses:sed -i "s/{% [a-z]* %}//g" .circleci/config.yml
- Split out of
README.rst
- Remove
?style=flatfrom badge urls - Update CI and coverage badges
- Indent badges by 4 spaces
- Update install docs to use
python3 -m pip - Add changelog link in resources section
- Add credits section
git commit -m "Update project to match cookiecutter-mopidy-ext"Commit for each of the following steps:
pyupgrade --py37-plus **/*.pyblack .isort -rc . && black .- Use
pathlibinExtension - Use
pkg_resourcesto populate__version__ - Use
unittest.mockinstead ofmock - Use f-strings instead of
%and.format() - Anything else necessary to get tests passing and code running
If first extension in this GitHub org/user:
- Go to CircleCI organization security settings, e.g. https://circleci.com/gh/organizations/mopidy/settings#security
- Check "Yes, allow all members of my organization to (...) use third-party orbs"
For each extension:
- Find project at https://circleci.com/gh/organizations/mopidy/settings#projects
- Open Project settings on the right project
- Click the "Follow project" button
- Open Project settings > Advanced settings
- Set "Build forked pull requests" to "On"
- CircleCI is now ready to build any branch/PR with a
.circleci/config.yml - Setup of coverage data from CircleCI to Codecov.io is automatic
- Push the
python3branch and make a PR - Check that CI runs green
- Merge PR
- Bump version (now in
setup.cfg) to a new major number - Add
rc1suffix to the version number - Update changelog
- Commit and close Python 3 tracking issue from the commit message
- Release to PyPI:
rm -rf dist && python setup.py sdist bdist_wheel && twine upload -s dist/* - Create release tag:
git tag -a -m "Release v2.0.0rc1" v2.0.0rc1 - Push:
git push --follow-tags
twine upload -s dist/*if you can! (I remembered this time)