Skip to content

For Developers

Patrick Creighton edited this page Sep 3, 2021 · 18 revisions

For Developers

To contribute to this project, please reach out to pcreighton429@gmail.com.

Linting

To ensure that our Python code stays clean, we are using Flake8 to enforce our style guide, which is mostly based off pep8. The only modification we have made to Flake8 is increasing the character line limit to 120.

VS Code

Settings in the .vscode directory will be automatically applied, which selects Flake8 as the linter and sets a vertical ruler of 120 for Python files.

Command Line

The command run by the Flake8 Python Linter workflow (additionally excluding the .venv directory) is:

flake8 . --count --show-source --statistics --max-line-length=120 --extend-exclude=.venv/

Modifying Course Model

  • If Course fields are modified (added, renamed, deleted), the database will need to be updated: run python manage.py makemigrations, then python manage.py migrate
    • If the field representations are changed without modifying the fields themselves (eg. changed professors_info field from dictionary to list), run python manage.py updatecourseobjects to refresh all the fields of all Course objects currently stored in the database
    • If migrations need to be made to the Course model, coursetracker/migrations/load_courses.py will need to be manually updated to depend on the latest migration

Submodules

If the submodule directories are empty, try initializing the submodules

git submodule update --init --recursive

To fetch the latest changes from the submodules' repositories, use

git submodule update --recursive --remote

If there has been a new commit to those repositories, update this repository by committing the change

For more information about submodules, see its documentation page

Clone this wiki locally