Skip to content

Update main according to latest changes on dev #227

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 165 commits into from
May 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
165 commits
Select commit Hold shift + click to select a range
8d4870f
Merge branch 'main' of https://github.com/DoubleML/doubleml-docs into…
PhilippBach Jul 10, 2024
d46df24
change links to stable
SvenKlaassen Feb 5, 2025
b66fd86
add irm vs apo example notebook
SvenKlaassen Feb 5, 2025
6fcd615
update examples
SvenKlaassen Feb 7, 2025
0ef5951
update icon links (pypi and discussions)
SvenKlaassen Feb 7, 2025
703937c
update "check_switcher": True
SvenKlaassen Feb 14, 2025
b19a536
fix \bar{} in weights for ATTE
PhilippBach Feb 17, 2025
0ee9171
add ATTE score from paper again
PhilippBach Feb 17, 2025
2bca11e
remove sentence and clean output
PhilippBach Feb 17, 2025
1b3dda7
upd thumbnail
PhilippBach Feb 17, 2025
d551919
add basic hte to apo example
SvenKlaassen Feb 17, 2025
3ecf832
fix typos
SvenKlaassen Feb 18, 2025
27c68cf
update apo vs irm nb
SvenKlaassen Feb 18, 2025
05668af
add example
SvenKlaassen Feb 28, 2025
111d6bd
add plots
SvenKlaassen Mar 2, 2025
b2ed8e2
update plots
SvenKlaassen Mar 2, 2025
dde5eaf
add plotly
SvenKlaassen Mar 2, 2025
ae7a271
add summary and loss
SvenKlaassen Mar 3, 2025
ba31095
set normalize ipw to false
SvenKlaassen Mar 3, 2025
6e7820a
add doctest
SvenKlaassen Mar 4, 2025
09a7ccd
update code snippits
SvenKlaassen Mar 4, 2025
39b545d
clear notebook
SvenKlaassen Mar 4, 2025
64433f8
Merge pull request #220 from DoubleML/s-irm-apo-example
SvenKlaassen Mar 4, 2025
2374d36
Merge branch 'dev' into s-update-docs
SvenKlaassen Mar 4, 2025
8425ba1
Merge pull request #221 from DoubleML/s-update-docs
SvenKlaassen Mar 4, 2025
7edd1c4
update notebook
SvenKlaassen Mar 6, 2025
e1f8258
update nb
SvenKlaassen Mar 6, 2025
d65c76d
add eventstudy weights
SvenKlaassen Mar 10, 2025
4324b82
add simple panel example
SvenKlaassen Mar 10, 2025
802c082
add jitter
SvenKlaassen Mar 10, 2025
144a30c
update nbs
SvenKlaassen Mar 12, 2025
adf9cbe
update nbs
SvenKlaassen Mar 17, 2025
1b82384
Merge branch 'dev' into s-did-example
SvenKlaassen Mar 19, 2025
cd24a63
add dgp and nbs
SvenKlaassen Mar 19, 2025
8e03430
fix import from did dataset
SvenKlaassen Mar 19, 2025
93c9fb6
add titles to panel examples
SvenKlaassen Mar 19, 2025
fda619c
add did multi example to models
SvenKlaassen Apr 4, 2025
6d90613
add did literature section
SvenKlaassen Apr 8, 2025
ec7cf9e
add new section for did multiple periods
SvenKlaassen Apr 8, 2025
36e9b2b
restructure guide model section
SvenKlaassen Apr 9, 2025
858077a
restructure guide models
SvenKlaassen Apr 9, 2025
2a381a0
start with SSM example in R
PhilippBach Apr 9, 2025
4c112c1
continue example, prepare remaining code blocks
PhilippBach Apr 9, 2025
52f79fb
change intermediate model suffix
SvenKlaassen Apr 9, 2025
c3ccd41
update did guide
SvenKlaassen Apr 9, 2025
bf724ca
add code for SSM in R
PhilippBach Apr 9, 2025
a0476dc
add example for SSMs in R
PhilippBach Apr 9, 2025
d29cb40
add contraol group
SvenKlaassen Apr 9, 2025
9dbe6dc
add learners
PhilippBach Apr 10, 2025
67fb4e8
fix typo
SvenKlaassen Apr 10, 2025
b9194ac
locate venv in workspace
SvenKlaassen Apr 10, 2025
5e2f088
add ipykernel
SvenKlaassen Apr 10, 2025
3847a1f
update black formatter
SvenKlaassen Apr 10, 2025
e301bd7
add non root user
SvenKlaassen Apr 10, 2025
be17303
fix vscode user
SvenKlaassen Apr 10, 2025
e8700b2
use density plot instead of histogram
PhilippBach Apr 10, 2025
4a8a81e
update vscode user
SvenKlaassen Apr 10, 2025
db09ade
update for existing USER_UID
SvenKlaassen Apr 10, 2025
eb5e9d0
fix vscode user
SvenKlaassen Apr 10, 2025
3cb95c0
set user to ubuntu
SvenKlaassen Apr 10, 2025
9f269c3
update default interpreter path
SvenKlaassen Apr 10, 2025
c4194e4
update interpreter path
SvenKlaassen Apr 10, 2025
e334b58
Merge branch 'update-devcontainer' of https://github.com/DoubleML/dou…
SvenKlaassen Apr 10, 2025
3169e17
update mount configuration
SvenKlaassen Apr 10, 2025
ec1ace0
fix typo
SvenKlaassen Apr 10, 2025
52f062d
Merge branch 'update-devcontainer' into s-did-example
SvenKlaassen Apr 10, 2025
8b399e8
prep release notes
PhilippBach Apr 10, 2025
06fb8a4
update did setup
SvenKlaassen Apr 11, 2025
67bd650
update nb to np.inf
SvenKlaassen Apr 11, 2025
3cb4125
restructure plm scores
SvenKlaassen Apr 11, 2025
d15e8f4
restructure irm scores
SvenKlaassen Apr 11, 2025
1260414
restructure did scores
SvenKlaassen Apr 11, 2025
54da4b4
restructure ssm scores
SvenKlaassen Apr 11, 2025
8f22f5f
update warning for two period did
SvenKlaassen Apr 11, 2025
bd3e1a4
add notation warning
SvenKlaassen Apr 11, 2025
207bdb6
restructure did score
SvenKlaassen Apr 11, 2025
ba58660
update did model section
SvenKlaassen Apr 11, 2025
cb79868
Merge pull request #226 from DoubleML/p-release-r-1.0.2
PhilippBach Apr 15, 2025
a92851f
Merge branch 'dev' of https://github.com/DoubleML/doubleml-docs into …
PhilippBach Apr 15, 2025
5795a07
Merge pull request #223 from DoubleML/p-docu-ssm
PhilippBach Apr 15, 2025
91f2f8e
adjust for anticipation
SvenKlaassen Apr 15, 2025
231ed3a
did pa documentation
SvenKlaassen Apr 15, 2025
160d80c
update data backend section
SvenKlaassen Apr 15, 2025
e84a0b4
add score version
SvenKlaassen Apr 16, 2025
bd44ca2
update pa doc
SvenKlaassen Apr 16, 2025
c62320a
remove copy
SvenKlaassen Apr 22, 2025
0f1f3f6
restructure sensitivity irm and plm
SvenKlaassen Apr 22, 2025
2c9d2d0
restructure did sensitivity
SvenKlaassen Apr 22, 2025
7d7438a
fix typo in cond. independence for SSM (nonignorable), spotted by L. …
PhilippBach Apr 22, 2025
4cf7ca1
fix score note
SvenKlaassen Apr 22, 2025
89a18ab
update sensitivity did guide
SvenKlaassen Apr 22, 2025
f635fb4
simplify note
SvenKlaassen Apr 22, 2025
49eeabe
clarify sensitivity elements
SvenKlaassen Apr 22, 2025
943a04b
fix reference
SvenKlaassen Apr 22, 2025
08a6e49
update panel data description
SvenKlaassen Apr 22, 2025
36710bf
update aggregation
SvenKlaassen Apr 22, 2025
d6ee8d3
Merge pull request #228 from DoubleML/p-fix-ssm
SvenKlaassen Apr 23, 2025
29599b7
update simple notebook
SvenKlaassen Apr 23, 2025
1b2b462
update did notebook
SvenKlaassen Apr 23, 2025
15d6fde
restructure model api
SvenKlaassen Apr 23, 2025
5619b96
update data pi
SvenKlaassen Apr 23, 2025
dc3d1ec
fix index did model
SvenKlaassen Apr 23, 2025
444d243
update datasets api
SvenKlaassen Apr 23, 2025
25ad188
restructure example gallery (separate did section)
SvenKlaassen Apr 23, 2025
8b8ff1a
update gallery links
SvenKlaassen Apr 23, 2025
09ac4fe
Merge pull request #225 from DoubleML/update-devcontainer
SvenKlaassen Apr 23, 2025
f1f055a
add learners
SvenKlaassen Apr 23, 2025
cb6df59
update notebook
SvenKlaassen Apr 23, 2025
b199976
fix typos and add thumbnail cell tag
SvenKlaassen Apr 24, 2025
d1258e1
create extended example nb
SvenKlaassen Apr 24, 2025
6187092
Merge branch 'dev' into s-did-example
SvenKlaassen Apr 24, 2025
c87a617
add R example to ssm models
SvenKlaassen Apr 24, 2025
1672265
clean nbs
SvenKlaassen Apr 24, 2025
76c7a27
instead of dockerfile reference image
SvenKlaassen Apr 25, 2025
b43b70a
add guide to build and push image locally
SvenKlaassen Apr 25, 2025
2bc5e41
update guide to use docker container
SvenKlaassen Apr 25, 2025
cc3814f
update guides
SvenKlaassen Apr 25, 2025
9f9b849
fix typo
SvenKlaassen Apr 25, 2025
3c74648
use prebuild image to build documentation
SvenKlaassen Apr 25, 2025
fafadff
Revert "use prebuild image to build documentation"
SvenKlaassen Apr 25, 2025
11558ef
Merge pull request #224 from DoubleML/s-did-example
SvenKlaassen Apr 25, 2025
d4cab62
add execute argument to guide
SvenKlaassen Apr 25, 2025
ac2d34b
fix cond. independence under nonignorable nonresponse
PhilippBach Apr 25, 2025
599d27f
fix broken links
SvenKlaassen Apr 28, 2025
35d8d56
fix apo api links
SvenKlaassen Apr 28, 2025
c996e27
Merge pull request #229 from DoubleML/fix-ssm-2
SvenKlaassen Apr 28, 2025
405ea2f
Merge branch 'dev' into s-update-docker
SvenKlaassen Apr 28, 2025
a8cb48f
Merge pull request #230 from DoubleML/s-update-docker
SvenKlaassen Apr 28, 2025
2562977
add nb
esmucler May 7, 2025
b426d9d
add refs
esmucler May 8, 2025
84bfda6
remove malte from maintainers
PhilippBach May 12, 2025
0fb819c
Merge branch 'dev' of https://github.com/DoubleML/doubleml-docs into …
PhilippBach May 13, 2025
60c34c9
add data demo notebook
PhilippBach May 14, 2025
d62e926
rename method, set all seeds
esmucler May 14, 2025
2d2f521
fix broken links (currently refering to dev verison)
SvenKlaassen May 14, 2025
2a809a2
change structure to report small simulation
esmucler May 14, 2025
027e222
add refs section
esmucler May 14, 2025
6da0c07
add example to gallery
SvenKlaassen May 15, 2025
d7fab88
update learner and small format changes
SvenKlaassen May 15, 2025
ce64e5c
add basic thumbnail of robust iv example
SvenKlaassen May 15, 2025
7ca5563
title case
SvenKlaassen May 15, 2025
774f821
Merge pull request #234 from esmucler/docs_unifconfint
SvenKlaassen May 15, 2025
d176d2d
add example to gallery
SvenKlaassen May 19, 2025
5b2502f
move old examples to sandbox
SvenKlaassen May 19, 2025
0bda21f
more detail on comparison to callaway and sant'anna
SvenKlaassen May 19, 2025
432cf5c
add thumbnails
PhilippBach May 19, 2025
73ac4ff
Merge pull request #233 from DoubleML/p-did-example
SvenKlaassen May 19, 2025
0b3b5fe
Merge pull request #232 from DoubleML/fix-citation
SvenKlaassen May 21, 2025
479f1f4
update aggregation of ses
SvenKlaassen May 21, 2025
c36d797
fix typo
PhilippBach May 22, 2025
17156f6
add bootstrap call for aggregated effects
PhilippBach May 22, 2025
49ad7f1
clear output
SvenKlaassen May 22, 2025
74fa00f
Merge pull request #236 from DoubleML/s-update-agg-se
SvenKlaassen May 22, 2025
ffab9ed
start release notes for 0.10.0
SvenKlaassen May 22, 2025
536e2ba
add pyreadr dependency
SvenKlaassen May 22, 2025
d30089f
include updated DAGs in IV notebooks
PhilippBach May 22, 2025
85b4cf0
Merge pull request #237 from DoubleML/p-fix-did-notebook
SvenKlaassen May 22, 2025
65b3811
Merge pull request #238 from DoubleML/p-iv-dags
SvenKlaassen May 22, 2025
e41f79b
fix sandbox header
SvenKlaassen May 23, 2025
7bc50fc
add release notes
SvenKlaassen May 23, 2025
0dc02d0
Merge pull request #239 from DoubleML/s-release-notes
SvenKlaassen May 23, 2025
480ea59
remove todo
SvenKlaassen May 25, 2025
993b8e6
add more explanation to plr
SvenKlaassen May 25, 2025
5c2890c
allow warnings
SvenKlaassen May 26, 2025
291d6a2
add sklean<1.6 to disable warnings
SvenKlaassen May 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 32 additions & 28 deletions .devcontainer/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,12 @@ RUN apt-get update && \
apt-transport-https \
ca-certificates \
git \
cmake

