Thank you for considering contributing to Flask!
Please, don't use the issue tracker for this. Use one of the following resources for questions about your own code:
#get-help
channel on our Discord chat:
https://discord.gg/t6rrQZH#pocoo
on FreeNode is linked to Discord, but
Discord is preferred.site:stackoverflow.com flask {search term, exception message, etc.}
Download and install the latest version of git.
Configure git with your username and email.
$ git config --global user.name 'your name'
$ git config --global user.email 'your email'
Make sure you have a GitHub account.
Fork Flask to your GitHub account by clicking the Fork button.
Clone your GitHub fork locally.
$ git clone https://github.com/{username}/flask
$ cd flask
Add the main repository as a remote to update later:
.. code-block:: text
git remote add pallets https://github.com/pallets/flask git fetch pallets
Create a virtualenv.
$ python3 -m venv env
$ . env/bin/activate
On Windows, activating is different.
> env\Scripts\activate
Install Flask in editable mode with development dependencies.
$ pip install -e . -r requirements/dev.txt
Install the pre-commit hooks.
$ pre-commit install
Create a branch to identify the issue you would like to work on. If you're submitting a bug or documentation fix, branch off of the latest ".x" branch.
$ git checkout -b your-branch-name origin/1.0.x
If you're submitting a feature addition or change, branch off of the "master" branch.
$ git checkout -b your-branch-name origin/master
Using your favorite editor, make your changes, committing as you go.
Include tests that cover any code changes you make. Make sure the test fails without your patch. Run the tests.
Push your commits to GitHub and create a pull request.
$ git push --set-upstream origin your-branch-name
Run the basic test suite with pytest.
$ pytest
This only runs the tests for the current environment. Whether this is relevant depends on which part of Flask you're working on. CI will run the full suite when you submit your pull request.
The full test suite takes a long time to run because it tests multiple combinations of Python and dependencies. If you don't have a Python version installed, it will be skipped with a warning message at the end.
$ tox
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 on the terminal and as an interactive HTML document.
$ coverage run -m pytest
$ coverage report
$ coverage html # then open htmlcov/index.html
Read more about coverage.
Running the full test suite with tox
will combine the coverage reports
from all runs.
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.
This repository contains several zero-padded file modes that may cause issues when pushing this repository to Git hosts other than GitHub. Fixing this is destructive to the commit history, so we suggest ignoring these warnings. If it fails to push and you're using a self-hosted Git service like GitLab, you can turn off repository checks in the admin panel.
These files can also cause issues while cloning if you have
fsckObjects
enabled with either of the following in your git config.
[fetch] fsckObjects = true [receive] fsckObjects = true
The only solution is to set both of the above to false
, clone, and
then set them back to true
after.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。