Contributing

Contributions are welcome, preferably via pull request. Check the github issues and project Roadmap to see what needs work. If you’re thinking about adding a new feature, it’s worth opening a new ticket to check it’s not already being worked on elsewhere.

Installing

The easiest way to work on Powerwiki is to fork the project on github, then use docker compose to create the environments:

cp docker-compose.dev.yml.default docker-compose.dev.yml
docker-compose -f docker-compose.dev.yml up postgres
docker-compose -f docker-compose.dev.yml up backend
docker-compose -f docker-compose.dev.yml up frontend

Run these in separate terminals to run PostgreSQL, Django, and Webpack in development mode with HMR.

Building JavaScript

Because this is a reusable project, we distribute built frontend resources. To build:

docker-compose -f docker-compose.dev.yml run -e FRONTEND_MODE=build frontend

Testing

It is greatly appreciated when contributions come with unit tests.

Use pytest to run the tests on your current installation:

pytest

These will also generate a coverage HTML report.

If running from within the docker container, you may need to run this using:

unset DJANGO_CONFIGURATION
PYTHONPATH=. pytest tests

Roadmap

  • Views for wiki admin and access management

  • Support for history and diffing

  • Migration tools for moving from other wikis