- Fork the repository into your own personal github account.
- Clone your fork of the repository.
git clone [email protected]:YourGitHubName/website.git - Ensure you are running python 3.12.
python -Vorpython3 -Vshould outputPython 3.12.x - Create a virtualenv to isolate the project dependencies.
python3 -m venv pythonie-venvorvirtualenv -p python3 pythonie-venvworks for Ubuntu. - Activate the virtualenv.
source pythonie-venv/bin/activate - Change into the website directory.
cd website - Install the dependencies.
pip install -r requirements.txt - Set up the database.
python pythonie/manage.py migrate --settings=pythonie.settings.dev - Run the server.
python pythonie/manage.py runserver --settings=pythonie.settings.dev - Check that it works by visiting
http://127.0.0.1:8000/in your browser. (You should see a 'welcome to Wagtail' site, as you will not see content until you've added it in your DB) - Create a super user on your local DB.
python pythonie/manage.py createsuperuser --settings=pythonie.settings.dev - Log in to wagtail with your superuser by navigating to
http://127.0.0.1:8000/admin/. - To get rid of redis errors, install and run redis server locally and set environment variable export REDISCLOUD_URL=127.0.0.1:6379
- To test flake8 compliance in the python source code
flake8 pythonie/
- pythonie/manage.py test pythonie --settings=pythonie.settings.tests --verbosity=2
We use several tools to manage and streamline development:
- Task: Task runner for automating common development workflows. See
Taskfile.yamlfor available tasks. - Toast: Containerized project automation. See
toast.ymlfor configuration and available commands. - asdf: Tool version manager to ensure consistent versions of Python and other tools. Refer to
.tool-versionsif present, and see the asdf documentation for setup. - uv: Fast Python package manager, used for installing and managing dependencies. You can use
uv pip install -r requirements.txtas a drop-in replacement for pip.
Make sure to install these tools to ensure a smooth development experience.