Skip to content

Commit

Permalink
Merge pull request #1 from oqc-community/feature/ker/repo_setup
Browse files Browse the repository at this point in the history
Adding baseline repo files.
  • Loading branch information
keriksson-rosenqvist authored Jun 11, 2024
2 parents 075f40d + 3c83ee4 commit 3fc3261
Show file tree
Hide file tree
Showing 12 changed files with 627 additions and 2 deletions.
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# For now everyone gets added to all PRs by default. Fine while the PR velocity is small, we'll change if
# necessary as time goes on.
* @jfriel-oqc @keriksson-rosenqvist @owen-oqc @hamidelmaazouz @chemix-lunacy
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what happened.

**Describe what you expected to happen**
A clear and concise description of what you wanted/expected to happen but didn't.

**Add supporting information**
Provide as much information as possible that will allow us to help you. Including but not limited to:

1. OS/library version.
2. Screenshots of an error or stack trace if you have one.
3. Input file used, or a snippit that causes the issue if you cannot share the full file.
4. The precise configuration options you used to run QAT-RPC.

It is highly recommended you give _at least_ the above information, as this will help us help you.
18 changes: 18 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

**Summarize your feature/enhancement**

Give a descriptive summary of the feature/enhancement you would like to see. Try and be as precise as possible so the team can gauge whether it's something the team would like to see.

**Specific details of what you would like to see**

Describe the feature/enhancement in as much detail as you can, including supporting papers or external links that may act as better design references.

The more information the better.
26 changes: 26 additions & 0 deletions .github/workflows/cla-assistant.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened,closed,synchronize]

name: "CLA bot"

jobs:
cla-acknowledgement:
runs-on: ubuntu-latest
name: "Check that the CLA has been acknowledged"
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the Contributor License Agreement and I hereby accept the Terms.') || github.event_name == 'pull_request_target'
uses: cla-assistant/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN : ${{ secrets.REPO_BOT_ACCESS_TOKEN }}
with:
branch: 'bot/data'
path-to-signatures: 'cla.json'
custom-allsigned-prcomment: 'All Contributors have signed the CLA.'
custom-pr-sign-comment: 'I have read the Contributor License Agreement and I hereby accept the Terms.'
allowlist: bot*
path-to-document: 'https://github.com/oqc-community/qat-rpc/blob/main/contributor_license_agreement.md'
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@ __pycache__/
*.py[cod]
*$py.class

