Contributing#

General guidelines#

The Brokenspoke-analyzer project follows the BNA Mechanics Contributing Guidelines. Refer to them for general principles.

Specific instructions will be described in other sections on this page.

Developer environment#

Requirements#

Setup#

Fork brokenspoke-analyzer into your account. Clone your fork for local development:

git clone git@github.com:your_username/brokenspoke-analyzer.git

Then cd into brokenspoke-analyzer, and to setup the project and install dependencies, run:

poetry install

Database#

The brokenspoke-analyzer requires a PosgreSQL/PostGIS server to run the analysis.

We provide 2 options to make it easy for the developpers to set it up:

  • a Docker compose file which spins up the server with all the required extensions

  • a configure sub-command which helps configuring the server

Serving the documentation site#

To render the site when adding new content, run the following command:

just docs-autobuild

Then open the http://127.0.0.1:1111 URL to view the site.

The content will automatically be refreshed when a file is saved on disk.

Administration tasks#

Administration tasks are being provided as convenience in a justfile.

More information about Just can be found in their repository. The installation section of their documentation will guide you through the setup process.

Run just -l to see the list of provided tasks.

Running the BNA using Brokenspoke-analyzer#

The brokenspoke-analyzer can be run using the bna script defined in pyproject.toml or by activating the virtual environment that was created by Poetry inside the project (given the poetry config file, poetry.toml) and running the cli commands. To run the modified BNA for a city in the US, for example Flagstaff, AZ, using the bna script:

bna --help

For example to run an analysis for Santa Rosa, NM:

bna run usa "santa rosa" "new mexico" 3570670

To run using the virtual environment, activate the virtual environment:

poetry shell

Then run any of the cli commands, for example:

python main.py run usa "santa rosa" "new mexico" 3570670

To exit the virtual environment:

exit