contributing to the project#

this project is open source, and we welcome contributions from the community in any way. your contributions will be reviewed by a team member and will be integrated into the project as soon as possible.

support questions#

please don’t hesitate to ask questions, and we will try to answer them as soon as possible. your can ask questions in the github-discussion Please don’t use the issue tracker for this. The issue tracker is a tool to address bugs and feature requests in Breeze itself.

Reporting issues#

Include the following information when reporting issues:

  • Describe what you expected to happen.

  • Describe what you actually did.

  • List your Python, Flask and SQLalchemy version, OS, and other relevant details.

Submitting pull requests#

your can work on any issue without assigning it to a member. if your like work on a feature, you can see TODOs for find TODOs. but if you like to work on a bug, you can report bug in the issue tracker and work on it.

Include the following in your patch:

  • use black to format your code. This and other tools will run automatically if you install pre-commit using the instructions below.

  • Include tests if your patch adds or changes code. Make sure the test fails without your patch.

  • Update any relevant docs pages and docstrings. Docs pages and docstrings should be wrapped at 72 characters.

work on a feature or fix a bug#

steps:

  • 1: fork the project and clone the repo.

  • 2: Clone the main repository locally.

git clone https://github.com/mmdbalkhi/breeze
cd breeze
  • 3: Add your fork as a remote to push your work to. Replace {username} with your username. This names the remote “fork”, the default Pallets remote is “origin”.

git remote add fork https://github.com/{username}/breeze
  • 4: install and set-up virtualenv.

  • *nix

     python3 -m venv env
     . env/bin/activate
  • windows

     > py -3 -m venv env
     > env\Scripts\activate
  • 4.2: Upgrade pip and setuptools.

     pip install --upgrade pip setuptools
  • 4.3: Install the dependencies, then install breeze in editable mode.

pip install -r requirements.txt && pip install -e .
  • 4.4: install pre-commit hooks

pip install pre-commit
pre-commit install
git fetch origin
git checkout -b your-branch-name origin/main
  • 6: Using your favorite editor, make your changes, committing as you go.

    • 6.2: we use this structure for our commits:

      • docs: docs: <commit message> <filename>

      • fix bug: bug: <commit message> <filename>

      • feature: feature: <commit message> <filename>

      • refactor: refactor: <commit message> <filename>

      • test: test: <commit message> <filename>

      • chore: chore: <commit message> <filename>

      • style: style: <commit message> <filename>

      • revert: revert: <commit message> <filename>

      • work in progress: wip: <commit message> <filename>

    we use this structure for easier read of the commit messages and git log.

    • 6.3: if your change many files on a commit you should split this commit into smaller commits.

    • 6.4: if your commit message is too long, you should use a short commit message on title and a longer commit message on body:

$ git commit -m "<tag>: <short commit message> <filename>" -m "<long commit message>"
  • 6.2 Include tests that cover any code changes you make. Make sure the test fails without your patch. Run the tests as described below.

  • 6.3 Push your commits to your fork on GitHub and create a pull request. Link to the issue being addressed with fixes #123 in the pull request.

$ git push --set-upstream fork your-branch-name
  • 7: Run the tests.

pytest
  • 7.2: Running test coverage

Generating a report of lines that do not have test coverage can indicate where to start contributing. Run pytest using coverage and generate a report.

pip install coverage
coverage run -m pytest
coverage html

Open htmlcov/index.html in your browser to explore the report.

Read more about coverage and pytest.

Building the docs#

Build the docs in the docs directory using Sphinx .

cd docs
make html

Open _build/html/index.html in your browser to view the docs.

Read more about Sphinx.