diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..bb1e819 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,31 @@ +name: Build + +on: + push: + branches: [main] + pull_request: + +jobs: + install-pip: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v7 + with: + python-version: "3.10" + - name: Install with pip + run: | + python -m venv .venv + source .venv/bin/activate + pip install . + + install-uv: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v10.0.1 + - name: Install with uv + run: | + uv venv + source .venv/bin/activate + uv pip install . diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..941eba1 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,19 @@ +name: Lint + +on: + push: + branches: [main] + pull_request: + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v10.0.1 + - name: Install ruff + run: uv tool install ruff + - name: ruff format --check + run: uv tool run ruff format --check . + - name: ruff check + run: uv tool run ruff check . diff --git a/.gitignore b/.gitignore index 83972fa..423d55d 100644 --- a/.gitignore +++ b/.gitignore @@ -85,7 +85,7 @@ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: -# .python-version +.python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. @@ -164,9 +164,6 @@ venv.bak/ # Rope project settings .ropeproject -# mkdocs documentation -/site - # mypy .mypy_cache/ .dmypy.json @@ -216,3 +213,6 @@ __marimo__/ # Streamlit .streamlit/secrets.toml + +# VSCode settings +.vscode/settings.json diff --git a/README.md b/README.md index 86fa95e..732337f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -🚀 **Join the QoolQit Beta Testing Program!** +## 🚀 **Join the QoolQit Beta Testing Program!** Be among the first to explore QoolQit, Pasqal's new open-source, hardware-agnostic Python framework for quantum programming. QoolQit lets you focus on designing quantum experiments while abstracting away the complexities of the underlying hardware. @@ -18,3 +18,25 @@ Over the course of **3 weeks**, you'll follow a guided learning journey desi - 🎤 Recognition during the official QoolQit launch webinar - ☁️ Complimentary Pasqal Cloud emulation credits upon completion + +### ⚙️ **How to install** + +First, create and activate a virtual environment, then install the package. Examples below use `pip` and [`uv`](https://docs.astral.sh/uv/), but feel free to use your favorite package manager instead. + +With `pip`: + +```bash +python -m venv .venv +source .venv/bin/activate +pip install . +``` + +With `uv`: + +```bash +uv venv +source .venv/bin/activate +uv pip install . +``` + +This installs QoolQit 1.4 and Jupyter so you can run the exercise notebooks with `jupyter lab` or `jupyter notebook`. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..cd45624 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "qoolqit-beta-testing-program" +version = "0.1.0" +description = "Qoolqit Beta Testing Program" +readme = "README.md" +requires-python = ">=3.10" +authors = [ + { name = "Francesco Ferrulli", email = "francesco.ferrulli@pasqal.com" }, + { name = "Stefano Grava", email = "s.grava-ext@pasqal.com" }, + { name = "Vittorio Vitale", email = "vittorio.vitale@pasqal.com" }, +] +dependencies = [ + "qoolqit>=1.4.0", + "jupyter", +] + +[tool.setuptools] +packages = [] + +[project.optional-dependencies] +dev = ["ruff"]