Skip to content

Commit db8d0dd

Browse files
authored
Merge branch 'main' into cdts
2 parents 07a2e2a + d3f9d8f commit db8d0dd

26 files changed

+608
-155
lines changed

README.md

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,41 @@ If you have questions or need help, please check out our documentation for a [li
2626
4. Make and commit your changes.
2727
5. Submit a [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) to the main repository proposing your changes.
2828

29+
## Code of conduct
30+
31+
We at conda-forge adhere to the [NumFOCUS Code of Conduct](https://numfocus.org/code-of-conduct):
32+
33+
> * Be kind to others. Do not insult or put down others. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for conda-forge.
34+
>
35+
> * All communication should be appropriate for a professional audience, including people of many different backgrounds. Sexual language and imagery is not appropriate.
36+
>
37+
> * conda-forge is dedicated to providing a harassment-free community for everyone, regardless of gender, sexual orientation, gender identity and expression, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of community members in any form.
38+
39+
Thank you for helping make this a welcoming, friendly community for all.
40+
41+
### Reporting guidelines
42+
43+
If you believe someone is violating the code of conduct, please report this in a timely manner. Code of conduct violations reduce the value of the community for everyone. The team at conda-forge takes reports of misconduct very seriously and is committed to preserving and maintaining the welcoming nature of our community.
44+
45+
All reports will be kept confidential. Please have a look at the [Reporting guidelines](https://numfocus.org/code-of-conduct#reporting-guidelines).
46+
47+
### Enforcement: What happens after a report is filed?
48+
49+
conda-forge's team and/or our event staff will try to ensure your safety and help with any immediate needs, particularly at an in-person event. Once we have received the report through the relevant authorities, conda-forge will make every effort to acknowledge the receipt and take action. Have a look at the process of [What Happens After a Report is Filed?](https://numfocus.org/code-of-conduct#enforcement).
50+
2951
## conda-forge dev meetings
3052

31-
Our documentation contains a section with [minutes from previous dev meetings]([https://conda-forge.org/docs/minutes/00_intro.html]). These meetings occur every two weeks on Wednesday from 17:00-18:00 UTC.
32-
A link to the google calendar item can be found [here](https://calendar.google.com/event?action=TEMPLATE&tmeid=bTk5ZzBoMDEzaW11cmZiNWJnNmNkbThocDRfMjAyMjA1MThUMTcwMDAwWiBlcmljQHZvbHRyb25kYXRhLmNvbQ&tmsrc=eric%40voltrondata.com&scp=ALL).
53+
We hold biweekly meetings every second Wednesday from 17:00-18:00 (UTC). Feel free to stop by!
54+
Up-to-date invites are always available in the [conda.org community calendar](https://conda.org/community/calendar). Look for the `[conda-forge] core meeting` events!
55+
56+
Our [meeting notes](https://conda-forge.org/docs/orga/minutes/00_intro.html) record important points discussed during the meetings and serve as a record for upcoming meetings. We make use of [HackMd](https://hackmd.io/) and a [template](https://github.com/conda-forge/conda-forge.github.io/blob/main/misc/DEV_MEETING_TEMPLATE.md) to create the meeting notes.
57+
58+
We use a Github Actions [workflow][gha-workflow] to create an automated PR with the meeting notes
59+
template for each session, which is automatically published to our HackMD team account. During the
60+
meeting, attendees will edit the HackMD document. After the meeting, the document is saved and the
61+
PR is synced with the changes by adding the `sync-hackmd-notes` label. Once satisfied, the PR is
62+
merged and the website will be updated with the new meeting notes.
3363

34-
We use https://hackmd.io/ for taking meeting minutes and will (eventually) upload the resultant markdown file after the meeting has concluded.
64+
We encourage contributors to join the meetings and learn more about and from the community.
3565

36-
There is a template provided in [`misc/DEV_MEETING_TEMPLATE.md`](https://github.com/conda-forge/conda-forge.github.io/tree/main/misc/DEV_MEETING_TEMPLATE.md) that you should use to create a new hackmd document.
66+
[gha-workflow]: https://github.com/conda-forge/conda-forge.github.io/actions/workflows/meeting-notes.yml

SECURITY.md

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# conda-forge vulnerability handling process
2+
3+
This document summarizes and proposes guidelines for handling vulnerabilities reported in
4+
conda-forge's infrastructure.
5+
6+
Security issues and vulnerabilities have expectations and processes that are differ from typical
7+
open source practices:
8+
9+
- Private discussions
10+
- Obfuscation
11+
- Short timeline
12+
13+
This makes it quite hard to be able to understand, learn, or know what to expect from a security
14+
point of view. This document will give you a glimpse on what's happening on the inside, and what
15+
timeline to expect when you report a security vulnerability. It will also serve as a guideline and
16+
task list for conda-forge members on how to handle security related issues.
17+
18+
## Scope
19+
20+
This process applies to *all projects* governed by conda-forge. This includes:
21+
22+
- conda-forge feedstock machinery
23+
- conda-forge infrastructure and bots
24+
- conda-forge website and documentation
25+
26+
Conversely, this process does NOT apply to the software packaged by conda-forge itself. Please contact the upstream maintainers directly.
27+
28+
## Reporting Vulnerabilities
29+
30+
If you believe you’ve found a security vulnerability in a conda-forge project, please responsibly report it to [email protected]. conda-forge will try to will respond within 7 days to all new reports.
31+
32+
We are also testing GitHub Private vulnerability reporting, you can try to submit a security advisory on [conda-forge/conda-forge.github.io using this link](https://github.com/conda-forge/conda-forge.github.io/security/advisories/new).
33+
34+
## Coordinated Disclosures
35+
36+
conda-forge follows a [coordinated disclosure][coordinated-disclosure] model where the initial
37+
report and remediation are handled privately, but the completion description is made public once a
38+
patch is available. conda-forge will disclose known vulnerabilities within 90 days by default,
39+
whether a patch is available or not.
40+
41+
## Acknowledgement
42+
43+
conda-forge will work to ensure that security researchers, developers, users, or others who
44+
identify and report vulnerabilities within conda-forge projects receive acknowledgement for their
45+
contribution.
46+
47+
## Vulnerability Triage & Remediation Process
48+
49+
This section describes an example process used by conda-forge to track, remediate, and disclose a
50+
reported vulnerability. This description is both a reference for the conda-forge community and a
51+
guideline for contributors. The actual process may vary depending on the nature of the
52+
vulnerability.
53+
54+
### Roles
55+
56+
This process defines these roles:
57+
- **Reporter** The individual(s) who report the vulnerability
58+
- **Coordinator** A conda-forge core member who facilitates the tracking of the vulnerability
59+
through this process
60+
- **Developer** One or more developers who work on remediating the vulnerability
61+
62+
For the purpose of this document these roles are distinct, in practice, some of these roles may be handled by the same individual. However, the roles should be covered by a minimum of two separate individuals. For example, a Reporter may also fill the Developer role and create the remediation, in this case the Coordinator should be a separate individual.
63+
64+
### Process
65+
66+
The role responsible for each step is noted at the beginning.
67+
68+
- Upon receipt of the initial report:
69+
- **Coordinator**: Respond to the reported and acknowledge receipt of the report in the timeframe
70+
given in the "Reporting Vulnerabilities" section.
71+
- **Coordinator**: Open an issue in the private GitHub repository used for tracking
72+
vulnerabilities across projects
73+
- **Coordinator**: Review the issue for completeness and suitability (triage). If more
74+
information is needed, follow up with the Reporter.
75+
- If the vulnerability is not accepted:
76+
- **Coordinator**: Close the issue
77+
- **Coordinator**: Notify the reporter
78+
- If the vulnerability is accepted, within the relevant repositories:
79+
- **Coordinator**: Open a draft [GitHub Security
80+
Advisory](https://docs.github.com/en/code-security/repository-security-advisories/about-github-security-advisories-for-repositories#about-github-security-advisories)
81+
- Include relevant but sanitized details in the top level comment, which will become public
82+
- Sensitive details and reproductions go in the comments on the draft advisory, which are not
83+
public
84+
- **Coordinator**: Add relevant people to the advisory
85+
- **Developer**: Attempt to replicate the reported vulnerability. Request more information from
86+
the **Reporter** if necessary.
87+
- **Developer**: Work on the [vulnerability fix
88+
PR](https://docs.github.com/en/code-security/repository-security-advisories/collaborating-in-a-temporary-private-fork-to-resolve-a-repository-security-vulnerability#creating-a-temporary-private-fork).
89+
- **Coordinator**/**Developer**: If appliccable, request a
90+
[CVE](https://docs.github.com/en/code-security/repository-security-advisories/about-github-security-advisories-for-repositories#cve-identification-numbers)
91+
from GitHub. The CVE Number will be private until the advisory is published.
92+
- **Developer & Coordinator**: Decide on release and announcement dates and post them the draft
93+
advisory.
94+
- **Coordinator**: Post the release and announcement dates on the conda-forge core chat room and
95+
mailing list.
96+
- **Developer**: Merge the security fix PR
97+
- **Developer**: Release the package and/or deploy the fix as appropriate
98+
- **Developer & Coordinator**: Draft a [blog post](https://github.com/conda-forge/blog) and other
99+
announcement texts. This can be done in parallel with the previous steps, but consider using a
100+
[private advisory](https://github.com/conda-forge/blog/security/advisories) for the text.
101+
- **Coordinator**: Publish the security advisory on the announcement date. If applicable, GitHub
102+
will post the CVE to the MITRE database.
103+
- **Coordinator**: Publish the blog post and other announcements (Element chat room, Twitter,
104+
etc) as necessary.
105+
- **Coordinator**: Notify the **Reporter** of the releases
106+
- **Coordinator**: Close the issue in the tracking repository
107+
108+
> Notes to Developers
109+
>
110+
> - Be aware that GitHub CI workflows won't run on security forks, so reviewers must test manually
111+
> to avoid a broken CI when the patch is merged to the public repo.
112+
> - Also, vulnerabilities may involve multiple private security forks across different GitHub
113+
> organizations.
114+
> - This may require additional manual steps to include those private forks.
115+
116+
[coordinated-disclosure]: https://cheatsheetseries.owasp.org/cheatsheets/Vulnerability_Disclosure_Cheat_Sheet.html#responsible-or-coordinated-disclosure
117+
118+
---
119+
120+
> This document is based on the excellent [write-up](https://github.com/jupyter/security/blob/86ec517/docs/vulnerability-handling.md) used by the Jupyter community, [BSD-3 licensed](https://github.com/jupyter/security/blob/86ec517/LICENSE).
121+
122+
123+

src/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118
r'https://conda-forge.org/status/#armosxaddition$',
119119
r'https://github.com/conda-forge/conda-smithy/blob/main/CHANGELOG.rst#v3130$',
120120
r'https://github.com/.*#L\d+-L\d+$',
121+
r'https://github.com/.*#L\d+$',
121122
r'https://github.com/conda-forge/miniforge/#download$',
122123
r'https://github.com/conda-incubator/grayskull#introduction$',
123124
]

src/contracting/00_intro.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Contracting Information
22
#######################
33

4-
If you are interested in a contractual engagement to solve a specific problem that you're facing, this page details the kinds of services that are available to you. Conda-forge, as an entity, does not have the ability to engage in a contractual arrangement as of now.
4+
If you are interested in a contractual engagement to solve a specific problem that you're facing, this page details the kinds of services that are available to you. conda-forge, as an entity, does not have the ability to engage in a contractual arrangement as of now.
55
However, there are a number of community members that you may engage with.
6-
Conda-forge does not endorse anyone (individuals or companies) listed on this page.
6+
conda-forge does not endorse anyone (individuals or companies) listed on this page.
77

88

99
If you are interested in a service that is not listed on this page, please reach out to us on our `issue tracker <https://github.com/conda-forge/conda-forge.github.io/issues>`__, on `Element <https://app.element.io/#/room/#conda-forge:matrix.org>`__ or via emailing the core team directly at [email protected] and we will help to circulate your request more broadly within the community.

src/core.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ chrisburr,[email protected],Chris Burr
55
cj-wright,[email protected],Christopher J. 'CJ' Wright
66
dopplershift,[email protected],Ryan May
77
ericdill,[email protected],Eric Dill
8+
h-vetinari,[email protected],Axel Obermeier
89
isuruf,[email protected],Isuru Fernando
910
jakirkham,[email protected],John Kirkham
1011
jezdez,[email protected],Jannis Leidel

src/index.rst

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ conda-forge documentation
33

44
What is conda-forge?
55
--------------------
6+
67
conda-forge is a community effort and a GitHub organization which contains repositories of conda recipes and thus provides conda packages for a wide range of software.
78
The built distributions are uploaded to `anaconda.org/conda-forge <https://anaconda.org/conda-forge>`__ and can be installed with `conda <https://conda.pydata.org/docs/intro.html>`_.
89

@@ -12,7 +13,13 @@ Chances are we have already packaged it for you. You can `search <https://anacon
1213

1314
**Cannot find a package or only outdated versions of a package?** - Everybody is welcome to contribute to our package stack!
1415

15-
- To get started contributing packages, see :ref:`becoming_involved`.
16+
- We value all kinds of contributions — not just code. A few recommended ways to start contributing to conda-forge are:
17+
18+
- `Contribute new packages <https://conda-forge.org/docs/maintainer/adding_pkgs.html>`__
19+
- Help update and `maintain packages <https://conda-forge.org/docs/maintainer/updating_pkgs.html#maintaining-pkgs>`__
20+
- Suggest or implement improvements for our `infrastructure <https://conda-forge.org/docs/maintainer/infrastructure.html#infrastructure>`__
21+
- Help `improve the documentation <https://conda-forge.org/docs/user/contributing.html#improve-docs>`__
22+
- For a detailed overview please refer to :ref:`becoming_involved`.
1623

1724
- To see our governance policies, see `here <https://conda-forge.org/docs/orga/governance.html>`_.
1825

src/maintainer/adding_pkgs.rst

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,22 @@
33
Contributing packages
44
*********************
55

6-
To submit a package to the ``conda-forge`` channel, add its ``recipe`` and licence to the ``staged-recipes`` repository and create a pull request. Once the pull request is merged, the package becomes available on the ``conda-forge`` channel.
6+
The contribution process can be broken down into three steps:
77

8-
The sections below provide detailed instructions on contributing packages to conda-forge.
8+
* Step 1. Staging process (add recipe and license).
99

10+
With the help of :ref:`the staging process <creating_recipes>`, add a package's recipe and license to the `staged-recipes repository <https://github.com/conda-forge/staged-recipes>`__ and create a PR.
11+
12+
* Step 2. Post staging process.
13+
14+
Once your PR, has been merged, take a look at our :ref:`post_staging_process` to know what follows.
15+
16+
* Step 3. Maintaining the package.
17+
18+
Contributing a package to ``conda-forge`` makes you the maintainer of that package.
19+
Learn more about the :ref:`roles of a maintainer <maintainer_role>`.
20+
21+
The sections below will add more details about each step.
1022

1123
.. _creating_recipes:
1224

@@ -115,9 +127,10 @@ After merging the :term:`PR`, our :term:`CI` infrastructure will build the packa
115127

116128
If you have questions or have not heard back for a while, you can notify us by including ``@conda-forge/staged-recipes`` in your GitHub message.
117129

130+
.. _post_staging_process:
118131

119132
Post staging process
120-
--------------------
133+
====================
121134

122135
* After the PR is merged, our :term:`CI` services will create a new git repo automatically. For example, the recipe for a package named ``pydstool`` will be moved to a new repository `https://github.com/conda-forge/pydstool-feedstock <https://github.com/conda-forge/pydstool-feedstock>`_. This process is automated through a CI job on the ``conda-forge/staged-recipes`` repo. It sometimes fails due to API rate limits and will automatically retry itself. If your feedstock has not been created after a day or so, please get in touch with the ``conda-forge/core`` team for help.
123136
* CI services will be enabled automatically and a build will be triggered automatically which will build the conda package and upload to `https://anaconda.org/conda-forge <https://anaconda.org/conda-forge>`_
@@ -153,10 +166,12 @@ These are the CI configuration files for service providers like Azure and Travis
153166
conda-forge.yml
154167
................
155168

156-
This file is used to configure how the feedstock is set up and built. Making any changes in this file usually requires `rerendering the feedstock <https://conda-forge.org/docs/maintainer/updating_pkgs.html#dev-update-rerender>`__.
169+
This file is used to configure how the feedstock is set up and built. Making any changes in this file usually requires :ref:`dev_update_rerender`.
170+
171+
.. _maintainer_role:
157172

158173
Maintainer role
159-
---------------
174+
===============
160175

161176
The maintainer's job is to:
162177

@@ -180,7 +195,7 @@ the other packages being added as a requirement), the build script will be able
180195
locate the dependencies that are only present within staged-recipes as long as
181196
the builds finish in the dependencies order. Using a single pull request
182197
allows you to quickly get packages set up without waiting for each package in a
183-
dependency chain to be reviewed, built, and added to the conda-forge channel
198+
dependency chain to be reviewed, built, and added to the ``conda-forge`` channel
184199
before starting the process over with the next recipe in the chain.
185200

186201
.. note::
@@ -841,12 +856,12 @@ Recipe Maintainer
841856
A maintainer is an individual who is responsible for maintaining and updating one or more feedstock repositories and packages as well as their future versions. They have push access to the feedstock repositories of only the packages they maintain and can merge pull requests into it.
842857

843858
Contributing a recipe for package makes you the ``maintainer`` of that package automatically.
844-
See `Maintainers Role <https://conda-forge.org/docs/maintainer/adding_pkgs.html#maintainer-role>`__ and `Maintaining Packages <https://conda-forge.org/docs/maintainer/updating_pkgs.html#maintaining-packages>`__ to learn more about what are the things that maintainers do.
859+
See :ref:`maintainer_role` and :ref:`maintaining_pkgs` to learn more about what are the things that maintainers do.
845860
If you wish to be a maintainer of a certain package, you should contact current maintainers and open an issue in that package's feedstock with the following command:
846861

847862
``@conda-forge-admin, please add user @username``
848863

849-
where username is the GitHub username of the new maintainer to be added. Please refer to `Becoming a maintainer <https://conda-forge.org/docs/orga/guidelines.html#becoming-a-maintainer>`__ and `Updating the maintainer <https://conda-forge.org/docs/maintainer/updating_pkgs.html#updating-the-maintainer-list>`__ for detailed instructions.
864+
where username is the GitHub username of the new maintainer to be added. Please refer to :ref:`becoming_a_maintainer` and :ref:`maint_updating_maintainers` for detailed instructions.
850865

851866
.. _feedstock_name:
852867

0 commit comments

Comments
 (0)