diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 0000000..6f1b53e --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,53 @@ +name: Build and Deploy Documentation + +on: + push: + branches: + - main + pull_request: + branches: + - main + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Conda + uses: conda-incubator/setup-miniconda@v3 + with: +# miniforge-variant: Mambaforge +# use-mamba: true + environment-file: environment.yml + + - name: Build documentation + shell: bash -l {0} + run: make html + + - name: Upload artifact + uses: actions/upload-pages-artifact@v4 + with: + path: 'build/html' + + deploy: + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 \ No newline at end of file diff --git a/.gitignore b/.gitignore index b7faf40..c7335ba 100644 --- a/.gitignore +++ b/.gitignore @@ -173,7 +173,7 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +.idea/ # Abstra # Abstra is an AI-powered process automation framework. @@ -205,3 +205,7 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + + +# MacOs +.DS_Store \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..26217e7 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = doc +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/_static/logo.png b/doc/_static/logo.png new file mode 100644 index 0000000..554336d Binary files /dev/null and b/doc/_static/logo.png differ diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..b37b0ef --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,64 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'Tools for Experiments' +copyright = '2026, Wolfgang Pfaff, Marcos Frenkel, Oliver Wolff' +author = 'Wolfgang Pfaff, Marcos Frenkel, Oliver Wolff' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = ['myst_parser'] + +templates_path = ['_templates'] +exclude_patterns = [] + +# -- Internationalization ---------------------------------------------------- + +# specifying the natural language populates some key tags +language = "en" + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = "pydata_sphinx_theme" +html_static_path = ['_static'] +html_logo = '_static/logo.png' + +html_theme_options = { + "logo": { + "text": "Tools for Experiments", + }, + "external_links": [ + { + "url": "https://toolsforexperiments.github.io/labcore/", + "name": "Labcore", + }, + { + "url": "https://toolsforexperiments.github.io/instrumentserver/", + "name": "Instrumentserver", + }, + { + "url": "https://toolsforexperiments.github.io/plottr/", + "name": "Plottr", + }, + { + "url": "https://toolsforexperiments.github.io/cqedtoolbox/", + "name": "CQEDtoolbox", + } + + ], + "icon_links" : [ + { + "name": "GitHub", + "url": "https://github.com/toolsforexperiments", + "icon": "fa-brands fa-github", + } + ] +} \ No newline at end of file diff --git a/doc/contributing/index.md b/doc/contributing/index.md new file mode 100644 index 0000000..1c0d276 --- /dev/null +++ b/doc/contributing/index.md @@ -0,0 +1,9 @@ +# Contributing Guide + +The following is a contributing Guide. + +```{toctree} +:caption: How do I contribute + +setting_up +``` \ No newline at end of file diff --git a/doc/contributing/setting_up.md b/doc/contributing/setting_up.md new file mode 100644 index 0000000..501ad95 --- /dev/null +++ b/doc/contributing/setting_up.md @@ -0,0 +1,15 @@ +# Setting Development Environment. + +The following page is under construction. + +## Git Usage + +This organization uses git since we are in github + +## Mypy + +Type safety is ensured with mypy. + +## Style consistency. + +We will use Ruff to ensure style consistency \ No newline at end of file diff --git a/doc/examples/index.md b/doc/examples/index.md new file mode 100644 index 0000000..382bb6d --- /dev/null +++ b/doc/examples/index.md @@ -0,0 +1,12 @@ +# Examples + +Hello the following is a 15 minutes to TFE example guide. + +This is under construction. + +```{toctree} +:caption: Get Started + +intro +qubit +``` diff --git a/doc/examples/intro.md b/doc/examples/intro.md new file mode 100644 index 0000000..feec7a8 --- /dev/null +++ b/doc/examples/intro.md @@ -0,0 +1,5 @@ +# 15 Minutes to TFE + +Hello welcome to the 15 minutes to TFE introduction guide. + +This is under construction. \ No newline at end of file diff --git a/doc/examples/qubit.md b/doc/examples/qubit.md new file mode 100644 index 0000000..26d1159 --- /dev/null +++ b/doc/examples/qubit.md @@ -0,0 +1,35 @@ +# First Qubit Measurement + +Hello this is a guide to how to perform a qubit measurement quickly. This page is under construction + +## Setting up + +This is the setting up page. + +## Initialization + +This is an initialization page. + +## Measurement + +This is a measurement section + +### Measurement subsection 1 + +Subsection 1 + +### Measurement subsection 2 + +Subsection 2 + +## Analysis + +Analyzing + +### Plotting + +Plotting + +### Fitting + +Fitting \ No newline at end of file diff --git a/doc/index.md b/doc/index.md new file mode 100644 index 0000000..fc42724 --- /dev/null +++ b/doc/index.md @@ -0,0 +1,32 @@ +--- +myst: + html_meta: + "description lang=eng": Top-level documentation for Tools for experiments, with links to the rest of the site.. +html_theme.sidebar_secondary.remove: true +--- + +# Tools for Experiments + +Welcome to the Tools for Experiments documentation site. This is site is currently under construction. Thank you for visiting us. + + +## Examples + +More examples. + +```{toctree} +:maxdepth: 3 + +examples/index +``` + +## Contributing + +Contributing Guide + +```{toctree} +:maxdepth: 3 + +contributing/index + +``` \ No newline at end of file diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..7904d25 --- /dev/null +++ b/environment.yml @@ -0,0 +1,8 @@ +name: tfe-docs +channels: + - conda-forge +dependencies: + - python=3.13.* + - sphinx + - pydata-sphinx-theme + - myst-parser \ No newline at end of file