Concord is a framework for implementing user-controlled permissions and governance structures. Sites built with Concord allow communities of users to determine which actions may be taken in their communities using a variety of decision-making processes.
To learn more about the design and implementation of Concord, check out our documentation.
The project is maintained by the Glizzan organization and surrounding community. To join, please email [email protected] to ask for an invite to our Zulip discussion space. Please note: this project uses the Contributor Covenant as our Code of Conduct, and by participating you agree to abide by its terms.
Concord has been released under a custom license, the Concord Cooperative License. This license is more restrictive than a free software/open source license. If you believe that your intended use might not fall under the terms of that license, please contact us to discuss alternatives.
- Make a directory for your project
mkdir glizzan
- Change into the directory:
cd glizzan
- Fork the repo on GitHub
- Clone your fork:
git clone <your name>/glizzan-concord
- Change into directory you just cloned:
cd glizzan-concord
- Create a Python3 virtual environment:
python3 -m venv testenv
- Activate the virtual environment:
source testenv/bin/activate
- Check pip for upgrades:
pip install --upgrade pip
- Install requirements:
pip install -r requirements.txt
- Change into subdirectory where tests are:
cd concord
- Run the tests:
python manage.py test
There are two types of tests to run.
Testing of the core module is done via pytest. Make sure you are in the core directory and run python -m pytest
.
Otherwise testing is run as you would expect in a Django project, by cding into the project (Concord) and running python manage.py test
.
It is emphatically recommended that you join the community before trying to make a contribution. Concord is still in an early stage of development and contains many hacks and quirks that you will likely need to ask questions about.
Nevertheless, it's worth sketching out a number of the ways in which you can contribute to this project:
- using Concord or any of its implementations and providing feedback about the experience
- improving documentation, including by reading the existing documentation and telling us if any parts confused you
- providing security, accessibility and/or performance reviews
- adding to the test suites
- writing new features or fixing bugs
In particular, Concord is built to be extensible in three major ways: through the addition of new templates, new condition types, and new resource types. Please see the Documentation for how to do so: How to Add a Template, How to Add a Resource, How to Add a Condition (coming soon).