- 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.py
and 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-manifest
to check if everything is included
- Check for dependencies installed which needs to go into
.circleci/config.yml
or themopidy/ci-python
Docker images
- Remove
{% raw %}
clauses:sed -i "s/{% [a-z]* %}//g" .circleci/config.yml
- Split out of
README.rst
- Remove
?style=flat
from 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 **/*.py
black .
isort -rc . && black .
- Use
pathlib
inExtension
- Use
pkg_resources
to populate__version__
- Use
unittest.mock
instead 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
python3
branch and make a PR - Check that CI runs green
- Merge PR
- Bump version (now in
setup.cfg
) to a new major number - Add
rc1
suffix 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
Can we add something like the following to the Copy from the cookiecutter section: