nsupdate.info/DEVELOPMENT.md
Florian Eitel f4ab1964e2
Add Pipfile for dependency tracking
It's optional. Keeping the old requirements.txt files around.
2023-03-18 13:42:39 +01:00

1.5 KiB

Dependency management

Get Pipenv and checkout the Pipenv Command reference

Install new dependencies

https://pipenv.pypa.io/en/latest/commands/#install

pipenv install mypkg

Spawn a shell with correct python paths

pipenv shell

Exit the shell with exit

Dependency maintenance

Update requirements.txt files including transitive dependencies

pipenv update

NOTE: This is not done today and only a suggestion.

pipenv requirements --exclude-markers > requirements.d/all.txt
pipenv requirements --exclude-markers --dev-only > requirements.d/dev.txt

Verify the updated dependencies don't include any security vulnerabilities

pipenv check

Build locally

  1. Install build (see docs for example via pacman -S python-build on ArchLinux
  2. Afterwards run the command to generate pip packgases in dist/: pyproject-build

NOTE: This is also needed before development because the command generates ./src/nsupdate/_version.py.

Run locally

  1. Install dependencies pipenv install --dev
  2. Generate src/nsupdate/_version.py file by running pyproject-build
  3. Create database using pipenv run ./manage.py migrate
  4. Create a superuser with pipenv run ./manage.py createsuperuser
  5. Run the server with pipenv run ./manage.py runserver