Skip to content

Latest commit

 

History

History
65 lines (51 loc) · 2.54 KB

Contributing.md

File metadata and controls

65 lines (51 loc) · 2.54 KB

Contributing to Wahoo! Results

Thank you for taking the time to consider contributing to the project. Use the information in this document to get started.

Bugs and feature requests

Even if you don't want to contribute code, you can still contribute to the project by providing feedback. Here are some ways you can do that:

Developing & building from source

Note: Wahoo! Results, while it is written in Python, is primarily targeted at Windows. As such, it is recommended to use Windows for development and testing.

Environment setup

  • Install Python 3
    Chocolatey is a good way to install Python on Windows: choco install python3
    The version of Python currently being used can be found at the botton of the Pipfile.
  • Install dependencies:
    • Install pipenv: pip install --user --upgrade pipenv==2024.4.0
    • Install project dependencies: pipenv sync --dev
  • (Optional) Install pre-commit to verify code style before committing
    • Install pre-commit: pip install --user --upgrade pre-commit
    • Install pre-commit hooks: pre-commit install

Building & running

  • To run the app (for development): pipenv run python wahoo_results.py
  • To build the executable version:
    • Install UPX: choco install upx --version 4.2.4
    • Run the build script: pipenv run python build.py

Testing

  • The unit tests can be run via: pipenv run pytest
  • There are also end-to-end tests that are build into the program. To run them, pass command-line options when running either the .py or .exe versions.
    • Specific scenario tests: wahoo-results.exe --loglevel=debug --logfile=debug.log --test=scripted:<duration_secs>
    • Randomized testing: wahoo-results.exe --loglevel=debug --logfile=debug.log --test=random:<operation_delay_secs>:<runtime_secs>:<max_num_operations>

Release procedure

  • Update release notes in Changelog.md
  • Update download link in documentation (docs/download.rst)
  • Commit above items: "Updates for vX.Y.Z release"
  • Tag the repo with the appropriate version tag (e.g. vX.Y.Z)
  • Push the tag to GitHub, and the automation will create a draft release
  • Edit the draft release to add the release notes
  • Publish the release