From e465651aadfd7ae111a35710068ed5b4a78740db Mon Sep 17 00:00:00 2001 From: Matt Fishman Date: Wed, 8 May 2024 13:05:09 -0400 Subject: [PATCH] CI configuration (#2) --- .github/dependabot.yml | 7 +++ .github/workflows/CI.yml | 88 ++++++++++++++++++++++++++++++ .github/workflows/CompatHelper.yml | 16 ++++++ .github/workflows/Register.yml | 16 ++++++ .github/workflows/TagBot.yml | 31 +++++++++++ .gitignore | 2 + NEWS.md | 44 --------------- docs/Project.toml | 2 + docs/make.jl | 20 +++++++ docs/src/index.md | 14 +++++ 10 files changed, 196 insertions(+), 44 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/CI.yml create mode 100644 .github/workflows/CompatHelper.yml create mode 100644 .github/workflows/Register.yml create mode 100644 .github/workflows/TagBot.yml create mode 100644 .gitignore delete mode 100644 NEWS.md create mode 100644 docs/Project.toml create mode 100644 docs/make.jl create mode 100644 docs/src/index.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..700707c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..5b55066 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,88 @@ +name: CI +on: + push: + branches: + - main + tags: ['*'] + pull_request: + workflow_dispatch: +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: only if it is a pull request build. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + timeout-minutes: 60 + permissions: # needed to allow julia-actions/cache to proactively delete old caches that it has created + actions: write + contents: read + strategy: + fail-fast: false + matrix: + version: + - '1.6' + - '1' + os: + - ubuntu-20.04 + arch: + - x64 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: julia-actions/cache@v2 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}- + ${{ runner.os }}-test- + ${{ runner.os }}- + - run: sudo apt-get update && sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev + - name: Install Julia dependencies and run tests + run: | + JULIA_REFERENCETESTS_UPDATE=true DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --depwarn=yes -e 'using Pkg; Pkg.activate(temp=true); Pkg.develop(path="."); Pkg.test("ITensorMakie")' + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v4 + with: + files: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: false +## docs: +## name: Documentation +## runs-on: ubuntu-latest +## permissions: +## actions: write # needed to allow julia-actions/cache to proactively delete old caches that it has created +## contents: write +## statuses: write +## steps: +## - uses: actions/checkout@v4 +## - uses: julia-actions/setup-julia@v2 +## with: +## version: '1' +## - uses: julia-actions/cache@v2 +## - name: Configure doc environment +## shell: julia --project=docs --color=yes {0} +## run: | +## using Pkg +## Pkg.develop(PackageSpec(path=pwd())) +## Pkg.instantiate() +## - uses: julia-actions/julia-buildpkg@v1 +## - uses: julia-actions/julia-docdeploy@v1 +## env: +## GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +## DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} +## - name: Run doctests +## shell: julia --project=docs --color=yes {0} +## run: | +## using Documenter: DocMeta, doctest +## using ITensorMakie +## DocMeta.setdocmeta!(ITensorMakie, :DocTestSetup, :(using ITensorMakie); recursive=true) +## doctest(ITensorMakie) diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml new file mode 100644 index 0000000..cba9134 --- /dev/null +++ b/.github/workflows/CompatHelper.yml @@ -0,0 +1,16 @@ +name: CompatHelper +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: +jobs: + CompatHelper: + runs-on: ubuntu-latest + steps: + - name: Pkg.add("CompatHelper") + run: julia -e 'using Pkg; Pkg.add("CompatHelper")' + - name: CompatHelper.main() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }} + run: julia -e 'using CompatHelper; CompatHelper.main()' diff --git a/.github/workflows/Register.yml b/.github/workflows/Register.yml new file mode 100644 index 0000000..5b7cd3b --- /dev/null +++ b/.github/workflows/Register.yml @@ -0,0 +1,16 @@ +name: Register Package +on: + workflow_dispatch: + inputs: + version: + description: Version to register or component to bump + required: true +jobs: + register: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: julia-actions/RegisterAction@latest + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml new file mode 100644 index 0000000..0cd3114 --- /dev/null +++ b/.github/workflows/TagBot.yml @@ -0,0 +1,31 @@ +name: TagBot +on: + issue_comment: + types: + - created + workflow_dispatch: + inputs: + lookback: + default: "3" +permissions: + actions: read + checks: read + contents: write + deployments: read + issues: read + discussions: read + packages: read + pages: read + pull-requests: read + repository-projects: read + security-events: read + statuses: read +jobs: + TagBot: + if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' + runs-on: ubuntu-latest + steps: + - uses: JuliaRegistries/TagBot@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ssh: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f1ba1d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.*.swp +Manifest.toml diff --git a/NEWS.md b/NEWS.md deleted file mode 100644 index 98867f0..0000000 --- a/NEWS.md +++ /dev/null @@ -1,44 +0,0 @@ -This file is a (mostly) comprehensive list of changes made in each release of ITensorMakie.jl. For a completely comprehensive but more verbose list, see the [commit history on Github](https://github.com/ITensor/ITensors.jl/commits/main/ITensorMakie). - -While we are in v0.x of the package, we will follow the convention that updating from v0.x.y to v0.x.(y+1) (for example v0.1.15 to v0.1.16) should not break your code, unless you are using internal/undocumented features of the code, while updating from `v0.x.y` to `v0.(x+1).y` might break your code, though we will try to add deprecation warnings when possible, such as for simple cases where the name of a function changes. - -Note that as of Julia v1.5, in order to see deprecation warnings you will need to start Julia with `julia --depwarn=yes` (previously they were on by default). Please run your code like this before upgrading between minor versions of the code (for example from v0.1.41 to v0.2.0). - -After we release v1 of the package, we will start following [semantic versioning](https://semver.org). - - -ITensorMakie v0.1.3 Release Notes -================================= - -Bugs: - -Enhancements: - -- Bump GraphMakie compat to 0.5 (#1032) - -ITensorMakie v0.1.2 Release Notes -================================= - -Bugs: - -Enhancements: - -- Update compats (#1031) - -ITensorMakie v0.1.1 Release Notes -================================= - -Bugs: - -Enhancements: - -- Disable rotating edge labels with edge (#832) - -ITensorMakie v0.1.0 Release Notes -================================= - -Bugs: - -Enhancements: - -- Register ITensorMakie package, code in ITensors.jl repository diff --git a/docs/Project.toml b/docs/Project.toml new file mode 100644 index 0000000..dfa65cd --- /dev/null +++ b/docs/Project.toml @@ -0,0 +1,2 @@ +[deps] +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..b2cf292 --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,20 @@ +using ITensorMakie +using Documenter + +DocMeta.setdocmeta!( + ITensorMakie, :DocTestSetup, :(using ITensorMakie); recursive=true +) + +makedocs(; + modules=[ITensorMakie], + authors="ITensor developers", + sitename="ITensorMakie.jl", + format=Documenter.HTML(; + canonical="https://ITensor.github.io/ITensorMakie.jl", + edit_link="main", + assets=String[], + ), + pages=["Home" => "index.md"], +) + +deploydocs(; repo="github.com/ITensor/ITensorMakie.jl", devbranch="main") diff --git a/docs/src/index.md b/docs/src/index.md new file mode 100644 index 0000000..76ee3ea --- /dev/null +++ b/docs/src/index.md @@ -0,0 +1,14 @@ +```@meta +CurrentModule = ITensorMakie +``` + +# ITensorMakie + +Documentation for [ITensorMakie](https://github.com/ITensor/ITensorMakie.jl). + +```@index +``` + +```@autodocs +Modules = [ITensorMakie] +```