Skip to content

Commit 0206474

Browse files
authored
Merge pull request #140 from quantumlib/mh-add-misc-repo-files
Add miscellaneous common Quantumlib repository files
2 parents d80a2d3 + c33c37a commit 0206474

File tree

4 files changed

+282
-20
lines changed

4 files changed

+282
-20
lines changed

.github/SECURITY.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Reporting security issues
2+
3+
The OpenFermion developers and community take security bugs in OpenFermion
4+
seriously. We appreciate your efforts to responsibly disclose your findings,
5+
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/security/advisories/new)
11+
interface from the _Security_ tab of the OpenFermion repository.
12+
13+
Please report security issues in third-party modules to the person or team
14+
maintaining the module rather than the OpenFermion project stewards, unless you
15+
believe that some action needs to be taken with OpenFermion in order to guard
16+
against the effects of a security vulnerability in a third-party module.
17+
18+
## Responses to security reports
19+
20+
The project stewards at Google Quantum AI will send a response indicating the
21+
next steps in handling your report. After the initial reply to your report, the
22+
project stewards will keep you informed of the progress towards a fix and full
23+
announcement, and may ask for additional information or guidance.
24+
25+
## Additional points of contact
26+
27+
Please contact the project stewards at Google Quantum AI via email at
28+
quantum-oss-maintainers@google.com if you have questions or other concerns. If
29+
for any reason you are uncomfortable reaching out to the project stewards,
30+
please email opensource@google.com 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 quantumai-oss-maintainers@googlegroups.com,
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 opensource@google.com.
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: 140 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,149 @@
1-
# How to Contribute
1+
# How to contribute
22

3-
We'd love to accept your patches and contributions to this project. There are
4-
just a few small guidelines you need to follow.
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.
57

6-
## Contributor License Agreement
8+
## Before you begin
79

8-
Contributions to this project must be accompanied by a Contributor License
9-
Agreement (CLA). You (or your employer) retain the copyright to your
10-
contribution; this simply gives us permission to use and redistribute your
11-
contributions as part of the project. Head over to
12-
<https://cla.developers.google.com/> to see your current agreements on file or
13-
to sign a new one.
10+
### Sign our Contributor License Agreement
1411

15-
You generally only need to submit a CLA once, so if you've already submitted one
16-
(even if it was for a different project), you probably don't need to do it
17-
again.
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.
1820

19-
## Code reviews
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
2035

2136
All submissions, including submissions by project members, require review. We
22-
use GitHub pull requests for this purpose. Consult
23-
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
24-
information on using pull requests.
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-FQE repository (you can use the _Fork_ button in upper
50+
right corner of the [repository
51+
page](https://github.com/quantumlib/OpenFermion-FQE)). Forking creates a new
52+
GitHub repo at the location `https://github.com/USERNAME/OpenFermion-FQE`,
53+
where `USERNAME` is your GitHub user name.
54+
55+
1. Clone (using `git clone`) or otherwise download your forked repository to
56+
your local computer, so that you have a local copy where you can do your
57+
development work using your preferred editor and development tools.
58+
59+
1. Check out the `main` branch and create a new [git
60+
branch](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell)
61+
from `main`:
62+
63+
```shell
64+
git checkout main -b YOUR_BRANCH_NAME
65+
```
66+
67+
where `YOUR_BRANCH_NAME` is the name of your new branch.
68+
69+
### Development environment installation
70+
71+
Please refer to the section _Developer install_ of the [installation
72+
instructions](docs/install.md) for information about how to set up a local copy
73+
of the software for development.
74+
75+
### Tests and test coverage
76+
77+
Existing tests must continue to pass (or be updated) when changes are
78+
introduced, and code should be covered by tests. We use
79+
[pytest](https://docs.pytest.org) to run our tests and
80+
[pytest-cov](https://pytest-cov.readthedocs.io) to compute coverage. We use the
81+
scripts [`./check/pytest`](./check/pytest) and
82+
[`./check/pytest-and-incremental-coverage`](./check/pytest-and-incremental-coverage)
83+
to run these programs with custom configurations for this project.
84+
85+
We don't require 100% coverage, but any uncovered code must be annotated with `#
86+
pragma: no cover`. To ignore coverage of a single line, place `# pragma: no
87+
cover` at the end of the line. To ignore coverage for an entire block, start the
88+
block with a `# pragma: no cover` comment on its own line.
89+
90+
### Lint
91+
92+
Code should meet common style standards for Python and be free of error-prone
93+
constructs. We use [Pylint](https://www.pylint.org/) to check for code lint, and
94+
the script [`./check/pylint`](./check/pylint) to run it. When Pylint produces a
95+
false positive, it can be silenced with annotations. For example, the annotation
96+
`# pylint: disable=unused-import` would silence a warning about an unused
97+
import.
98+
99+
### Type annotations
100+
101+
Code should have [type annotations](https://www.python.org/dev/peps/pep-0484/).
102+
We use [mypy](http://mypy-lang.org/) to check that type annotations are correct,
103+
and the script [`./check/mypy`](./check/mypy) to run it. When type checking
104+
produces a false positive, it can be silenced with annotations such as `# type:
105+
ignore`.
106+
107+
### Pull requests and code reviews
108+
109+
1. If your local copy has drifted out of sync with the `main` branch of the
110+
main OpenFermion-FQE repo, you may need to merge the latest changes into
111+
your branch. To do this, first update your local `main` and then merge your
112+
local `main` into your branch:
113+
114+
```shell
115+
# Track the upstream repo (if your local repo hasn't):
116+
git remote add upstream https://github.com/quantumlib/OpenFermion-FQE.git
117+
118+
# Update your local main.
119+
git fetch upstream
120+
git checkout main
121+
git merge upstream/main
122+
# Merge local main into your branch.
123+
git checkout YOUR_BRANCH_NAME
124+
git merge main
125+
```
126+
127+
If git reports conflicts during one or both of these merge processes, you
128+
may need to [resolve the merge conflicts](
129+
https://docs.github.com/articles/about-merge-conflicts) before continuing.
130+
131+
1. Finally, push your changes to your fork of the OpenFermion-FQE repo on GitHub:
132+
133+
```shell
134+
git push origin YOUR_BRANCH_NAME
135+
```
25136

26-
## Community Guidelines
137+
1. Now when you navigate to the OpenFermion-FQE repository on GitHub
138+
(https://github.com/quantumlib/OpenFermion-FQE), you should see the option
139+
to create a new [pull
140+
requests](https://help.github.com/articles/about-pull-requests/) from your
141+
forked repository. Alternatively, you can create the pull request by
142+
navigating to the "Pull requests" tab near the top of the page, and
143+
selecting the appropriate branches.
27144

28-
This project follows
29-
[Google's Open Source Community Guidelines](https://opensource.google/conduct/).
145+
1. A reviewer from the OpenFermion-FQE team will comment on your code and may
146+
ask for changes. You can perform the necessary changes locally, commit them
147+
to your branch as usual, and then push changes to your fork on GitHub
148+
following the same process as above. When you do that, GitHub will update
149+
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-FQE/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+
[quantum-oss-maintainers@google.com](mailto:quantum-oss-maintainers@google.com).

0 commit comments

Comments
 (0)