Skip to content

Latest commit

 

History

History
59 lines (42 loc) · 2.12 KB

CONTRIBUTING.md

File metadata and controls

59 lines (42 loc) · 2.12 KB

Contributing to Travel Buddy

Reporting Issues

We use GitHub Projects as a Kanban board and integrate the GitHub Issues feature to track the progress of tasks and related pull requests - remember to link the issue to the Kanban board.

Include the following information when reporting an issue (where possible):

  • Breakdown of the problem
  • Expected changes
  • Reproducible steps (if reporting a bug)

The high priority label should be sparingly to avoid diluting its significance - overuse of this defeats the purpose of the label.

Project Structure

This project uses Flask Blueprints to organise the application (more info here).

We use a functional structure, where pieces of the application are organised by what they do (further explanation using Facebook as an example here). Each Python file in the /views/ directory represents a blueprint, which is registered in the main application in app.py.

Pull Requests

Include the following information when submitting a pull request:

  • Overview of the changes
    • Where needed, add explanations about what the changes will effect and why they were made.
  • Related issues
    • Using the This fixes {link to issue} syntax will automatically close the issue once merged.

Unit Tests

Unit tests should be created and maintained as changes are made to the core functionality to improve maintainability.

We use the Pytest framework for this, which has been integrated into GitHub Actions for automated unit testing (see below).

GitHub Actions

After pushing to the repository, the workflow in GitHub Actions consists of:

  • Running Python code formatting with Black
    • This ensures good readability and a consistent style across the codebase to reduce diffs for code reviews.
  • Running all unit tests for Python with Pytest
    • This helps prevent runtime errors in production.
    • Test should be created and kept updated to facilitate this.