Basic development workflow

Standard install

In order to run Hermine in development mode, follow manual installation instructions in the installation guide.

Then, use the following commands to run the development server:

# inside poetry environment
python hermine/manage.py runserver

To run the tests, use the following command:

# inside poetry environment
cd hermine
python manage.py test

Working with DevContainer

You can also run Hermine inside a DevContainer.

It allows development inside a container, in a described and clean environment. You need to find how to integrate it to your IDE.

The PostCreate command will do the database migrations, you need to create your superuser and run the server. You also need to create your config file from default one.

cp hermine/hermine/config.default.py hermine/hermine/config.py
poetry run python hermine/manage.py createsuperuser
poetry run python hermine/manage.py runserver

Updating the changelog

The project keeps a CHANGELOG.md following the Keep a Changelog convention.

Every user-facing change should add a bullet under the ## [Unreleased] section at the top of CHANGELOG.md. Place the bullet under one of the six standard groups, creating it if it does not exist yet:

  • Added for new features.

  • Changed for changes in existing functionality.

  • Deprecated for soon-to-be removed features.

  • Removed for now removed features.

  • Fixed for any bug fixes.

  • Security in case of vulnerabilities.

On release, the ## [Unreleased] heading is renamed to ## [x.y.z] - YYYY-MM-DD, a fresh empty ## [Unreleased] section is added back on top, and the comparison links at the bottom of the file are updated so the new version resolves.