ievv_opensource
Develop
Requires:
Use conventional commits for GIT commit messages
See https://www.conventionalcommits.org/en/v1.0.0/.
You can use this git commit message format in many different ways, but the easiest is:
Install hatch and commitizen
NOTE: You only need hatch if you need to build releases, and you
only need commitizen for releases OR to make it easy to follow
conventional commits for your commit messages
(see Use conventional commits for GIT commit messages above).
First install pipx with:
brew install pipx
pipx ensurepath
Then install hatch and commitizen:
pipx install hatch
pipx install commitizen
See https://github.com/pypa/pipx, https://hatch.pypa.io/latest/install/
and https://commitizen-tools.github.io/commitizen/ for more install alternatives if
needed, but we really recommend using pipx since that is isolated.
Install development dependencies
Install a local python version with pyenv:
pyenv install $(pyenv latest -k 3.12)
pyenv local 3.12
Install dependencies in a virtualenv:
./tools/recreate-virtualenv.sh
Alternatively, create virtualenv manually (this does the same as recreate-virtualenv.sh):
python -m venv .venv
the ./tools/recreate-virtualenv.sh script is just here to make creating virtualenvs more uniform
across different repos because some repos will require extra setup in the virtualenv
for package authentication etc.
Install dependencies in a virtualenv:
source .venv/bin/activate
pip install -e ".[dev,test]"
Upgrade your local packages
This will upgrade all local packages according to the constraints
set in pyproject.toml:
pip install --upgrade --upgrade-strategy=eager ".[dev,test]"
Run postgres and redis
docker compose up
Run dev server
source .venv/bin/activate
ievv devrun
Run tests
source .venv/bin/activate
pytest ievv_opensource
Destroy postgres and redis
docker compose down -v
Documentation
http://ievv-opensource.readthedocs.org/
How to release ievv_opensource
First make sure you have NO UNCOMITTED CHANGES!
Release (create changelog, increment version, commit and tag the change) with:
cz bump
git push && git push --tags
NOTE (release):
cz bump
automatically updates CHANGELOG.md, updates version file(s), commits the change and tags the release commit.
- If you are unsure about what
cz bump
will do, run it with --dry-run
. You can use
options to force a specific version instead of the one it automatically selects
from the git log if needed, BUT if this is needed, it is a sign that someone has messed
up with their conventional commits.
cz bump
only works if conventional commits (see section about that above) is used.
cz bump
can take a specific version etc, but it automatically select the correct version
if conventional commits has been used correctly. See https://commitizen-tools.github.io/commitizen/.
- If you need to add more to CHANGELOG.md (migration guide, etc), you can just edit
CHANGELOG.md after the release, and commit the change with a
docs: some useful message
commit.
- The
cz
command comes from commitizen
(install documented above).
What if the release fails?
See How to revert a bump in the commitizen FAQ.
Release to pypi:
hatch build -t sdist
hatch publish
rm dist/*
Migrate to 11.0.0
BREAKING! Update log handlers for rq_console
Replace rq.utils
with rq.logutils
"rq_console": {
"level": "DEBUG",
"class": "rq.logutils.ColorizingStreamHandler",
"formatter": "rq_console",
"exclude": ["%(asctime)s"],
}
BREAKING! deps
rq
is locked to >= 2.0.0 and < 3.0.0
- Along with new
rq
major, django-rq
is locked to >= 3.0.0 < 4.0.0 for new rq
major support.
WARNING! The USE_L10N setting is deprecated
Basically this is True
by default.