Skip to content

Commit

Permalink
[Release] Repo initialisation for release and publish (#11)
Browse files Browse the repository at this point in the history
* Initial commit.

* Remove unecessary submodules.

* Add test/lint on CI.

* Harmonise python versions with pyproject.toml.

* Initial files to make CI happy.

* Update files for CI.

* Remove unnecessary files.

* More clean-up.
  • Loading branch information
RolandMacDoland authored Jul 19, 2024
1 parent e50664a commit 32c828f
Show file tree
Hide file tree
Showing 22 changed files with 376 additions and 622 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Linting

on:
push:
branches:
- main
pull_request: {}
workflow_dispatch: {}

jobs:
lint:

runs-on: ubuntu-latest

steps:
- name: Checkout Qadence
uses: actions/checkout@v4

- name: Set up Python 3.x
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install pre-commit
run: |
pip install pre-commit
pre-commit install
- name: Check files
run: |
pre-commit run --all-files
108 changes: 108 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Tests

on:
push:
branches:
- main
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
pull_request:
branches:
- main
workflow_dispatch: {}

concurrency:
group: fast-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:

test_qadence_ubuntu:
name: Qadence (ubuntu)
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11"]
steps:
- name: Checkout Qadence
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Hatch
run: |
pip install hatch
- name: Run tests
run: |
hatch -v run test
- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
name: "coverage-data"
path: .coverage.*
if-no-files-found: ignore

publish:
name: Publish to PyPI
if: startsWith(github.ref, 'refs/tags/v')
needs: test_qadence_ubuntu
runs-on: ubuntu-latest
steps:
- name: Check out Qadence
uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install hatch
- name: Build and publish package
run: |
hatch build
hatch publish -u ${{ secrets.HATCH_PYPI_USER }} -a ${{ secrets.HATCH_PYPI_AUTH }}
- name: Confirm deployment
timeout-minutes: 5
run: |
VERSION=${GITHUB_REF#refs/tags/v}
until pip download qadence==$VERSION
do
echo "Failed to download from PyPI, will wait for upload and retry."
sleep 1
done
deploy_docs:
name: Deploy Qadence docs (ubuntu)
if: startsWith(github.ref, 'refs/tags/v')
needs: test_qadence_ubuntu
runs-on: ubuntu-latest
steps:
- name: Checkout Qadence
uses: actions/checkout@v4
- name: Install JetBrains Mono font
run: |
sudo apt install -y wget unzip fontconfig
wget https://download.jetbrains.com/fonts/JetBrainsMono-2.304.zip
unzip JetBrainsMono-2.304.zip -d JetBrainsMono
mkdir -p /usr/share/fonts/truetype/jetbrains
cp JetBrainsMono/fonts/ttf/*.ttf /usr/share/fonts/truetype/jetbrains/
fc-cache -f -v
- name: Install graphviz
run: sudo apt-get install -y graphviz
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install Hatch
run: |
pip install hatch
- name: Deploy docs
run: |
git config user.name "GitHub Actions"
git config user.email "[email protected]"
git fetch origin gh-pages
hatch -v run docs:mike deploy --push --update-aliases ${{ github.ref_name }} latest
9 changes: 0 additions & 9 deletions .gitmodules

This file was deleted.

24 changes: 24 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

- repo: https://github.com/ambv/black
rev: 23.3.0
hooks:
- id: black

- repo: https://github.com/charliermarsh/ruff-pre-commit
rev: "v0.0.274"
hooks:
- id: ruff

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.4.0
hooks:
- id: mypy
exclude: examples|docs
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# Qadence 2 core

House for blocks, expressions, compiler, runtime, platforms (quantum model and backends) and data types handling modules.

## Installation
Installation guidelines

## Usage
Usage guidelines

## Documentation
Documentation guidelines

## Contribute
Contribution guidelines
11 changes: 11 additions & 0 deletions docs/css/mkdocstrings.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/* Indentation. */
div.doc-contents:not(.first) {
padding-left: 25px;
border-left: 4px solid rgba(230, 230, 230);
margin-bottom: 80px;
}

/* Avoid breaking parameters name, etc. in table cells. */
td code {
word-break: normal !important;
}
12 changes: 12 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# "qadence2 core"
## Installation
Installation guidelines

## Usage
Usage guidelines

## Documentation
Documentation guidelines

## Contribute
Contribution guidelines
16 changes: 16 additions & 0 deletions docs/javascripts/mathjax.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
window.MathJax = {
tex: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: ".*|",
processHtmlClass: "arithmatex"
}
};

document$.subscribe(() => {
MathJax.typesetPromise()
})
8 changes: 8 additions & 0 deletions docs/sample_page.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
This is just a sample notebook to showcase the rendering of Jupyter notebooks in the documentation.

```python exec="on" source="material-block" session="main"
from qadence2-core.main import main

msg = main()
print(msg)
```
Loading

0 comments on commit 32c828f

Please sign in to comment.