Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
37fda40
Bump github/codeql-action from 4.31.6 to 4.31.7
dependabot[bot] Dec 8, 2025
d559d02
Bump actions/checkout from 6.0.0 to 6.0.1
dependabot[bot] Dec 8, 2025
f5861be
Merge pull request #1031 from ocaml/dependabot/github_actions/actions…
smorimoto Dec 8, 2025
bda7187
Merge pull request #1030 from ocaml/dependabot/github_actions/github/…
smorimoto Dec 8, 2025
ad50e32
Bump github/codeql-action from 4.31.7 to 4.31.8
dependabot[bot] Dec 15, 2025
3703213
Merge pull request #1032 from ocaml/dependabot/github_actions/github/…
smorimoto Dec 15, 2025
587550e
Update npm deps
smorimoto Dec 15, 2025
44618e9
Remove ubuntu-slim from test
smorimoto Dec 15, 2025
4c1df91
Prepare 3.4.7
smorimoto Dec 15, 2025
0162be1
Update npm deps
smorimoto Dec 21, 2025
9ad7856
Bump github/codeql-action from 4.31.8 to 4.31.9
dependabot[bot] Dec 21, 2025
a469f02
Prepare 3.4.8
smorimoto Dec 21, 2025
f6bf49a
Merge pull request #1036 from ocaml/dependabot/github_actions/github/…
smorimoto Dec 21, 2025
dec6499
Merge pull request #1037 from ocaml/prepare-3.4.8
smorimoto Dec 21, 2025
2585fdc
Use `@typescript/native-preview`!
smorimoto Dec 25, 2025
093d30c
Bump jdx/mise-action from 3.5.1 to 3.6.0
dependabot[bot] Jan 19, 2026
1a8d07d
Bump github/codeql-action from 4.31.9 to 4.31.10
dependabot[bot] Jan 19, 2026
2661b27
Merge pull request #1040 from ocaml/dependabot/github_actions/github/…
smorimoto Jan 19, 2026
d842468
Merge pull request #1039 from ocaml/dependabot/github_actions/jdx/mis…
smorimoto Jan 19, 2026
9a87b2b
Bump github/codeql-action from 4.31.10 to 4.31.11
dependabot[bot] Jan 26, 2026
91eb3a0
Bump jdx/mise-action from 3.6.0 to 3.6.1
dependabot[bot] Jan 26, 2026
f9f4fb0
Bump actions/checkout from 6.0.1 to 6.0.2
dependabot[bot] Jan 26, 2026
bcc9b40
Merge pull request #1043 from ocaml/dependabot/github_actions/actions…
smorimoto Jan 26, 2026
56ea5fe
Merge pull request #1042 from ocaml/dependabot/github_actions/jdx/mis…
smorimoto Jan 26, 2026
b20fe85
Merge pull request #1041 from ocaml/dependabot/github_actions/github/…
smorimoto Jan 26, 2026
9d23712
Bump github/codeql-action from 4.31.11 to 4.32.0
dependabot[bot] Feb 2, 2026
ba12614
Merge pull request #1045 from ocaml/dependabot/github_actions/github/…
smorimoto Feb 2, 2026
fafb7d6
Bump github/codeql-action from 4.32.0 to 4.32.2
dependabot[bot] Feb 9, 2026
b359106
Merge pull request #1046 from ocaml/dependabot/github_actions/github/…
smorimoto Feb 9, 2026
4338c3d
Bump github/codeql-action from 4.32.2 to 4.32.3
dependabot[bot] Feb 16, 2026
d404c5d
Merge pull request #1049 from ocaml/dependabot/github_actions/github/…
smorimoto Feb 16, 2026
2d33ee2
Bump github/codeql-action from 4.32.3 to 4.32.6
dependabot[bot] Mar 9, 2026
204ba8b
Bump actions/dependency-review-action from 4.8.2 to 4.9.0
dependabot[bot] Mar 9, 2026
2017f4a
Bump jdx/mise-action from 3.6.1 to 3.6.3
dependabot[bot] Mar 9, 2026
8f89071
Merge pull request #1061 from ocaml/dependabot/github_actions/jdx/mis…
smorimoto Mar 9, 2026
2e3c7e4
Merge pull request #1060 from ocaml/dependabot/github_actions/actions…
smorimoto Mar 9, 2026
5479eb1
Merge pull request #1059 from ocaml/dependabot/github_actions/github/…
smorimoto Mar 9, 2026
7d9c1fd
Bump jdx/mise-action from 3.6.3 to 4.0.0
dependabot[bot] Mar 16, 2026
ba1238f
Merge pull request #1062 from ocaml/dependabot/github_actions/jdx/mis…
smorimoto Mar 16, 2026
0ef5c54
Bump npm dependencies
smorimoto Mar 20, 2026
0e534a0
Fix lint and typecheck failures
smorimoto Mar 20, 2026
79da8a3
Merge pull request #1065 from ocaml/bump-npm-dependencies
smorimoto Mar 20, 2026
1cde8e6
Bump CI and docs to OCaml 5.4
smorimoto Mar 20, 2026
06fe109
Merge pull request #1066 from ocaml/bump-ocaml-5.4-ci-docs
smorimoto Mar 20, 2026
dd08591
Switch to opam's --cygwin-internal-install to avoid cygwin.com 403 er…
smorimoto Mar 20, 2026
6a1f692
Remove fixFstab() as opam's internal Cygwin already sets noacl
smorimoto Mar 20, 2026
7c50bce
Merge pull request #1067 from ocaml/switch-to-cygwin-internal-install
smorimoto Mar 20, 2026
bc12318
Clarify supported version syntax in README
smorimoto Mar 20, 2026
d66b9d1
Merge pull request #1068 from ocaml/clarify-version-syntax-docs
smorimoto Mar 20, 2026
fb601cc
Stop polluting PATH with Cygwin bin directory on Windows
smorimoto Mar 20, 2026
330b4e9
Merge pull request #1069 from ocaml/stop-polluting-path-with-cygwin
smorimoto Mar 20, 2026
d2e6ef0
Refactor setup-ocaml source for maintainability
smorimoto Mar 21, 2026
9d1dba2
Merge pull request #1070 from ocaml/refactor-setup-ocaml
smorimoto Mar 21, 2026
0197a03
Add MSYS2 support as an alternative to Cygwin on Windows
smorimoto Mar 21, 2026
64d6779
Remove --cygwin-extra-packages from opam init
smorimoto Mar 21, 2026
8c3dea3
Pre-install GCC via pacman for MSYS2 to avoid cache-hit recompilation
smorimoto Mar 21, 2026
4fe52be
Merge pull request #1071 from ocaml/add-msys2-support
smorimoto Mar 21, 2026
e38b547
Add MSVC compiler support on Windows
smorimoto Mar 21, 2026
c0509fc
Allow ssl installation failure on MSVC
smorimoto Mar 21, 2026
6bbf4c5
Merge pull request #1072 from ocaml/add-msvc-support
smorimoto Mar 21, 2026
74f3c8e
Improve action input descriptions and reorder consistently
smorimoto Mar 21, 2026
6abb143
Merge pull request #1074 from ocaml/improve-action-input-descriptions
smorimoto Mar 21, 2026
06158d5
Support pre-release compiler version resolution
smorimoto Mar 22, 2026
e0b17bc
Merge pull request #1075 from ocaml/support-prerelease-compiler-versions
smorimoto Mar 22, 2026
a74b052
Adopt ES2025 Iterator Helpers where they improve readability
smorimoto Mar 22, 2026
e99f0d9
Include Visual Studio version in MSVC opam cache key
smorimoto Mar 22, 2026
9eb3ea9
Merge pull request #1076 from ocaml/use-iterator-helpers
smorimoto Mar 22, 2026
f83e00d
Merge pull request #1077 from ocaml/include-msvc-version-in-cache-key
smorimoto Mar 22, 2026
bf2a6fe
Refine Windows columns in OCaml Compiler Support Matrix
smorimoto Mar 22, 2026
c619ef2
Merge pull request #1078 from ocaml/update-windows-support-matrix
smorimoto Mar 22, 2026
2892def
Replace Biome, esbuild, and Turborepo with Vite Plus
smorimoto Mar 22, 2026
22a432e
Merge pull request #1079 from ocaml/replace-toolchain-with-vite-plus
smorimoto Mar 22, 2026
0bf3a83
Remove CodeQL and Dependency Review workflows
smorimoto Mar 22, 2026
6f29528
Merge pull request #1080 from ocaml/remove-codeql-and-dependency-review
smorimoto Mar 22, 2026
adffa1e
Split test job into per-platform jobs and reorder workflow keys
smorimoto Mar 22, 2026
26a76de
Merge pull request #1081 from ocaml/split-test-jobs-by-platform
smorimoto Mar 22, 2026
f3eb445
Bump yaml from 2.8.2 to 2.8.3
smorimoto Mar 22, 2026
166c79c
Bump jdx/mise-action from 4.0.0 to 4.0.1
dependabot[bot] Mar 23, 2026
fb8d27a
Merge pull request #1082 from ocaml/dependabot/github_actions/jdx/mis…
smorimoto Mar 23, 2026
b3d0482
Prepare 3.5.0
smorimoto Mar 23, 2026
6feb50d
Merge pull request #1083 from ocaml/prepare-3.5.0
smorimoto Mar 23, 2026
e6aab61
Add GitHub release creation to release script
smorimoto Mar 23, 2026
b4d2b95
Restore Cygwin bin on PATH for cygwin environment only
smorimoto Mar 23, 2026
bfb462f
Merge pull request #1085 from ocaml/fix-cygwin-path-append
smorimoto Mar 23, 2026
d2bfc74
Prepare 3.5.1
smorimoto Mar 23, 2026
44184b0
Merge pull request #1086 from ocaml/prepare-3.5.1
smorimoto Mar 23, 2026
118f23b
Bump picomatch from 4.0.3 to 4.0.4
dependabot[bot] Mar 26, 2026
a4f5f3a
Merge pull request #1087 from ocaml/dependabot/npm_and_yarn/picomatch…
smorimoto Mar 26, 2026
08893b9
Remove unreachable FreeBSD and OpenBSD platform detection
smorimoto Mar 27, 2026
55850d2
Merge pull request #1088 from ocaml/remove-unreachable-bsd-platform-d…
smorimoto Mar 27, 2026
cd59ee3
Add example for using a custom OCaml compiler
smorimoto Mar 28, 2026
6e90111
Merge pull request #1090 from ocaml/add-custom-compiler-example
smorimoto Mar 28, 2026
4dbfc7b
Add `working-directory` input to lint-fmt and lint-doc actions
smorimoto Mar 28, 2026
3ad7c28
Merge pull request #1091 from ocaml/add-working-directory-input-to-li…
smorimoto Mar 28, 2026
9dba290
Add caching documentation to README and remove `cache-prefix` from in…
smorimoto Mar 28, 2026
86fc0a9
Simplify cache clearing example to only show gh cache delete --all
smorimoto Mar 28, 2026
4721fef
Merge pull request #1092 from ocaml/add-caching-documentation
smorimoto Mar 28, 2026
5a0847a
Upgrade typescript to 6.0.2 and vite-plus to 0.1.14
smorimoto Mar 28, 2026
924fcfc
Add opam lock file usage example to EXAMPLES.md
smorimoto Mar 28, 2026
f830b44
Merge pull request #1093 from ocaml/add-opam-lock-file-example
smorimoto Mar 28, 2026
79bba77
Improve action descriptions for sub-actions
smorimoto Mar 29, 2026
3dc17bc
Merge pull request #1095 from ocaml/improve-action-descriptions
smorimoto Mar 29, 2026
a322c14
Install opam base packages on MSYS2
smorimoto Mar 30, 2026
d10ec95
Merge pull request #1096 from ocaml/install-msys2-base-packages
smorimoto Mar 30, 2026
641c400
Prepare 3.6.0
smorimoto Mar 30, 2026
fefd9c2
Merge pull request #1097 from ocaml/prepare-3.6.0
smorimoto Mar 30, 2026
b14c9ed
Fall back to an older opam release when the latest lacks binaries
smorimoto Apr 16, 2026
2ad4989
Merge pull request #1100 from ocaml/fallback-opam-release-with-binaries
smorimoto Apr 16, 2026
7df045d
Prepare 3.6.1
smorimoto Apr 16, 2026
e32b06a
Merge pull request #1101 from ocaml/prepare-3.6.1
smorimoto Apr 16, 2026
e6c1419
Update npm deps
smorimoto Jun 1, 2026
3716edc
Bump actions/checkout from 6.0.2 to 6.0.3
dependabot[bot] Jun 8, 2026
b48523c
Bump jdx/mise-action from 4.0.1 to 4.1.0
dependabot[bot] Jun 8, 2026
ceb335a
Merge pull request #1105 from ocaml/dependabot/github_actions/jdx/mis…
smorimoto Jun 14, 2026
8afc2df
Merge pull request #1104 from ocaml/dependabot/github_actions/actions…
smorimoto Jun 14, 2026
eddd283
Merge upstream/master into fork (sync for PR #30)
yosefAlsuhaibani Jun 16, 2026
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
10 changes: 5 additions & 5 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@

# the linguist-vendored/linguist-generated attribute suppresses changes being
# displayed by default in pull requests.
/analysis/dist/*.cjs -diff linguist-generated
/analysis/dist/*.mjs -diff linguist-generated
/analysis/dist/*.txt -diff linguist-generated
/dist/**/*.cjs -diff linguist-generated
/dist/**/*.mjs -diff linguist-generated
/dist/**/*.txt -diff linguist-generated
/lint-doc/dist/*.cjs -diff linguist-generated
/lint-doc/dist/*.mjs -diff linguist-generated
/lint-doc/dist/*.txt -diff linguist-generated
/lint-fmt/dist/*.cjs -diff linguist-generated
/lint-fmt/dist/*.mjs -diff linguist-generated
/lint-fmt/dist/*.txt -diff linguist-generated
/lint-opam/dist/*.cjs -diff linguist-generated
/lint-opam/dist/*.mjs -diff linguist-generated
/lint-opam/dist/*.txt -diff linguist-generated
10 changes: 0 additions & 10 deletions .github/codeql/codeql-configuration.yml

This file was deleted.

39 changes: 0 additions & 39 deletions .github/workflows/codeql.yml

This file was deleted.

17 changes: 0 additions & 17 deletions .github/workflows/dependency-review.yml

This file was deleted.

86 changes: 56 additions & 30 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
pull_request:
push:
schedule:
# Prime the caches every Monday
- cron: 0 1 * * MON

permissions: read-all
Expand All @@ -15,64 +14,91 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout tree
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Set-up Mise
uses: jdx/mise-action@146a28175021df8ca24f8ee1828cc2a60f980bd5 # v3.5.1
uses: jdx/mise-action@dba19683ed58901619b14f395a24841710cb4925 # v4.1.0
with:
cache: false
- run: yarn install --immutable
- if: always()
run: yarn lint
- if: always()
run: yarn typecheck
- name: Ensure dist directory is up-to-date
if: always()
- if: always()
name: Ensure dist directory is up-to-date
run: yarn build && git diff --exit-code --ignore-cr-at-eol

test:
name: Test
ubuntu:
name: Ubuntu
needs: hygiene
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os:
- ubuntu-slim
- ubuntu-latest
- macos-latest
- windows-latest
ocaml-compiler:
- "5.3"
allow-prerelease-opam:
- true
- false
include:
- os: ubuntu-latest
ocaml-compiler: ocaml-variants.5.3.0+options,ocaml-option-flambda
allow-prerelease-opam: false
- os: ubuntu-latest
ocaml-compiler: "5.3"
allow-prerelease-opam: true
runs-on: ${{ matrix.os }}
fail-fast: false
steps:
- name: Checkout tree
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
- name: Set-up OCaml ${{ matrix.ocaml-compiler }}
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Set-up OCaml 5.4
uses: ./
with:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
ocaml-compiler: "5.4"
allow-prerelease-opam: ${{ matrix.allow-prerelease-opam }}
- run: opam install ssl

test-container:
name: Test on a container in a GitHub runner
macos:
name: macOS
needs: hygiene
runs-on: macos-latest
steps:
- name: Checkout tree
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Set-up OCaml 5.4
uses: ./
with:
ocaml-compiler: "5.4"
- run: opam install ssl

windows:
name: Windows
needs: hygiene
runs-on: windows-latest
strategy:
matrix:
windows-compiler:
- mingw
- msvc
windows-environment:
- cygwin
- msys2
fail-fast: false
steps:
- name: Checkout tree
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Set-up OCaml 5.4
uses: ./
with:
ocaml-compiler: "5.4"
windows-compiler: ${{ matrix.windows-compiler }}
windows-environment: ${{ matrix.windows-environment }}
- run: opam install ssl
continue-on-error: ${{ matrix.windows-compiler == 'msvc' }}

container:
name: Container
needs: hygiene
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Checkout tree
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Install dependencies
run: pacman -Sy --noconfirm bash bubblewrap ca-certificates coreutils curl diffutils gcc git make nano ncurses patch rsync sudo tar unzip xz
- name: Set-up OCaml
uses: ./
with:
ocaml-compiler: "5.3"
ocaml-compiler: "5.4"
- run: opam install ssl
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
/.turbo/
/.vscode/
/.yarn/
/node_modules/
2 changes: 2 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
defaultSemverRangePrefix: ""

nmHoistingLimits: workspaces

npmMinimalAgeGate: 7d

nodeLinker: node-modules
Expand Down
92 changes: 81 additions & 11 deletions EXAMPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@ jobs:
deploy-odoc:
name: Deploy odoc to GitHub Pages

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

permissions:
contents: read
id-token: write
pages: write

runs-on: ubuntu-latest

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

steps:
- name: Checkout tree
uses: actions/checkout@v6
Expand All @@ -54,8 +54,8 @@ jobs:
with:
path: _build/default/_doc/_html

- name: Deploy odoc to GitHub Pages
id: deployment
- id: deployment
name: Deploy odoc to GitHub Pages
uses: actions/deploy-pages@v4
```

Expand All @@ -77,19 +77,89 @@ steps:
!exclude.opam
```

## Using MSVC on Windows

```yml
runs-on: windows-latest

steps:
- name: Checkout tree
uses: actions/checkout@v6

- name: Set-up OCaml with MSVC
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: "5.4"
windows-compiler: msvc
```

## Using MSYS2 on Windows

```yml
runs-on: windows-latest

steps:
- name: Checkout tree
uses: actions/checkout@v6

- name: Set-up OCaml with MSYS2
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: "5.4"
windows-environment: msys2
```

## Using a custom OCaml compiler

To use a custom or unreleased OCaml compiler, create a custom [opam repository](https://opam.ocaml.org/doc/Manual.html#Repositories) containing the compiler package and add it via the `opam-repositories` input. When specifying a compiler from a custom repository, you must use the full opam package name rather than a semver version range, because semver resolution only queries the official [opam-repository](https://github.com/ocaml/opam-repository).

```yml
steps:
- name: Checkout tree
uses: actions/checkout@v6

- name: Set-up OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: ocaml-base-compiler.5.4.0~dev
opam-repositories: |
custom: git+https://github.com/<username>/<custom-opam-repository>.git
default: git+https://github.com/ocaml/opam-repository.git
```

## Using opam lock files

To use dependencies specified by [opam lock files](https://opam.ocaml.org/doc/Manual.html#opam-lock), set the `OPAMLOCKED` environment variable to `locked` in the setup-ocaml step. This ensures that `opam pin` uses the `.opam.locked` files, so subsequent `opam install . --deps-only --locked` correctly installs the locked dependencies.

```yml
steps:
- name: Checkout tree
uses: actions/checkout@v6

- name: Set-up OCaml
uses: ocaml/setup-ocaml@v3
with:
ocaml-compiler: "5.4"
env:
OPAMLOCKED: locked

- name: Install dependencies
run: opam install . --deps-only --locked
```

## Using with [Containers](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainer)

```yml
runs-on: ubuntu-latest

container: ${{ matrix.container }}

strategy:
fail-fast: false
matrix:
container:
- debian:latest
- ubuntu:latest

container: ${{ matrix.container }}

runs-on: ubuntu-latest
fail-fast: false

steps:
- name: Checkout tree
Expand Down
Loading
Loading