# Install locale packages
RUN apt-get update && \
apt-get install -y locales && \
cmake \
locales && \
locale-gen en_US.UTF-8 && \
update-locale LANG=en_US.UTF-8
update-locale LANG=en_US.UTF-8 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Set environment variables for locale
ENV LANG=en_US.UTF-8
Expand All @@ -31,37 +30,43 @@ ENV LC_ALL=en_US.UTF-8
RUN add-apt-repository ppa:deadsnakes/ppa && \
apt-get update && \
apt-get install -y python3.12 python3.12-venv python3.12-dev python3-pip python3-full && \
apt-get clean && rm -rf /var/lib/apt/lists/*

# Set Python 3.12 as the default for both python and python3
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Add R repository and install R
RUN wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | tee /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc && \
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu noble-cran40/' && \
apt-get update && \
apt-get install -y r-base r-base-dev zlib1g-dev libicu-dev pandoc make libcurl4-openssl-dev libssl-dev
apt-get install -y r-base r-base-dev zlib1g-dev libicu-dev pandoc make libcurl4-openssl-dev libssl-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*

# Install Python packages
COPY requirements.txt /tmp/requirements.txt
RUN python -m venv /opt/venv && \
/opt/venv/bin/python -m pip install --upgrade pip && \
/opt/venv/bin/pip install -r /tmp/requirements.txt

# Set the virtual environment as the default Python environment
ENV PATH="/opt/venv/bin:$PATH"
# Reuse existing 'ubuntu' user (UID 1000)
ARG USERNAME=ubuntu

# Check out the repo containing the Python package DoubleML (dev)
RUN git clone https://github.com/DoubleML/doubleml-for-py.git /doubleml-for-py
WORKDIR /doubleml-for-py
RUN /opt/venv/bin/pip uninstall -y DoubleML && \
/opt/venv/bin/pip install -e .[rdd]
RUN mkdir -p /workspace && \
chown -R $USERNAME:$USERNAME /workspace

# Create a directory for R user libraries and set the default R user library path
RUN mkdir -p /usr/local/lib/R/site-library
# Create a directory for R user libraries
RUN mkdir -p /usr/local/lib/R/site-library && \
chown -R $USERNAME:$USERNAME /usr/local/lib/R/site-library
ENV R_LIBS_USER=/usr/local/lib/R/site-library

# Switch to non-root user for remaining operations
USER $USERNAME

# Install Python packages in the virtual environment
COPY --chown=$USERNAME:$USERNAME requirements.txt /tmp/requirements.txt
RUN python -m venv /home/$USERNAME/.venv && \
/home/$USERNAME/.venv/bin/python -m pip install --upgrade pip && \
/home/$USERNAME/.venv/bin/pip install --no-cache-dir -r /tmp/requirements.txt && \
/home/$USERNAME/.venv/bin/pip install --no-cache-dir git+https://github.com/DoubleML/doubleml-for-py.git@main#egg=DoubleML[rdd]

# Set the virtual environment as the default Python environment
ENV PATH="/home/$USERNAME/.venv/bin:$PATH"

# Install R packages and Jupyter kernel
RUN Rscript -e "install.packages('remotes')" && \
Rscript -e "remotes::install_github('DoubleML/doubleml-for-r', dependencies = TRUE)" && \
Expand All @@ -70,4 +75,3 @@ RUN Rscript -e "install.packages('remotes')" && \

# Set the working directory
WORKDIR /workspace

134 changes: 134 additions & 0 deletions .devcontainer/build_image_guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
# Building and Publishing the Docker Image

This guide shows how to build the DoubleML documentation development container locally and publish it to Docker Hub.

## Prerequisites

- [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed and running
- Access to the `svenklaassen` [Docker Hub](https://www.docker.com/products/docker-hub/) account
- [doubleml-docs](https://github.com/DoubleML/doubleml-docs) repository cloned to your local machine

## Step 1: Login to Docker Hub

Open a terminal and login to Docker Hub:

```bash
docker login
```

Enter the Docker Hub username (`svenklaassen`) and password (or token) when prompted.

## Step 2: Build the Docker Image

Navigate to your project root directory and build the image (using the `latest`-tag):

```bash
docker build -t svenklaassen/doubleml-docs:latest -f .devcontainer/Dockerfile.dev .
```

To force a complete rebuild without using cache:

```bash
docker build --no-cache -t svenklaassen/doubleml-docs:latest -f .devcontainer/Dockerfile.dev .
```

## Step 3 (Optional): Verify the image

### Open the repository in VS Code

1. Ensure your `.devcontainer/devcontainer.json` is configured to use your local image:

```json
"image": "svenklaassen/doubleml-docs:latest"
```
Note: The `.devcontainer/devcontainer.json` file is configured to use the pre-built image. If you want to build the container from scratch, uncomment the `dockerFile` and `context` lines and comment out the `image` line.

2. Open the `doubleml-docs` repository in VS Code:

```bash
code /path/to/doubleml-docs
```

3. Open the Command Palette (`Ctrl+Shift+P`) and select `Dev Containers: Reopen in Container`.
VS Code will use your locally built image.

### Build the documentation

Once inside the container, verify that you can successfully build the documentation:

1. Open a terminal in VS Code (`Terminal > New Terminal`)

2. Build the documentation:

```bash
cd doc
make html
```

3. Check the output for any errors or warnings

4. View the built documentation by opening the output files:

```bash
# On Windows
explorer.exe _build/html

# On Linux
xdg-open _build/html

# On macOS
open _build/html
```

If the documentation builds successfully and looks correct, your Docker image is working properly and ready to be pushed to Docker Hub.

## Step 4: Push to Docker Hub

Push your built image to Docker Hub:

```bash
docker push svenklaassen/doubleml-docs:latest
```

## Step 5: Using the Published Image

After publishing, there are two ways to use the image:

### Option 1: Manual Container Management
Pull and run the container manually:

```bash
docker pull svenklaassen/doubleml-docs:latest
# Then run commands to create a container from this image
```

### Option 2: VS Code Integration (Recommended)
Simply reference the image in your `devcontainer.json` file:

```json
"image": "svenklaassen/doubleml-docs:latest"
```

VS Code will automatically pull the image when opening the project in a container - no separate `docker pull` command needed.

## Troubleshooting

### Clear Docker Cache

If you're experiencing issues with cached layers:

```bash
# Remove build cache
docker builder prune

# For a more thorough cleanup
docker system prune -a
```

### Check Image Size

To verify the image size before pushing:

```bash
docker images svenklaassen/doubleml-docs
```
24 changes: 15 additions & 9 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"name": "DoubleML Documentation Development",
"dockerFile": "Dockerfile.dev", // Path to your Dockerfile
"context": "..", // Context for the build (root of your project)
"image": "svenklaassen/doubleml-docs:latest",
// "dockerFile": "Dockerfile.dev",
// "context": "..",
"workspaceFolder": "/workspace", // Folder inside the container for your project
// Customizations for VS Code
"customizations": {
Expand All @@ -12,23 +13,27 @@
"njpwerner.autodocstring", // Optional: Auto-generate docstrings
"ms-python.black-formatter", // Optional: Black formatter
"streetsidesoftware.code-spell-checker", // Optional: Spell checker
"github.copilot" // Add GitHub Copilot extension
"github.copilot", // Add GitHub Copilot extension
"GitHub.github-vscode-theme", // GitHub theme
"github.vscode-github-actions" // GitHub Actions extension
"github.vscode-github-actions", // GitHub Actions extension
"ms-toolsai.jupyter", // Jupyter extension
"charliermarsh.ruff" // Ruff extension
],
"settings": {
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python", // Poetry virtual environment path
"python.defaultInterpreterPath": "/home/ubuntu/.venv/bin/python",
"editor.formatOnSave": true, // Auto-format code when saving
"editor.codeActionsOnSave": {
"source.organizeImports": true // Auto-organize imports on save
},
"python.linting.enabled": true, // Enable linting
"python.linting.flake8Enabled": false, // Disable Flake8 for linting
"python.linting.ruffEnabled": true, // Enable Ruff for linting
"python.formatting.provider": "black", // Use Black for formatting
"python.testing.pytestEnabled": false, // Enable Pytest for testing
"python.formatting.provider": "none",
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true
},
"python.testing.pytestEnabled": true, // Enable Pytest for testing
"python.testing.pytestArgs": [],
"python.testing.unittestEnabled": false,
"files.exclude": {
Expand All @@ -40,7 +45,8 @@
}
},
"mounts": [
"source=${localWorkspaceFolder},target=/workspace,type=bind" // Mount your local workspace into the container
"source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached" // Mount your local workspace into the container
],
"remoteUser": "root" // Set the user inside the container
"remoteUser": "ubuntu",
"postCreateCommand": "id && ls -la /workspace && echo 'Container is ready!'"
}
83 changes: 83 additions & 0 deletions .devcontainer/docker_guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Build Documentation with Development Container

This guide shows how to use WSL2 (Windows Subsystem for Linux), Docker Desktop, Visual Studio Code (VS Code), and how to work with Development Containers in VS Code on a Windows machine.

Requirements:
- [VS Code](https://code.visualstudio.com/)
- [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install)
- [Docker Desktop](https://docs.docker.com/desktop/setup/install/windows-install/)

## Step 1: Verify installations & Setup

You can verify the installations in a terminal:

```bash
code --version
wsl --version
docker --version
```

### Configure Docker to Use WSL2

See [Docker Desktop Documentation](https://docs.docker.com/desktop/features/wsl/#turn-on-docker-desktop-wsl-2).
1. Open Docker Desktop.
2. Go to **Settings > General** and make sure **Use the WSL 2 based engine** is checked.
3. Under **Settings > Resources > WSL Integration**, ensure that your desired Linux distribution(s) are selected for integration with Docker.

### Install Extensions

1. Open Visual Studio Code.
2. Press `Ctrl+Shift+X` to open the Extensions view.
3. Search and install (includes WSL and Dev Containers Extensions):
- [Remote Development Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)

Helpful VS Code Documentations:
- [Developing in WSL](https://code.visualstudio.com/docs/remote/wsl)
- [Developing inside a Container](https://code.visualstudio.com/docs/devcontainers/containers)


## Step 2: Open the Development Container (Using Pre-built Image)

For faster setup, we'll use a pre-built Docker image:

1. Open the `doubleml-docs` repository in VS Code:

```bash
code /path/to/doubleml-docs
```

2. Open the Command Palette (`Ctrl+Shift+P`).
3. Type `Dev Containers: Reopen in Container`.

VS Code will pull the `svenklaassen/doubleml-docs:latest` image (if needed) based on `devcontainer.json` and open the project in the container.<br>
This approach is much faster than building the container from scratch. VS Code automatically downloads the image from Docker Hub if it's not already on your system.


## Step 3: Build the documentation

1. Open a terminal in VS Code (`Terminal > New Terminal`)

2. Build the documentation:

```bash
cd doc
make html
```

To build without notebook examples:
```bash
make html NBSPHINX_EXECUTE=never
```

3. View the built documentation by opening the output files:

```bash
# On Windows
explorer.exe _build/html

# On Linux
xdg-open _build/html

# On macOS
open _build/html
```
Loading