Skip to content

Files

Latest commit

 

History

History
86 lines (73 loc) · 3.71 KB

CONTRIBUTING.md

File metadata and controls

86 lines (73 loc) · 3.71 KB

Contributing Guide

Setup

  • Install Docker.

  • Install asdf to automatically manage the versions of the needed programming languages and tools based on the contents of .tool-versions.

  • Add the following to the bottom of your ~/.bashrc:

    source ~/.asdf/asdf.sh
    source "$ASDF_DIR/completions/asdf.bash"
  • Close and relaunch Ubuntu to source your ~/.bashrc.

  • Install Python's build dependencies.

  • If .tool-versions contains ruby, install Ruby's build dependencies.

  • Change directories to the root of this repository.

  • Add the asdf plugin for all tools in .tool-versions (e.g., run asdf plugin add nodejs to install the Node.js plugin for asdf).

  • Run asdf install to install all asdf-managed tools at the pinned versions.

  • Run poetry env use "$(asdf which python)" to instruct Poetry to use the asdf-managed Python.

  • Run poetry install --sync to install all Python dependencies.

  • Run poetry shell to activate the Poetry virtual environment.

  • Install all pre-commit hooks by running pre-commit install --install-hooks.

  • Create a ~/.ssh/config file with the following contents:

    Host github.com
      AddKeysToAgent yes
      # This may need to be modified to match the path to your private key.
      IdentityFile ~/.ssh/id_ed25519
      # Prevent GitHub from timing out pushes since we run intense pre-push hooks.
      ServerAliveInterval 5
      ServerAliveCountMax 360

Expectations

  • If you are new to open source, welcome. Here is a guide to getting started.
  • New features are generally welcome.
  • For non-trivial issues, you may save yourself time by filing an issue first so we can discuss how best to address your proposal.
  • Thoroughly review README.md, and include any pertinent changes to the documentation in your change.
  • The purpose of pre-commit hooks is to automate the trivial aspects of code review. Please address all issues found by pre-commit hooks that they don't fix automatically before opening a pull request. If you are stumped, please consult the documentation of the tool run by the failing hook. If you are still stumped, ask questions in an appropriate forum, such as Stack Overflow, a tool-specific forum, or your work Slack if applicable. If you are still stumped, please open an issue explaining what you have tried so far.
  • We use the Python-based Commitizen, not to be confused with the Node.js-based Commitizen. This helps to maintain a clear revision history. The Test workflow automatically bumps the project version in pyproject.toml, appends to CHANGELOG.md, and tags versions. You can either write Conventional Commits by hand or run cz commit from within the Poetry virtual environment for guidance.

Editors

VSCode is recommended as this repository configures it to run many of our linters as you edit.

  • When prompted, install the extensions recommended by the workspace.
  • When prompted, select the Python interpreter from the virtual environment Poetry created for this repository.
.github/CONTRIBUTING.md at main · ScribeMD/.github · GitHub