Skip to content

Commit e669cec

Browse files
authored
Add miscellaneous common Quantumlib repository files (#69)
* Add Code of Conduct * Add contributing guide * Add security policy * Add SUPPORT.md
1 parent 71889c3 commit e669cec

File tree

4 files changed

+294
-0
lines changed

4 files changed

+294
-0
lines changed

.github/SECURITY.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Reporting security issues
2+
3+
The OpenFermion-PySCF developers and community take security bugs in
4+
OpenFermion-PySCF seriously. We appreciate your efforts to responsibly disclose
5+
your findings, and will make every effort to acknowledge your contributions.
6+
7+
Please **do not** use GitHub issues to report security vulnerabilities; GitHub
8+
issues are public, and doing so could allow someone to exploit the information
9+
before the problem can be addressed. Instead, please use the GitHub ["Report a
10+
Vulnerability"](https://github.com/quantumlib/OpenFermion-PySCF/security/advisories/new)
11+
interface from the _Security_ tab of the OpenFermion-PySCF repository.
12+
13+
Please report security issues in third-party modules to the person or team
14+
maintaining the module rather than the OpenFermion-PySCF project stewards,
15+
unless you believe that some action needs to be taken with OpenFermion-PySCF in
16+
order to guard against the effects of a security vulnerability in a third-party
17+
module.
18+
19+
## Responses to security reports
20+
21+
The project stewards at Google Quantum AI will send a response indicating the
22+
next steps in handling your report. After the initial reply to your report, the
23+
project stewards will keep you informed of the progress towards a fix and full
24+
announcement, and may ask for additional information or guidance.
25+
26+
## Additional points of contact
27+
28+
Please contact the project stewards at Google Quantum AI via email at
29+
[email protected] if you have questions or other concerns. If
30+
for any reason you are uncomfortable reaching out to the project stewards,
31+
please email [email protected] instead.

CODE_OF_CONDUCT.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, gender identity and expression, level of
9+
experience, education, socio-economic status, nationality, personal appearance,
10+
race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or reject
41+
comments, commits, code, wiki edits, issues, and other contributions that are
42+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
43+
contributor for other behaviors that they deem inappropriate, threatening,
44+
offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
This Code of Conduct also applies outside the project spaces when the Project
56+
Stewards have a reasonable belief that an individual's behavior may have a
57+
negative impact on the project or its community.
58+
59+
## Conflict Resolution
60+
61+
We do not believe that all conflict is bad; healthy debate and disagreement
62+
often yield positive results. However, it is never okay to be disrespectful or
63+
to engage in behavior that violates the project’s Code of Conduct.
64+
65+
If you see someone violating the Code of Conduct, you are encouraged to address
66+
the behavior directly with those involved. Many issues can be resolved quickly
67+
and easily, and this gives people more control over the outcome of their
68+
dispute. If you are unable to resolve the matter for any reason, or if the
69+
behavior is threatening or harassing, report it. We are dedicated to providing
70+
an environment where participants feel welcome and safe.
71+
72+
Reports should be directed to [email protected],
73+
the project stewards at Google Quantum AI. They will then work with a committee
74+
consisting of representatives from the Open Source Programs Office and the
75+
Google Open Source Strategy team. If for any reason you are uncomfortable
76+
reaching out to the Project Stewards, please email [email protected].
77+
78+
We will investigate every complaint, but you may not receive a direct response.
79+
We will use our discretion in determining when and how to follow up on reported
80+
incidents, which may range from not taking action to permanent expulsion from
81+
the project and project-sponsored spaces. We will notify the accused of the
82+
report and provide them an opportunity to discuss it before any action is taken.
83+
The identity of the reporter will be omitted from the details of the report
84+
supplied to the accused. In potentially harmful situations, such as ongoing
85+
harassment or threats to anyone's safety, we may take action without notice.
86+
87+
## Attribution
88+
89+
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
90+
available at
91+
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

CONTRIBUTING.md

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# How to contribute
2+
3+
We'd love to accept your patches and contributions to this project. We do have
4+
some guidelines to follow, covered in this document, but don't be concerned
5+
about getting everything right the first time! Create a pull request (discussed
6+
below) and we'll nudge you in the right direction.
7+
8+
## Before you begin
9+
10+
### Sign our Contributor License Agreement
11+
12+
Contributions to this project must be accompanied by a [Contributor License
13+
Agreement](https://cla.developers.google.com/about) (CLA). You (or your
14+
employer) retain the copyright to your contribution; the CLA simply gives us
15+
permission to use and redistribute your contributions as part of the project.
16+
Please visit https://cla.developers.google.com/ to see your current agreements
17+
on file or to sign a new one. You generally only need to submit a Google CLA
18+
once, so if you've already submitted one (even if it was for a different
19+
project), you probably don't need to do it again.
20+
21+
> [!WARNING]
22+
> Please note carefully clauses [#5](https://cla.developers.google.com/about/google-corporate#:~:text=You%20represent%20that%20each%20of%20Your%20Contributions%20is%20Your%20original%20creation)
23+
> and [#7](https://cla.developers.google.com/about/google-corporate#:~:text=Should%20You%20wish%20to%20submit%20work%20that%20is%20not%20Your%20original%20creation%2C%20You%20may%20submit%20it%20to%20Google%20separately)
24+
> in the CLA. Any code that you contribute to this project must be **your**
25+
> original creation. Code generated by artificial intelligence tools **does
26+
> not** qualify as your original creation.
27+
28+
### Review our community guidelines
29+
30+
We have a [code of conduct](CODE_OF_CONDUCT.md) to make the project an open and
31+
welcoming community environment. Please make sure to read and abide by the code
32+
of conduct.
33+
34+
## Contribution process
35+
36+
All submissions, including submissions by project members, require review. We
37+
use the tools provided by GitHub for pull requests for this purpose. The
38+
preferred manner for submitting pull requests is to fork the, create a new
39+
branch in this fork to do your work, and when ready, create a pull request from
40+
this branch to the main project repository. The subsections below describe the
41+
process in more detail.
42+
43+
Pleae make sure to follow the [Google Style
44+
Guides](https://google.github.io/styleguide/) in your code, particularly the
45+
[style guide for Python](https://google.github.io/styleguide/pyguide.html).
46+
47+
### Repository forks
48+
49+
1. Fork the OpenFermion-PySCF repository (you can use the _Fork_ button in
50+
upper right corner of the [repository
51+
page](https://github.com/quantumlib/OpenFermion-PySCF)). Forking creates a
52+
new GitHub repo at the location
53+
`https://github.com/USERNAME/OpenFermion-PySCF`, where `USERNAME` is your
54+
GitHub user name.
55+
56+
1. Clone (using `git clone`) or otherwise download your forked repository to
57+
your local computer, so that you have a local copy where you can do your
58+
development work using your preferred editor and development tools.
59+
60+
1. Check out the `main` branch and create a new [git
61+
branch](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell)
62+
from `main`:
63+
64+
```shell
65+
git checkout main -b YOUR_BRANCH_NAME
66+
```
67+
68+
where `YOUR_BRANCH_NAME` is the name of your new branch.
69+
70+
### Development environment installation
71+
72+
Please refer to the section _Developer install_ of the [installation
73+
instructions](docs/install.md) for information about how to set up a local copy
74+
of the software for development.
75+
76+
### Tests and test coverage
77+
78+
Existing tests must continue to pass (or be updated) when changes are
79+
introduced, and code should be covered by tests. We use
80+
[pytest](https://docs.pytest.org) to run our tests and
81+
[pytest-cov](https://pytest-cov.readthedocs.io) to compute coverage. We use the
82+
scripts [`./check/pytest`](./check/pytest) and
83+
[`./check/pytest-and-incremental-coverage`](./check/pytest-and-incremental-coverage)
84+
to run these programs with custom configurations for this project.
85+
86+
We don't require 100% coverage, but any uncovered code must be annotated with `#
87+
pragma: no cover`. To ignore coverage of a single line, place `# pragma: no
88+
cover` at the end of the line. To ignore coverage for an entire block, start the
89+
block with a `# pragma: no cover` comment on its own line.
90+
91+
### Lint
92+
93+
Code should meet common style standards for Python and be free of error-prone
94+
constructs. We use [Pylint](https://www.pylint.org/) to check for code lint, and
95+
the script [`./check/pylint`](./check/pylint) to run it. When Pylint produces a
96+
false positive, it can be silenced with annotations. For example, the annotation
97+
`# pylint: disable=unused-import` would silence a warning about an unused
98+
import.
99+
100+
### Type annotations
101+
102+
Code should have [type annotations](https://www.python.org/dev/peps/pep-0484/).
103+
We use [mypy](http://mypy-lang.org/) to check that type annotations are correct,
104+
and the script [`./check/mypy`](./check/mypy) to run it. When type checking
105+
produces a false positive, it can be silenced with annotations such as `# type:
106+
ignore`.
107+
108+
### Pull requests and code reviews
109+
110+
1. If your local copy has drifted out of sync with the `main` branch of the
111+
main OpenFermion-PySCF repo, you may need to merge the latest changes into
112+
your branch. To do this, first update your local `main` and then merge your
113+
local `main` into your branch:
114+
115+
```shell
116+
# Track the upstream repo (if your local repo hasn't):
117+
git remote add upstream https://github.com/quantumlib/OpenFermion-PySCF.git
118+
119+
# Update your local main.
120+
git fetch upstream
121+
git checkout main
122+
git merge upstream/main
123+
# Merge local main into your branch.
124+
git checkout YOUR_BRANCH_NAME
125+
git merge main
126+
```
127+
128+
If git reports conflicts during one or both of these merge processes, you
129+
may need to [resolve the merge conflicts](
130+
https://docs.github.com/articles/about-merge-conflicts) before continuing.
131+
132+
1. Finally, push your changes to your fork of the OpenFermion-PySCF repo on
133+
GitHub:
134+
135+
```shell
136+
git push origin YOUR_BRANCH_NAME
137+
```
138+
139+
1. Now when you navigate to the OpenFermion-PySCF repository on GitHub
140+
(https://github.com/quantumlib/OpenFermion-PySCF), you should see the option
141+
to create a new [pull
142+
requests](https://help.github.com/articles/about-pull-requests/) from your
143+
forked repository. Alternatively, you can create the pull request by
144+
navigating to the "Pull requests" tab near the top of the page, and
145+
selecting the appropriate branches.
146+
147+
1. A reviewer from the OpenFermion-PySCF team will comment on your code and may
148+
ask for changes. You can perform the necessary changes locally, commit them
149+
to your branch as usual, and then push changes to your fork on GitHub
150+
following the same process as above. When you do that, GitHub will update
151+
the code in the pull request automatically.

SUPPORT.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Support
2+
3+
Thank you for your interest in this project! If you are experiencing problems
4+
or have questions, the following are some suggestions for how to get help.
5+
6+
> [!NOTE]
7+
> Before participating in our community, please read our [code of
8+
> conduct](CODE_OF_CONDUCT.md). By interacting with this repository,
9+
> organization, or community, you agree to abide by its terms.
10+
11+
## Report an issue or request a feature
12+
13+
To report an issue or request a feature, please first search the [issue tracker
14+
on GitHub](https://github.com/quantumlib/OpenFermion-PySCF/issues) to check if
15+
there is already an open issue identical or similar to your bug report/feature
16+
request. If there is none, go ahead and file a new issue in the issue tracker.
17+
18+
## Contact the maintainers
19+
20+
For any questions or concerns not addressed here, please email
21+

0 commit comments

Comments
 (0)