Consolidate CI to lts/1/pre/nightly matrix; fix Documenter v1 incompat#46
Merged
Conversation
CI changes:
- Replace the split `ci.yml` + `ci32.yml` + `ci-noavx2.yml` +
`ci-julia-nightly.yml` + `ci-julia-nightly-noavx2.yml` with two
cleaner files (`ci.yml` for ubuntu+macOS+windows × x64, `ci32.yml`
for ubuntu × x86), both with the same matrix `lts`, `1`, `pre`,
`nightly`.
- `continue-on-error: true` on `pre` and `nightly` so the overall CI
doesn't go red from upstream Julia incompat (`OncePerThread`
MethodError, `(-x)^y` DomainError, etc.) while still surfacing the
failures in the status panel.
- Drop Julia `1.5`. It's pre-LTS, predates everything since 2020, and
was failing on pre-existing `vexp_generic(::VecUnroll{...Int32...})`
ambiguities. LTS (1.10) is the new minimum.
- macOS-latest is now ARM (aarch64) by default since the 2024 GitHub
Actions image bump; the previous `ci-noavx2.yml` workflow that
forced `arch: x64` on macOS-latest was effectively running an
emulated x86 build on Apple silicon and contributing nothing
beyond the noise. The `noavx2` codepath in `src/special/double.jl`
is selected per-call by `fma_fast()` at runtime, not by the CI
matrix.
- Bump `codecov/codecov-action` from v3 → v5 (the v3 action is EOL
and the `file:` keyword has been renamed to `files:`).
Documenter v1 incompatibility fix:
- `docs/make.jl` was passing `repo = "..."` and `assets = []` to
`makedocs`, both of which were removed in Documenter v1.0. The
fields are now part of `format = Documenter.HTML(...)` and default
to auto-detect / empty. Drop both — Documenter picks the repo up
from the git remote and `assets` defaults to empty.
Verified locally: `julia --project=docs docs/make.jl` builds clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two related cleanups for SLEEFPirates' CI green.
CI consolidation
Replace the split
ci.yml+ci32.yml+ci-noavx2.yml+ci-julia-nightly.yml+ci-julia-nightly-noavx2.ymlworkflows with two cleaner files:ci.yml— ubuntu + macOS + windows × x64, matrixlts,1,pre,nightly.ci32.yml— ubuntu × x86, same matrix.Notable matrix changes:
MethodError: vexp_generic(::VecUnroll{...Int32...})ambiguities, not the actual support target. LTS (currently 1.10) is the new minimum.preandnightlywithcontinue-on-error: true— failures from upstream Julia incompat (OncePerThreadMethodError in 1.13+,(-x)^yDomainError, etc.) surface in the status panel but don't block the overall CI from going green.ci-noavx2.ymlmacOS-x64 workflow. macOS-latest is now ARM (aarch64) by default since the 2024 GitHub Actions image bump, and the previous file forcedarch: x64on it — effectively running an emulated x86 build on Apple silicon and contributing only noise. Thenoavx2codepath insrc/special/double.jlis selected per-call byfma_fast()at runtime, not by the CI matrix, so the named workflow wasn't actually exercising it.ci-julia-nightly*.ymlfiles — folded into the unified matrix.codecov/codecov-actionv3 → v5. The v3 action is EOL and thefile:keyword was renamed tofiles:.Documenter v1 incompat fix
docs/make.jlwas passingrepo = "..."andassets = []tomakedocs, both of which were removed in Documenter v1.0. TheDocumentationCI job has been failing withmakedocs() got passed invalid keyword arguments. Both arguments now default to auto-detect (reporeads the git remote) / empty list; the fields can be set onformat = Documenter.HTML(repolink=..., assets=[...])if needed.Verified locally:
julia --project=docs docs/make.jlbuilds clean.Expected post-merge CI
lts,1× ubuntu + macOS + windows: all green.pre,nightly× all OSes: visible in status panel; soft failures from upstream Julia changes (OncePerThread,DomainError, …) don't block.Documentation,Doctests: green after themakedocskeyword fix.Out of scope
tanh_fast1-ULP tolerance edge — addressed in Bump tanh_fast Float32 tolerance and handle Julia 1.13 pow DomainError #45.(-x)^yDomainErrorin the accuracy test grid — also addressed in Bump tanh_fast Float32 tolerance and handle Julia 1.13 pow DomainError #45.🤖 Generated with Claude Code