Skip to content

Commit 620c06c

Browse files
committed
Revert "delete CONTRIBUTING.rst"
This reverts commit b97dda5.
1 parent f651195 commit 620c06c

File tree

1 file changed

+222
-0
lines changed

1 file changed

+222
-0
lines changed

CONTRIBUTING.rst

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
How to contribute to MarkupSafe
2+
===============================
3+
4+
Thank you for considering contributing to MarkupSafe!
5+
6+
7+
Support questions
8+
-----------------
9+
10+
Please don't use the issue tracker for this. The issue tracker is a tool
11+
to address bugs and feature requests in MarkupSafe itself. Use one of
12+
the following resources for questions about using MarkupSafe or issues
13+
with your own code:
14+
15+
- The ``#get-help`` channel on our Discord chat:
16+
https://discord.gg/pallets
17+
- The mailing list [email protected] for long term discussion or larger
18+
issues.
19+
- Ask on `Stack Overflow`_. Search with Google first using:
20+
``site:stackoverflow.com markupsafe {search term, exception message, etc.}``
21+
22+
.. _Stack Overflow: https://stackoverflow.com/search?tab=relevance&q=markupsafe
23+
24+
25+
Reporting issues
26+
----------------
27+
28+
Include the following information in your post:
29+
30+
- Describe what you expected to happen.
31+
- If possible, include a `minimal reproducible example`_ to help us
32+
identify the issue. This also helps check that the issue is not with
33+
your own code.
34+
- Describe what actually happened. Include the full traceback if there
35+
was an exception.
36+
- List your Python and MarkupSafe versions. If possible, check if this
37+
issue is already fixed in the latest releases or the latest code in
38+
the repository.
39+
40+
.. _minimal reproducible example: https://stackoverflow.com/help/minimal-reproducible-example
41+
42+
43+
Submitting patches
44+
------------------
45+
46+
If there is not an open issue for what you want to submit, prefer
47+
opening one for discussion before working on a PR. You can work on any
48+
issue that doesn't have an open PR linked to it or a maintainer assigned
49+
to it. These show up in the sidebar. No need to ask if you can work on
50+
an issue that interests you.
51+
52+
Include the following in your patch:
53+
54+
- Use `Black`_ to format your code. This and other tools will run
55+
automatically if you install `pre-commit`_ using the instructions
56+
below.
57+
- Include tests if your patch adds or changes code. Make sure the test
58+
fails without your patch.
59+
- Update any relevant docs pages and docstrings. Docs pages and
60+
docstrings should be wrapped at 72 characters.
61+
- Add an entry in ``CHANGES.rst``. Use the same style as other
62+
entries. Also include ``.. versionchanged::`` inline changelogs in
63+
relevant docstrings.
64+
65+
.. _Black: https://black.readthedocs.io
66+
.. _pre-commit: https://pre-commit.com
67+
68+
69+
First time setup
70+
~~~~~~~~~~~~~~~~
71+
72+
- Download and install the `latest version of git`_.
73+
- Configure git with your `username`_ and `email`_.
74+
75+
.. code-block:: text
76+
77+
$ git config --global user.name 'your name'
78+
$ git config --global user.email 'your email'
79+
80+
- Make sure you have a `GitHub account`_.
81+
- Fork MarkupSafe to your GitHub account by clicking the `Fork`_ button.
82+
- `Clone`_ the main repository locally.
83+
84+
.. code-block:: text
85+
86+
$ git clone https://github.com/pallets/markupsafe
87+
$ cd markupsafe
88+
89+
- Add your fork as a remote to push your work to. Replace
90+
``{username}`` with your username. This names the remote "fork", the
91+
default Pallets remote is "origin".
92+
93+
.. code-block:: text
94+
95+
$ git remote add fork https://github.com/{username}/markupsafe
96+
97+
- Create a virtualenv.
98+
99+
.. code-block:: text
100+
101+
$ python3 -m venv env
102+
$ . env/bin/activate
103+
104+
On Windows, activating is different.
105+
106+
.. code-block:: text
107+
108+
> env\Scripts\activate
109+
110+
- Upgrade pip and setuptools.
111+
112+
.. code-block:: text
113+
114+
$ python -m pip install --upgrade pip setuptools
115+
116+
- Install the development dependencies, then install MarkupSafe in
117+
editable mode.
118+
119+
.. code-block:: text
120+
121+
$ pip install -r requirements/dev.txt && pip install -e .
122+
123+
- Install the pre-commit hooks.
124+
125+
.. code-block:: text
126+
127+
$ pre-commit install
128+
129+
.. _latest version of git: https://git-scm.com/downloads
130+
.. _username: https://docs.github.com/en/github/using-git/setting-your-username-in-git
131+
.. _email: https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/setting-your-commit-email-address
132+
.. _GitHub account: https://github.com/join
133+
.. _Fork: https://github.com/pallets/markupsafe/fork
134+
.. _Clone: https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#step-2-create-a-local-clone-of-your-fork
135+
136+
137+
Start coding
138+
~~~~~~~~~~~~
139+
140+
- Create a branch to identify the issue you would like to work on. If
141+
you're submitting a bug or documentation fix, branch off of the
142+
latest ".x" branch.
143+
144+
.. code-block:: text
145+
146+
$ git fetch origin
147+
$ git checkout -b your-branch-name origin/2.0.x
148+
149+
If you're submitting a feature addition or change, branch off of the
150+
"main" branch.
151+
152+
.. code-block:: text
153+
154+
$ git fetch origin
155+
$ git checkout -b your-branch-name origin/main
156+
157+
- Using your favorite editor, make your changes,
158+
`committing as you go`_.
159+
- Include tests that cover any code changes you make. Make sure the
160+
test fails without your patch. Run the tests as described below.
161+
- Push your commits to your fork on GitHub and
162+
`create a pull request`_. Link to the issue being addressed with
163+
``fixes #123`` in the pull request.
164+
165+
.. code-block:: text
166+
167+
$ git push --set-upstream fork your-branch-name
168+
169+
.. _committing as you go: https://dont-be-afraid-to-commit.readthedocs.io/en/latest/git/commandlinegit.html#commit-your-changes
170+
.. _create a pull request: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request
171+
172+
173+
Running the tests
174+
~~~~~~~~~~~~~~~~~
175+
176+
Run the basic test suite with pytest.
177+
178+
.. code-block:: text
179+
180+
$ pytest
181+
182+
This runs the tests for the current environment, which is usually
183+
sufficient. CI will run the full suite when you submit your pull
184+
request. You can run the full test suite with tox if you don't want to
185+
wait.
186+
187+
.. code-block:: text
188+
189+
$ tox
190+
191+
192+
Running test coverage
193+
~~~~~~~~~~~~~~~~~~~~~
194+
195+
Generating a report of lines that do not have test coverage can indicate
196+
where to start contributing. Run ``pytest`` using ``coverage`` and
197+
generate a report.
198+
199+
.. code-block:: text
200+
201+
$ pip install coverage
202+
$ coverage run -m pytest
203+
$ coverage html
204+
205+
Open ``htmlcov/index.html`` in your browser to explore the report.
206+
207+
Read more about `coverage <https://coverage.readthedocs.io>`__.
208+
209+
210+
Building the docs
211+
~~~~~~~~~~~~~~~~~
212+
213+
Build the docs in the ``docs`` directory using Sphinx.
214+
215+
.. code-block:: text
216+
217+
$ cd docs
218+
$ make html
219+
220+
Open ``_build/html/index.html`` in your browser to view the docs.
221+
222+
Read more about `Sphinx <https://www.sphinx-doc.org/en/stable/>`__.

0 commit comments

Comments
 (0)