Contributing#
Setting up a development environment#
First, you will need to fork the repository.
Then you will need to setup a ssh-key. See GitHub’s tutorial.
git clone https://github.com/<your-username>/nextcore
cd nextcore
poetry install
git checkout -b <name-of-what-you-are-changing>
poetry shell # You will need to run this every time you need access to your development version of nextcore.
We recommend making a “development” folder and adding it to your .git/info/exclude file.
This can be done by making a .dev
folder and appending .dev
to the .git/info/exclude file on a new line.
Every file in the .dev
directory will now be invisible to git.
Submitting your changes#
Before submitting we recommend checking a few things
You have linted your code. This can be done by running
task lint
You have checked your code for type errors. This can be done by running
pyright
Hint
Pyright needs to be installed. This can be done by using npm install --global pyright
Did you remember to write a changelog? See the towncrier tutorial
Do’s and Dont’s#
Do keep your PR scope small. We would rather review many small PRs with seperate features than one giant one.
Make draft PRs.
Project structure#
Nextcore is currently split into 3 main modules
nextcore.common
nextcore.http
nextcore.gateway
Common is for common utilies that needs to be shared between the other modules. HTTP is for the REST API. Gateway is for the WebSocket gateway.