Skip to content

Commit

Permalink
Merge documentation and benchmarks from metapackage
Browse files Browse the repository at this point in the history
This cross-repository merge unifies the documentation, benchmarks and
code of conduct from the metapackage into Qiskit/Terra's build.

There are very non-trivial merge conflicts that have been resolved by
this commit.  The summary is:

- `CODE_OF_CONDUCT.md`: taken directly from the metapackage's version.
- `docs/conf.py`: strongly unified, albeit without the translations
  components that are added in a separate commit.
- `docs/index.rst`: taken almost verbatim from the metapackage.  All the
  API documentation RST files on Terra are moved to `docs/apidoc`
  (without the trailing 's') to match the metapackage expectation, so
  the URLs of built documentation will not change.
- `docs/release_notes.rst`: The metapackage's version is renamed to
  `docs/legacy_release_notes.rst`, given a small introductory header,
  and made an orphan linked only from a _new_ `docs/release_notes.rst`
  that uses `reno`.
- `docs/tutorials.rst`: Mostly these were the same already.  Updated to
  include Qiskit/Terra's correction that it's not an orphan, and contain
  the metapackage's extra intro tutorial.
- `docs/apidoc/terra.rst`: renamed to `docs/apidoc/index.rst` and retitled
  to be correctly just "API Documentation".
- `requirements-dev.txt`: the version of the Sphinx theme is bumped to 1.14
  to match the metapackage expectation.
  • Loading branch information
jakelishman committed Aug 11, 2023
2 parents 6a7d109 + a156e4d commit ec5c9ca
Show file tree
Hide file tree
Showing 104 changed files with 48,412 additions and 38 deletions.
117 changes: 111 additions & 6 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,114 @@
<!-- Copyright Contributors to the Qiskit project. -->