# Swap files
**/*.sw[nop]

# Log files
*.log
logs/

# PyCharm
.idea/

# C extensions
*.so

Expand Down
87 changes: 87 additions & 0 deletions CODE_OF_CONDUCT.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Code of Conduct
=====================

We, the community of contributors and maintainers, are dedicated to nurturing an atmosphere of inclusivity and respect within this project.
Our objective is to establish a space which welcomes individuals of all backgrounds and identities, and is safe and respectful for everyone regardless of ethnicity,
gender identity and expression, level of experience, age, disability, nationality, personal appearance, race, religion, or sexual orientation.

|
--------------------
Our Commitment
--------------------

With the aim of nurturing an open and inviting space, we commit to:

- Respectfulness: Interacting with consideration and kindness, recognizing the worth of each person's input.
- Inclusiveness: Embracing contributions from all individuals of all backgrounds and actively seeking involvement from
those who have been traditionally underrepresented in the field.
- Patience: Demonstrating understanding and empathy towards varying levels of experience and viewpoints.
- Constructive Interaction: Engaging in conversations that offer positive and productive outcomes.

|
-----------------------
Unacceptable Behaviour
-----------------------

Actions that will not be tolerated include, but are not limited to:

- Harassment: Engaging in discriminatory behaviour, intimidation, or any form of harassment.
- Derogatory Remarks: Making negative or disrespectful comments that hinder constructive discussions.
- Personal Attacks: Undermining a collaborative environment through attacking or belittling others.
- Spam and Irrelevance: Distributing unsolicited content or repeatedly sharing irrelevant information.
- Discrimination in Any Form: Discriminating behaviour or conduct relating to, but not limited to, any of the
aforementioned characteristics.

|
-----------------------
Our Responsibilities
-----------------------

The project maintainers are entrusted with upholding this code of conduct.
Enforcing this code is crucial for maintaining a positive, welcoming and productive environment.
Instances of inappropriate behaviour can be reported to the project team using this
`form <https://docs.google.com/forms/d/e/1FAIpQLSeyEX_txP3JDF3RQrI3R7ilPHV9JcZIyHPwLLlF6Pz7iGnocw/viewform?usp=sf_link>`_
All grievances will be reviewed confidentially, punctually and impartially.
The moderators have the authority to edit, remove, or decline comments, commits, code, issues, and other contributions
that conflict with this code of conduct.
Contributors who disregard this code may face temporary or permanent consequences, as determined by the project team.

|
-----------------------
Applicability
-----------------------

This code of conduct is applicable within project spaces, encompassing project repositories, issue trackers,
communication channels, mailing lists, social media platforms and public events.

|
-----------------------
Enforcement guidelines
-----------------------

The project team will use the following steps to enforce the standards of conduct.

- Warning: In the case of a single incident, the project team will issue a warning to the offending party.
- Temporary Ban: If the offending party does not heed the warning and repeats behaviour which violates the code of
conduct, the offending party will be temporarily banned.
This will prohibit the offending party from any interaction with the community for a specified period of time.
Violating this may result in a permanent ban.
- Permanent Ban: Sustained behaviour which violates the code of conduct will not be tolerated and will result in a
permanent ban.

Please note that the project team will at its absolute discretion, depending on the nature of the offence, decide the
appropriate consequences for the offending party and that the listed steps are only guidelines and may not necessarily
be applied in the presented order (e.g. a permanent ban can be issued without preceding warnings if the offence warrants
it).
If the project team bans a contributor and you consider this to be unjustified, please communicate this to the project
moderators in private by emailing `[email protected] <[email protected]>`_.




.
122 changes: 122 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
Contributing to QAT-RPC
=======================

First and foremost, thank you for considering contributing to QAT-RPC - an open-source, community maintained project.
We are very excited to have you and your ideas working to improve both the codebase and the community.
To begin, read the project overview and guidelines to help you quickly familiarise yourself with the project and the way
we do things.

The areas you could contribute to QAT-RPC include:

- Submitting bug reports and feature requests
- Contributing to the codebase (e.g. new features, improving the test suite etc.)
- Documentation
- Helping to answer questions which are asked in the discussion forum

All contributions to QAT-RPC are governed by our
`code of conduct <https://github.com/oqc-community/qat-rpc/blob/main/CODE_OF_CONDUCT.rst>`_.

|
.. contents:: Table of Contents
:backlinks: none

|
-------------------------
Installation
-------------------------
To get started, see the Building from Source section of the
`README <https://github.com/oqc-community/qat-rpc/blob/main/README.md>`_.

|
-------------------------
Pull Requests
-------------------------
To begin, fork this repository, make changes in your own fork, and then submit a pull request (PR).
All new code should have associated unit tests that validate implemented features and ensure the proper functionality of
the code.

A PR must receive maintainer approval before it can be merged. We aim to review significant contributions within two weeks
and minor changes within a few days, but we cannot guarantee this will always be the case. We expect reviews to be carried
out respectfully and that a commitment to maintain a standard of excellence in the code base will be paramount.
If a pull request has become stale and inactive, the project team may choose to close the PR.
As an open source project, your patience is appreciated when waiting for PR reviews.

|
-------------------------
Your First Contribution
-------------------------
Now you are all set to start contributing to QAT-RPC!
If you are unsure where to start, please check out our 'good first issue' and 'help wanted' issues.
The 'good first issue' tasks will require only small changes to the code base and are intended to provide you with a smooth
accessible learning curve whilst familiarising yourself with QAT-RPC.
The 'help wanted' issues will require greater interaction/modifications to the codebase and are intended for more
experienced contributors.

First-Timer Help
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you're entirely new to contributing to open source projects, some of the following helpful links may be useful to you:

- For an overview of how to take part in an open-source project, please read
`this <https://www.freecodecamp.org/news/how-to-contribute-to-open-source-projects-beginners-guide/>`_
- Need some help with how to PR? Please visit this
`guide <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests>`_
- Never had your code reviewed before? For information about how this process works, please click
`here <https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews>`_

Please ask for help when you need it- after all, we were all beginners at first.

|
-------------------------
How to Report a Bug
-------------------------

Security Vulnerabilities
~~~~~~~~~~~~~~~~~~~~~~~~
If you believe you have found a security vulnerability, do not open an issue or report it publicly.
Instead, please email the security team at `[email protected] <[email protected]>`_. Once a security vulnerability has
been reported, you should receive an acknowledgement in two working days.
If you suspect you have found a security issue but are unsure, please email the project team in any case.


Opening an Issue
~~~~~~~~~~~~~~~~~~~~~~
If you believe you've found an issue and would like to raise it:

- First check to see if your issue has already been fixed. If so, download the version with the fix and try again.
- Has it been raised before by someone else? If an issue is already open, see if you can add additional information to help diagnose or recreate the issue.
- Otherwise open an issue. We have an issue template set up so please use that
to guide you and give examples of the information we're looking for. The more precise details you provide the higher chance we'll be able to reproduce and fix the issue in
a decent timeframe.

|
-------------------------
New Features
-------------------------

Before trying to add a new feature, open an `issue <https://github.com/oqc-community/qat-rpc/issues>`_ or start a `discussion <https://github.com/oqc-community/qat-rpc/discussions>`_ with an overview of what you'd like to see.
This is to save disappointment as some features we will refuse because purely it doesn't fit with QAT-RPC as a whole or where we're currently going.

Once a new feature has approval of the team as a whole you can start work on it and we'll support you where possible. If you do not want to work on it personally it'll go on the backlog and we'll get to it when possible.

For ideas about where the project is heading, checkout the `issues <https://github.com/oqc-community/qat-rpc/issues>`_ list
or the Roadmap in the `README <https://github.com/oqc-community/qat-rpc/blob/main/README.md>`_.

|
-------------------------
Additional Information
-------------------------

Unit Tests
~~~~~~~~~~~~~~~~~~~~~~
QAT-RPC has an existing test suite, which can be found in the tests directory of the code base.
It is our policy that these tests should pass at all times, unless a test is skipped in which case justification should
be provided.
New features should be accompanied by a comprehensive test suite which makes sure that the feature is behaving as
intended, and that future merges do not unintentionally break this functionality.
13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
BSD 3-Clause License

Copyright 2023 © Oxford Quantum Circuits Ltd

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OXFORD QUANTUM CIRCUITS, ITS SUBSIDARIES, OR AFFILIATES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44 changes: 42 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,42 @@
# qat-rpc
RPC tooling for QAT.
# QAT-RPC

This package provides RPC (Remote Procedure Call) tooling for use with the OQC
[QAT](https://oqc-community.github.io/qat/main/index.html) (Quantum Assembly Toolchain) compiler and runtime.

## Installation

### PyPI

The QAT-RPC package has not yet been released to PyPI.

### Building from Source

We use [poetry](https://python-poetry.org/) for dependency management and run on
[Python 3.8+](https://www.python.org/downloads/).
Once both of these are installed run this in the root folder to install all the dependencies that you need: `poetry install`

### Contributing

To take the first steps towards contributing to QAT-RPC, visit our
[contribution](https://github.com/oqc-community/qat-rpc/blob/main/CONTRIBUTING.rst) documents, which provides details about our
process.

We also encourage new contributors to familiarise themselves with the
[code of conduct](https://github.com/oqc-community/qat-rpc/blob/main/CODE_OF_CONDUCT.rst) and to adhere to these
expectations.

### Assistance

For support, please reach out in the [discussions](https://github.com/oqc-community/qat-rpc/discussions) tab of this repository or file an [issue](https://github.com/oqc-community/qat-rpc/issues).

### Licence

This code in this repository is licensed under the BSD 3-Clause Licence.
Please see [LICENSE](https://github.com/oqc-community/qat-rpc/blob/main/LICENSE) for more information.

### Feedback

Please let us know your feedback and any suggestions by reaching out in [Discussions](https://github.com/oqc-community/qat-rpc/discussions>).
Additionally, to report any concerns or
[code of conduct](https://github.com/oqc-community/qat-rpc/blob/main/CODE_OF_CONDUCT.rst) violations please use this
[form](https://docs.google.com/forms/d/e/1FAIpQLSeyEX_txP3JDF3RQrI3R7ilPHV9JcZIyHPwLLlF6Pz7iGnocw/viewform?usp=sf_link).
Loading

0 comments on commit 3fc3261

Please sign in to comment.