Skip to content

Commit

Permalink
chore(template): merge template changes (#59)
Browse files Browse the repository at this point in the history
Merge pedrorrivero/pyproject-qiskit ab3c3ec
  • Loading branch information
github-actions[bot] authored Feb 5, 2024
1 parent 6818443 commit 6981566
Show file tree
Hide file tree
Showing 5 changed files with 138 additions and 75 deletions.
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ repos:
name: pylint
description: "Static code analysis"
stages: [commit]
entry: pylint -rn -d import-error
entry: pylint --reports=no --disable=import-error
language: python
files: .*\.py
exclude: (tools|test|docs)/.*
Expand Down Expand Up @@ -84,5 +84,5 @@ repos:
hooks:
- id: gitlint
name: gitlint
description: "Enforce extra commiting rules"
description: "Enforce extra committing rules"
stages: [commit-msg]
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# Contributing
__We appreciate all kinds of help, so thank you!__

This guide is for those who want to extend the module or documentation. If you just want to use the package, read [this other guide](./docs/reference_guide.md) instead.
This guide is for those who want to extend the module or documentation. If you just want to use the software, read [this other guide](./docs/reference_guide.md) instead.


## Table of contents
Expand Down Expand Up @@ -43,7 +43,7 @@ Other than submitting new source code, users can contribute in a number of meani
## Initial set-up

### Installing dependencies
In order to contribute, you will need to [install the module from source](/INSTALL.md#installation-from-source) with developer dependencies (i.e. `dev` bundle) and, optionally, in editable mode. We recommend using the latest version of python available despite the fact that this package maintains support for legacy versions, as some of the developer tools require newer functionality to work (e.g. type annotation format introduced in python 3.10).
In order to contribute, you will need to [install the module from source](/INSTALL.md#installation-from-source) with developer dependencies (i.e. `dev` bundle) and, optionally, in editable mode. We recommend using the latest version of python available despite the fact that this software maintains support for legacy versions, as some of the developer tools require newer functionality to work (e.g. type annotation format introduced in python 3.10).

If you do not have write permissions to the original repository, you will need to open a fork in your personal account first, and submit all pull requests (PR) from there. Even if you have write permissions, forking the repository should always work provided that this functionality is enabled, so this is the recommended approach.

Expand Down
37 changes: 37 additions & 0 deletions DEPRECATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Deprecation Policy

This software library is meant to evolve rapidly and, as such, does not follow [Qiskit's deprecation policy](https://github.com/Qiskit/qiskit/blob/main/DEPRECATION.md). Nonetheless, we will always try to give users ample time to adjust to changes without breaking code that they have already written.

To avoid dependency issues, exact version specification is encouraged if no upcoming updates are needed (e.g. [version pinning](https://www.easypost.com/dependency-pinning-guide)).


## Supported API and pre-releases

Following [Python's naming conventions](https://realpython.com/python-double-underscore/) as outlined by [PEP8](https://peps.python.org/pep-0008/), any module, variable, function, or class whose name starts with a leading underscore `_` will be considered _internal_ and not part of this library's supported _application programming interface_ (API).

Some capabilities may be pre-released before reaching a stable state. These will not adhere to the deprecation policies in place and will actively warn users of their unstable, pre-release, condition until they are deemed otherwise.

Every other piece of source code conforms the _public-facing_ API of this library and will therefore be subject to the rules outlined in this document.


## Migrations

In order to avoid redundancy with [Qiskit](https://www.ibm.com/quantum/qiskit) and other IBM software products, once a specific capability from this library gets integrated into IBM's stable product stack we will proceed to its deprecation here.

Said deprecation process will last for at least three months, and will not begin until a _migration guide_ explaining users how to transition to the new product feature is produced, approved, and published.


## Deprecations, breaking changes, and versioning

This library follows [semantic versioning](https://semver.org/) (i.e. `MAJOR.MINOR.PATCH`).

In most cases, functionality will not be changed or removed without displaying active warnings for a sufficiently long period of time. During this period, we will keep old interfaces and mark them as _deprecated_. Deprecations, changes and removals are considered API modifications, and can only occur in _minor_ releases, not _patch_ releases.

We may occasionally introduce breaking changes (i.e. backwards incompatible) in order to bring new functionality to users more rapidly, simplify existing tooling, or facilitate maintenance. These changes will only be included in _major_ releases.

Major version zero (i.e. `0.X.Y`) may include breaking changes in minor releases.


## Documenting changes

Each substantial improvement, breaking change, or deprecation occurring for each release will be documented in [`CHANGELOG.md`](CHANGELOG.md).
22 changes: 14 additions & 8 deletions FILEMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,29 @@
## Guidelines

- [`CITATION.bib`](CITATION.bib) --
BibTeX file including the bibliographic reference to cite the software package.
BibTeX file including the bibliographic reference to cite the software.
- [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) --
participation in the repository is subject to these conduct guidelines.
- [`CONTRIBUTING.md`](CONTRIBUTING.md) --
guidelines to contribute to the repository.
- [`DEPRECATION.md`](DEPRECATION.md) --
deprecation policy.
- [`FILEMAP.md`](FILEMAP.md) --
a summary of the repository structure and explanations of the different files and folders.
- [`INSTALL.md`](INSTALL.md) --
guidelines to install the software package contained in this repo.
- [`LICENSE.md`](LICENSE.md) --
guidelines to install the software contained in this repo.
- [`LICENSE.txt`](LICENSE.txt) --
one of the [standard legal requirements](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository) for an open source project. There are different types of [licenses for software](https://en.wikipedia.org/wiki/Software_license), some of the most popular being [open source](https://opensource.org/licenses).
- [`README.md`](README.md) --
main readme for repository.


## Software package
## Software package/library

- `<pyproject_qiskit>` --
it will have a different name for each repository using the [`pyproject-qiskit` template](https://github.com/pedrorrivero/pyproject-qiskit), and it holds the source code for the software package. This name will determine how the package is imported after installation (e.g. `from <pyproject_qiskit> import __version__`).
it will have a different name for each repository using the [`pyproject-qiskit` template](https://github.com/pedrorrivero/pyproject-qiskit), and it holds the source code for the software. This name will determine how the software is imported after installation (e.g. `from <pyproject_qiskit> import __version__`).
- [`CHANGELOG.md`](CHANGELOG.md) --
file that logs all the changes made to the software package on each new version release.
file that logs all the changes made to the software on each new version release.
- [`docs`](docs) --
documentation for the repository (e.g. tutorials, API docs, reference guide).
- [`test`](test) --
Expand All @@ -37,7 +39,11 @@
- [`unit`](test/unit/) --
folder for [unit tests](https://en.wikipedia.org/wiki/Unit_testing).
- [`pyproject.toml`](pyproject.toml) --
file containing the [build and package configurations](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/) for the python project. This file also contains configurations for [Black](https://black.readthedocs.io/), a tool for automatic code formatting.
file containing the [build and package configurations](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/) for the python project. This file also contains configurations for:
- [Black](https://black.readthedocs.io/) --
a tool for automatic code formatting.
- [Autoflake](https://github.com/PyCQA/autoflake) --
a tool for removing unused imports and variables.


## CI/CD
Expand Down Expand Up @@ -89,6 +95,6 @@
- [`.pylintrc`](.pylintrc) --
configuration for [Pylint](https://pylint.readthedocs.io/), a tool for static code analysis (e.g. lint errors).
- [`pytest.ini`](pytest.ini) --
configuration for the [PyTest framework](https://pytest.org) used for testing the software package.
configuration for the [PyTest framework](https://pytest.org) used for testing the software.
- [`tox.ini`](tox.ini) --
configuration file for [tox](https://tox.readthedocs.io/en/latest/) framework that aims to automate and standardize testing in Python. Eases the packaging, testing and release process of Python software.
Loading

0 comments on commit 6981566

Please sign in to comment.