# Code of Conduct
All members of this project agree to adhere to the Qiskit Code of Conduct listed at [https://github.com/Qiskit/qiskit/blob/master/CODE_OF_CONDUCT.md](https://github.com/Qiskit/qiskit/blob/master/CODE_OF_CONDUCT.md)

----
## Our Pledge

The Qiskit Community is dedicated to our values of treating every individual
with respect and dignity. In the interest of fostering an open and welcoming
environment, all participants, including attendees, speakers, sponsors,
volunteers, online contributors, and IBM employees are expected to show
courtesy for each other and our community by creating a harassment-free
experience for everyone, regardless of age, personal appearance, disability,
ethnicity, gender identity and expression, body size, level of experience,
nationality, race, religion, caste, or sexual identity and orientation.
Expected behavior applies to both online and offline engagement within the
Qiskit Community.

## Scope

The purpose of this Code of Conduct is to define and enforce the values and
conduct of contributors and participants in the Qiskit open source community.
The Code of Conduct applies both within project spaces and in public spaces
when an individual is engaging with the Qiskit open source community. Examples
include attending a Qiskit event, contributing to online projects, commentary
on Slack, or representing a project or community, including using an official
project e-mail address, posting via an official social media account, or
acting as an appointed representative at an online or offline event.
Representation of a project may be further defined and clarified by project
maintainers.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints, experiences, and cultures
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
- Being mindful of your surroundings and your fellow participants and listening
to others
- Valuing the contributions of all participants
- Engaging in collaboration before conflict
- Pointing out unintentionally racist, sexist, casteist, or biased comments and
jokes made by community members when they happen

Examples of unacceptable behavior by participants, even when presented as
"ironic" or "joking," include:

- The use of sexualized language or imagery and unwelcome physical contact,
sexual attention, or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment, including offensive or degrading language
- Publishing others' private information, such as a physical or electronic
address, without explicit permission. This includes any sort of "outing" of
any aspect of someone's identity without their consent.
- "Doxxing," Publishing screenshots or quotes, especially from identity slack
channels, private chat, or public events, without all quoted users' explicit
consent.
- Engaging in spamming activities, such as repeatedly sending unsolicited messages, LLMs (Large Language Models) output, advertisements, or promotional content to community members without previous IBM authorization.
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Responsibilities & Enforcement

The entire Qiskit community is responsible for upholding the terms of the Code
of Conduct in Qiskit Community events and spaces and reporting violations if
they see them. The internal Qiskit team at IBM is ultimately responsible for
clarifying the standards of acceptable behavior and enforcement, and is expected
to take appropriate and fair corrective action in response to any instances of
unacceptable behavior.

If a participant or contributor engages in negative or harmful behavior, IBM
will take any action they deem appropriate, including but not limited to
issuing warnings, expulsion from an event with no refund, deleting comments,
permanent banning from future events or online community, or calling local law
enforcement. IBM has the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, or to temporarily or permanently ban any
contributor or participant for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

If you see a Code of Conduct violation:

1. If you feel comfortable, let the person know that what they did is not
appropriate and ask them to stop and/or edit or delete their message(s) or
comment(s).
2. If the person does not immediately stop the behavior or correct the issue,
or if you're uncomfortable speaking up, flag a moderator and, if appropriate,
fill out the anonymous
[Code of Conduct violation form](https://airtable.com/shrl5mEF4Eun1aIDm).
3. The Qiskit Community will open an investigation upon receiving your form
entry. When reporting, please include any relevant details, links,
screenshots, context, or other information that may be used to better
understand and resolve the situation.
4. If the code of conduct violation occurs at an event and requires immediate
response or contains a concern about an individual attending an upcoming
event, contact the event's on-call Code of Conduct point of contact listed
in the event specific code of conduct document. If you don't feel comfortable
speaking to the point of contact in person, fill out a Code of Conduct
violation form entry and include the details of the event so that the Code of
Conduct enforcement board can contact the event's on-call Code of Conduct
point of contact.
5. If an IBM employee witnesses a Code of Conduct violation at any time, such as
at events, in a Slack channel, or open source forums, it is their
responsibility to file a Code of Conduct violation report.

License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/),
Copyright Contributors to Qiskit.
This Code of Conduct does not supersede existing IBM corporate policies, such as
the IBM Business Conduct Guidelines and IBM Business Partner Code of Conduct.
IBM employees must follow IBM's Business Conduct Guidelines. IBM's business
partners must follow the IBM Business Partner Code of Conduct. IBM employees
concerned with a fellow IBMer's behavior should follow IBM's own internal HR
reporting protocols, which include engaging the offending IBMer's manager and
involving IBM Concerns and Appeals. IBM employees concerned with an IBM
business partner's behavior should notify tellibm@us.ibm.com.
172 changes: 172 additions & 0 deletions asv.conf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
{
// The version of the config file format. Do not change, unless
// you know what you are doing.
"version": 1,

// The name of the project being benchmarked
"project": "qiskit-terra",

// The project's homepage
"project_url": "https://qiskit.org",

// The URL or local path of the source code repository for the
// project being benchmarked
"repo": "https://github.com/Qiskit/qiskit-terra.git",

// The Python project's subdirectory in your repo. If missing or
// the empty string, the project is assumed to be located at the root
// of the repository.
// "repo_subdir": "",

// Customizable commands for building, installing, and
// uninstalling the project. See asv.conf.json documentation.
//
"install_command": [
"return-code=any python -c \"import shutil; shutil.rmtree('{build_dir}/build')\"",
"return-code=any python -c \"import shutil; shutil.rmtree('{build_dir}/qiskit_terra.egg-info')\"",
"python -mpip install seaborn",
"python -mpip install pygments",
"python -mpip install {wheel_file}",
"python -mpip install -U qiskit-experiments==0.3.0",
"python -mpip install -U python-constraint"
],
"uninstall_command": [
"return-code=any python -mpip uninstall -y {project}",
"return-code=any python -mpip uninstall -y qiskit-experiments"
],
"build_command": [
"pip install -U Cython setuptools-rust",
"python setup.py build_rust --release",
"PIP_NO_BUILD_ISOLATION=false python -mpip wheel --no-deps --no-index -w {build_cache_dir} {build_dir}"
],

// List of branches to benchmark. If not provided, defaults to "master"
// (for git) or "default" (for mercurial).
"branches": ["main"], // for git
// "branches": ["default"], // for mercurial

// The DVCS being used. If not set, it will be automatically
// determined from "repo" by looking at the protocol in the URL
// (if remote), or by looking for special directories, such as
// ".git" (if local).
"dvcs": "git",

// The tool to use to create environments. May be "conda",
// "virtualenv" or other value depending on the plugins in use.
// If missing or the empty string, the tool will be automatically
// determined by looking for tools on the PATH environment
// variable.
"environment_type": "virtualenv",

// timeout in seconds for installing any dependencies in environment
// defaults to 10 min
//"install_timeout": 600,

// the base URL to show a commit for the project.
"show_commit_url": "http://github.com/Qiskit/qiskit-terra/commit/",

// The Pythons you'd like to test against. If not provided, defaults
// to the current version of Python used to run `asv`.
"pythons": ["3.7", "3.8", "3.9", "3.10"],

// The list of conda channel names to be searched for benchmark
// dependency packages in the specified order
// "conda_channels": ["conda-forge", "defaults"]

// The matrix of dependencies to test. Each key is the name of a
// package (in PyPI) and the values are version numbers. An empty
// list or empty string indicates to just test against the default
// (latest) version. null indicates that the package is to not be
// installed. If the package to be tested is only available from
// PyPi, and the 'environment_type' is conda, then you can preface
// the package name by 'pip+', and the package will be installed via
// pip (with all the conda available packages installed first,
// followed by the pip installed packages).
//
// "matrix": {
// "numpy": ["1.6", "1.7"],
// "six": ["", null], // test with and without six installed
// "pip+emcee": [""], // emcee is only available for install with pip.
// },

// Combinations of libraries/python versions can be excluded/included
// from the set to test. Each entry is a dictionary containing additional
// key-value pairs to include/exclude.
//
// An exclude entry excludes entries where all values match. The
// values are regexps that should match the whole string.
//
// An include entry adds an environment. Only the packages listed
// are installed. The 'python' key is required. The exclude rules
// do not apply to includes.
//
// In addition to package names, the following keys are available:
//
// - python
// Python version, as in the *pythons* variable above.
// - environment_type
// Environment type, as above.
// - sys_platform
// Platform, as in sys.platform. Possible values for the common
// cases: 'linux2', 'win32', 'cygwin', 'darwin'.
//
// "exclude": [
// {"python": "3.2", "sys_platform": "win32"}, // skip py3.2 on windows
// {"environment_type": "conda", "six": null}, // don't run without six on conda
// ],
//
// "include": [
// // additional env for python2.7
// {"python": "2.7", "numpy": "1.8"},
// // additional env if run on windows+conda
// {"platform": "win32", "environment_type": "conda", "python": "2.7", "libpython": ""},
// ],

// The directory (relative to the current directory) that benchmarks are
// stored in. If not provided, defaults to "benchmarks"
"benchmark_dir": "test/benchmarks",

// The directory (relative to the current directory) to cache the Python
// environments in. If not provided, defaults to "env"
"env_dir": ".asv/env",

// The directory (relative to the current directory) that raw benchmark
// results are stored in. If not provided, defaults to "results".
"results_dir": ".asv/results",

// The directory (relative to the current directory) that the html tree
// should be written to. If not provided, defaults to "html".
// "html_dir": "html",

// The number of characters to retain in the commit hashes.
// "hash_length": 8,

// `asv` will cache results of the recent builds in each
// environment, making them faster to install next time. This is
// the number of builds to keep, per environment.
// "build_cache_size": 2,

// The commits after which the regression search in `asv publish`
// should start looking for regressions. Dictionary whose keys are
// regexps matching to benchmark names, and values corresponding to
// the commit (exclusive) after which to start looking for
// regressions. The default is to start from the first commit
// with results. If the commit is `null`, regression detection is
// skipped for the matching benchmark.
//
// "regressions_first_commits": {
// "some_benchmark": "352cdf", // Consider regressions only after this commit
// "another_benchmark": null, // Skip regression detection altogether
// },

// The thresholds for relative change in results, after which `asv
// publish` starts reporting regressions. Dictionary of the same
// form as in ``regressions_first_commits``, with values
// indicating the thresholds. If multiple entries match, the
// maximum is taken. If no entry matches, the default is 5%.
//
// "regressions_thresholds": {
// "some_benchmark": 0.01, // Threshold of 1%
// "another_benchmark": 0.5, // Threshold of 50%
// },
}
Binary file added docs/_static/images/ibm_qlab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/images/strangeworks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions docs/apidocs/terra.rst → docs/apidoc/index.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.. module:: qiskit

==========================
Qiskit Terra API Reference
==========================
=============
API Reference
=============

.. toctree::
:maxdepth: 1
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit ec5c9ca

Please sign in to comment.