Django cradmin
Django custom role based admin UI.
Django cradmin is in BETA. The system is fairly stable, but:
- We do not have getting started guides.
- We should have better tests before release. Some parts have been prototyped
a lot while we tested out different concepts, and they need a complexity
review and better tests.
- Works with Django 4 and python >=3.8,<3.11
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
Create 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
source .venv/bin/activate
pip install -e ".[dev, test]"
.venv/bin/pip install -e ".[dev,test]"
Run dev server
source .venv/bin/activate
ievv devrun
Run tests
source .venv/bin/activate
pytest django_cradmin
Build css/javascript:
source .venv/bin/activate
nvm use 14
ievv buildstatic
ievv buildstatic --watch
Docs
http://django-cradmin.readthedocs.org
License
3-clause BSD license. See the LICENSE file in the same directory as this readme file.
How to release django_cradmin
First make sure you have NO UNCOMITTED CHANGES!
Buildstatic
Remove the previous built static files:
git rm -r django_cradmin/apps/django_cradmin_js/static/django_cradmin_js/ django_cradmin/apps/django_cradmin_styles/static/django_cradmin_styles/
Bump version and add changelog
cz bump --files-only --changelog
Build static files
Create new production static files
nvm use 14
ievv buildstatic --production
Commit static files
NB: Make sure you also commit pyproject.toml
and django_cradmin/__init__.py
, as the new version is in these files now.
git add pyproject.toml django_cradmin/__init__.py django_cradmin/apps/django_cradmin_js/static/django_cradmin_js/ django_cradmin/apps/django_cradmin_styles/static/django_cradmin_styles/
git status
git commit -m "bump: $(cz version --project)"
Make tag and push
Create tag with the current version
git tag $(cz version --project)
git push && git push --tags
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/*