Compare commits

..

81 Commits

Author SHA1 Message Date
Mosè Giordano
b0504def29 Update some packages (#366)
* Update some packages

* Run `make-everything-from-scratch`

* Update `@types/node`
2026-02-05 21:23:59 +00:00
dependabot[bot]
7242f2d36e Bump js-yaml from 3.14.1 to 3.14.2 (#356)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 3.14.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
2026-02-02 00:36:53 +00:00
dependabot[bot]
1ade3ab195 Bump actions/checkout from 5.0.1 to 6.0.1 in the all-github-actions group (#362)
Bump actions/checkout in the all-github-actions group

Bumps the all-github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 5.0.1 to 6.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5.0.1...v6.0.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
2026-02-02 00:26:44 +00:00
dependabot[bot]
67e9ca1177 Bump glob from 10.4.5 to 10.5.0 (#357)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 10.5.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v10.5.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 10.5.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
2026-02-02 00:01:23 +00:00
Mosè Giordano
a29b9e4c77 macos-13 -> macos-15-intel (#365) 2026-02-01 23:36:10 +00:00
dependabot[bot]
7449f781cd Bump the all-github-actions group with 2 updates (#360)
Bumps the all-github-actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [asdf-vm/actions](https://github.com/asdf-vm/actions).


Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

Updates `asdf-vm/actions` from 4.0.0 to 4.0.1
- [Release notes](https://github.com/asdf-vm/actions/releases)
- [Changelog](https://github.com/asdf-vm/actions/blob/master/CHANGELOG.md)
- [Commits](1902764435...b7bcd026f1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-github-actions
- dependency-name: asdf-vm/actions
  dependency-version: 4.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-07 23:54:28 -05:00
Dilum Aluthge
8dccd20879 CI: Switch from 1.10-nightly to 1.13-nightly (#361)
* CI: Switch from 1.10-nightly to 1.13-nightly

* Fix another location of 1.10-nightly to 1.13-nightly
2025-12-02 12:14:45 +00:00
dependabot[bot]
96b12c59b6 Bump the all-github-actions group across 1 directory with 3 updates (#354)
Bumps the all-github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [github/codeql-action](https://github.com/github/codeql-action) and [actions/setup-node](https://github.com/actions/setup-node).


Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

Updates `github/codeql-action` from 3 to 4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

Updates `actions/setup-node` from 4 to 6
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-github-actions
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-github-actions
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all-github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 20:10:31 +00:00
dependabot[bot]
75f97ff30b Bump the all-npm-actions group with 5 updates (#344)
Bumps the all-npm-actions group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `24.0.10` | `24.1.0` |
| [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `30.0.3` | `30.0.5` |
| [jest-circus](https://github.com/jestjs/jest/tree/HEAD/packages/jest-circus) | `30.0.3` | `30.0.5` |
| [nock](https://github.com/nock/nock) | `14.0.5` | `14.0.8` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.8.3` | `5.9.2` |


Updates `@types/node` from 24.0.10 to 24.1.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `jest` from 30.0.3 to 30.0.5
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.5/packages/jest)

Updates `jest-circus` from 30.0.3 to 30.0.5
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.5/packages/jest-circus)

Updates `nock` from 14.0.5 to 14.0.8
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.5...v14.0.8)

Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-npm-actions
- dependency-name: jest
  dependency-version: 30.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
- dependency-name: jest-circus
  dependency-version: 30.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
- dependency-name: nock
  dependency-version: 14.0.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
- dependency-name: typescript
  dependency-version: 5.9.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-npm-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-01 22:30:45 +01:00
dependabot[bot]
99376169b2 Bump the all-npm-actions group with 6 updates (#343)
Bumps the all-npm-actions group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.15.29` | `24.0.10` |
| [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `29.7.0` | `30.0.3` |
| [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) | `29.5.14` | `30.0.0` |
| [jest-circus](https://github.com/jestjs/jest/tree/HEAD/packages/jest-circus) | `29.7.0` | `30.0.3` |
| [prettier](https://github.com/prettier/prettier) | `3.5.3` | `3.6.2` |
| [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.3.4` | `29.4.0` |


Updates `@types/node` from 22.15.29 to 24.0.10
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `jest` from 29.7.0 to 30.0.3
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.3/packages/jest)

Updates `@types/jest` from 29.5.14 to 30.0.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

Updates `jest-circus` from 29.7.0 to 30.0.3
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.0.3/packages/jest-circus)

Updates `prettier` from 3.5.3 to 3.6.2
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.3...3.6.2)

Updates `ts-jest` from 29.3.4 to 29.4.0
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.3.4...v29.4.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.10
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: jest
  dependency-version: 30.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: "@types/jest"
  dependency-version: 30.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: jest-circus
  dependency-version: 30.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: all-npm-actions
- dependency-name: prettier
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-npm-actions
- dependency-name: ts-jest
  dependency-version: 29.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-npm-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 22:00:23 +01:00
dependabot[bot]
946b8945ed Bump asdf-vm/actions from 3.0.2 to 4.0.0 (#340)
Bumps [asdf-vm/actions](https://github.com/asdf-vm/actions) from 3.0.2 to 4.0.0.
- [Release notes](https://github.com/asdf-vm/actions/releases)
- [Changelog](https://github.com/asdf-vm/actions/blob/master/CHANGELOG.md)
- [Commits](05e0d2ed97...1902764435)

---
updated-dependencies:
- dependency-name: asdf-vm/actions
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 08:21:19 +01:00
dependabot[bot]
9ededf8091 Bump the all-npm-actions group with 4 updates (#342)
Bumps the all-npm-actions group with 4 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@types/semver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver), [nock](https://github.com/nock/nock) and [ts-jest](https://github.com/kulshekhar/ts-jest).


Updates `@types/node` from 22.15.3 to 22.15.29
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@types/semver` from 7.5.8 to 7.7.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/semver)

Updates `nock` from 14.0.4 to 14.0.5
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.4...v14.0.5)

Updates `ts-jest` from 29.3.3 to 29.3.4
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.3.3...v29.3.4)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.29
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
- dependency-name: "@types/semver"
  dependency-version: 7.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: all-npm-actions
- dependency-name: nock
  dependency-version: 14.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
- dependency-name: ts-jest
  dependency-version: 29.3.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: all-npm-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-01 20:05:32 -04:00
Mosè Giordano
45280051d6 [CI] Group dependabot PRs (#341) 2025-06-01 19:55:44 -04:00
dependabot[bot]
b3ecfef5e8 Bump ts-jest from 29.2.5 to 29.3.2 (#330)
* Bump ts-jest from 29.2.5 to 29.3.2

Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.2.5 to 29.3.2.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.2.5...v29.3.2)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Refresh `dist/index.js`

```julia
begin
    using NodeJS_20_jll
    run(`make cleanall`);
    run(`$(node()) $(npm) ci`);
    run(`$(node()) $(npm) run build`);
    run(`$(node()) $(npm) run pack`);
end;
```

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <m.giordano@ucl.ac.uk>
2025-05-15 18:49:35 +02:00
dependabot[bot]
5d51882ecc Bump undici from 5.28.5 to 5.29.0 (#334)
* Bump undici from 5.28.5 to 5.29.0

Bumps [undici](https://github.com/nodejs/undici) from 5.28.5 to 5.29.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.5...v5.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 5.29.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Refresh `dist/index.js`

```julia
using NodeJS_20_jll
run(`make cleanall`);
run(`$(node()) $(npm) ci`);
run(`$(node()) $(npm) run build`);
run(`$(node()) $(npm) run pack`);
```

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <m.giordano@ucl.ac.uk>
2025-05-15 18:41:24 +02:00
dependabot[bot]
14bdca5404 Bump @types/node from 22.13.8 to 22.15.3 (#333)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.13.8 to 22.15.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 22.15.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 22:03:02 +01:00
dependabot[bot]
ca8072aa45 Bump nock from 14.0.1 to 14.0.4 (#332)
Bumps [nock](https://github.com/nock/nock) from 14.0.1 to 14.0.4.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.1...v14.0.4)

---
updated-dependencies:
- dependency-name: nock
  dependency-version: 14.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 21:52:21 +01:00
dependabot[bot]
32e4823075 Bump typescript from 5.8.2 to 5.8.3 (#331)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.2 to 5.8.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.2...v5.8.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 5.8.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 21:25:13 +01:00
dependabot[bot]
d0db705ab1 Bump prettier from 3.5.2 to 3.5.3 (#326)
Bumps [prettier](https://github.com/prettier/prettier) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.5.2...3.5.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-01 21:08:44 +01:00
dependabot[bot]
3e78fcb3ae Bump @types/node from 22.13.0 to 22.13.8 (#325)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.13.0 to 22.13.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 21:59:14 +00:00
dependabot[bot]
72fa5ed0d6 Bump nock from 14.0.0 to 14.0.1 (#324)
Bumps [nock](https://github.com/nock/nock) from 14.0.0 to 14.0.1.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v14.0.0...v14.0.1)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 21:47:02 +00:00
dependabot[bot]
fcde44f420 Bump prettier from 3.4.2 to 3.5.2 (#323)
Bumps [prettier](https://github.com/prettier/prettier) from 3.4.2 to 3.5.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.4.2...3.5.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 21:32:43 +00:00
dependabot[bot]
9e20c521eb Bump typescript from 5.7.3 to 5.8.2 (#321)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.3 to 5.8.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-01 21:12:54 +00:00
Mosè Giordano
83661cac11 Stop running tests on non-existing macos-12 (#318) 2025-02-01 17:58:23 -05:00
dependabot[bot]
68c5d57bec Bump prettier from 3.4.1 to 3.4.2 (#310)
Bumps [prettier](https://github.com/prettier/prettier) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.4.1...3.4.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 22:37:32 +00:00
dependabot[bot]
1fccbf1fae Bump @actions/tool-cache from 2.0.1 to 2.0.2 (#316)
* Bump @actions/tool-cache from 2.0.1 to 2.0.2

Bumps [@actions/tool-cache](https://github.com/actions/toolkit/tree/HEAD/packages/tool-cache) from 2.0.1 to 2.0.2.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/tool-cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/tool-cache)

---
updated-dependencies:
- dependency-name: "@actions/tool-cache"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Refresh `dist/index.js`

```julia
using NodeJS_20_jll
run(`make cleanall`);
run(`$(node()) $(npm) ci`);
run(`$(node()) $(npm) run build`);
run(`$(node()) $(npm) run pack`);
```

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <mose@gnu.org>
2025-02-01 22:28:20 +00:00
dependabot[bot]
154fe254d8 Bump undici from 5.28.4 to 5.28.5 (#312)
* Bump undici from 5.28.4 to 5.28.5

Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* Rebuild `dist/index.js`

```julia
using NodeJS_20_jll
run(`make cleanall`);
run(`$(node()) $(npm) ci`);
run(`$(node()) $(npm) run build`);
run(`$(node()) $(npm) run pack`);
```

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <mose@gnu.org>
2025-02-01 22:15:08 +00:00
dependabot[bot]
89905e6bd4 Bump semver from 7.6.3 to 7.7.0 (#315)
* Bump semver from 7.6.3 to 7.7.0

Bumps [semver](https://github.com/npm/node-semver) from 7.6.3 to 7.7.0.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.3...v7.7.0)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Manually run commands to update files

```julia
using NodeJS_20_jll
run(`make cleanall`)
run(`$(node()) $(npm) ci`)
run(`$(node()) $(npm) run build`)
run(`$(node()) $(npm) run pack`)
```

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <mose@gnu.org>
2025-02-01 22:03:38 +00:00
dependabot[bot]
ef03891851 Bump typescript from 5.6.3 to 5.7.3 (#317)
* Bump typescript from 5.6.3 to 5.7.3

Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.6.3 to 5.7.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.6.3...v5.7.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Manually run `npm ci && npm run build && npm run pack`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mosè Giordano <mose@gnu.org>
2025-02-01 21:48:11 +00:00
dependabot[bot]
2e147ef522 Bump nock from 13.5.6 to 14.0.0 (#313)
Bumps [nock](https://github.com/nock/nock) from 13.5.6 to 14.0.0.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.5.6...v14.0.0)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 21:21:52 +00:00
dependabot[bot]
60afaeb367 Bump @types/node from 22.10.1 to 22.13.0 (#314)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.10.1 to 22.13.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 21:04:21 +00:00
Dilum Aluthge
887a1b8574 Make the README less misleading by putting some reasonable defaults in (instead of empty strings '') (#302)
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
2024-12-16 17:47:25 -05:00
dependabot[bot]
1e6e69ac02 Bump @types/node from 22.9.0 to 22.10.1 (#307)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.9.0 to 22.10.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 21:38:02 +00:00
dependabot[bot]
2edba243f1 Bump @vercel/ncc from 0.38.2 to 0.38.3 (#309)
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.38.2 to 0.38.3.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.38.2...0.38.3)

---
updated-dependencies:
- dependency-name: "@vercel/ncc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 21:28:35 +00:00
dependabot[bot]
e4eeff6f60 Bump prettier from 3.3.3 to 3.4.1 (#306)
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.3 to 3.4.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.3...3.4.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 21:14:20 +00:00
dependabot[bot]
3094e57881 Bump nock from 13.5.5 to 13.5.6 (#305)
Bumps [nock](https://github.com/nock/nock) from 13.5.5 to 13.5.6.
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nock/nock/compare/v13.5.5...v13.5.6)

---
updated-dependencies:
- dependency-name: nock
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:58:48 +00:00
dependabot[bot]
8cc4ff0bf6 Bump julia-actions/setup-julia from 2.6.0 to 2.6.1 (#304)
Bumps [julia-actions/setup-julia](https://github.com/julia-actions/setup-julia) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/julia-actions/setup-julia/releases)
- [Changelog](https://github.com/julia-actions/setup-julia/blob/master/devdocs/making_a_new_release.md)
- [Commits](9b79636afc...5c9647d97b)

---
updated-dependencies:
- dependency-name: julia-actions/setup-julia
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 20:36:34 +00:00
dependabot[bot]
5c9647d97b Bump @types/node from 22.7.5 to 22.9.0 (#301) 2024-11-18 00:20:08 -05:00
dependabot[bot]
17468e89a3 Bump @types/jest from 29.5.13 to 29.5.14 (#298)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-17 23:49:38 -05:00
Ian Butterworth
c861e46bed add warning if requesting x64 on apple silicon runners (#300) 2024-11-17 23:41:16 -05:00
Fons van der Plas
2fa18025fe README examples: '1' for the latest v1 (#296)
* README examples: '1' for latest

* Update README.md

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>

---------

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-10-10 19:14:50 -04:00
dependabot[bot]
05e75bd682 Bump julia-actions/setup-julia from 2.5.0 to 2.6.0 (#295)
Bumps [julia-actions/setup-julia](https://github.com/julia-actions/setup-julia) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/julia-actions/setup-julia/releases)
- [Changelog](https://github.com/julia-actions/setup-julia/blob/master/devdocs/making_a_new_release.md)
- [Commits](a0a0978e28...9b79636afc)

---
updated-dependencies:
- dependency-name: julia-actions/setup-julia
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 01:47:11 -04:00
dependabot[bot]
9b79636afc Bump typescript from 5.6.2 to 5.6.3 (#294)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.6.2 to 5.6.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.6.2...v5.6.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-10-09 01:03:07 -04:00
dependabot[bot]
0360370b20 Bump @vercel/ncc from 0.38.1 to 0.38.2 (#287)
* Bump @vercel/ncc from 0.38.1 to 0.38.2

Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.38.1 to 0.38.2.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](https://github.com/vercel/ncc/compare/0.38.1...0.38.2)

---
updated-dependencies:
- dependency-name: "@vercel/ncc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* npm ci && npm run build && npm run pack

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-10-09 00:51:41 -04:00
dependabot[bot]
4e3f1d687a Bump @actions/core from 1.10.1 to 1.11.1 (#291)
* Bump @actions/core from 1.10.1 to 1.11.1

Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.10.1 to 1.11.1.
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* npm ci && npm run build && npm run pack

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-10-09 00:37:20 -04:00
Ian Butterworth
1068b5ed3f Change LTS 1.6 -> 1.10 (#290) 2024-10-09 00:30:04 -04:00
dependabot[bot]
f42f7fb072 Bump @types/async-retry from 1.4.8 to 1.4.9 (#292)
Bumps [@types/async-retry](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/async-retry) from 1.4.8 to 1.4.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/async-retry)

---
updated-dependencies:
- dependency-name: "@types/async-retry"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-10-08 17:32:27 -04:00
dependabot[bot]
a06d998188 Bump @types/node from 22.6.1 to 22.7.5 (#293)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.6.1 to 22.7.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 16:57:26 -04:00
dependabot[bot]
83c1b1f3c9 Bump julia-actions/setup-julia from 2.3.0 to 2.5.0 (#285)
* Bump julia-actions/setup-julia from 2.3.0 to 2.5.0

Bumps [julia-actions/setup-julia](https://github.com/julia-actions/setup-julia) from 2.3.0 to 2.5.0.
- [Release notes](https://github.com/julia-actions/setup-julia/releases)
- [Changelog](https://github.com/julia-actions/setup-julia/blob/master/devdocs/making_a_new_release.md)
- [Commits](780022b48d...a0a0978e28)

---
updated-dependencies:
- dependency-name: julia-actions/setup-julia
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Add comments that contain the tag (version number)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-09-23 20:19:49 -04:00
Dilum Aluthge
be1659352d arch input: accept x86_64 as a synonym for x64 (#264)
* `arch` input: accept `x86_64` as a synonym for `x64`

* npm ci && npm run build && npm run pack
2024-09-23 19:35:48 -04:00
dependabot[bot]
d6ffb3065b Bump typescript from 5.5.4 to 5.6.2 (#286)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.5.4 to 5.6.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.5.4...v5.6.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 19:09:04 -04:00
dependabot[bot]
95d7bc0174 Bump @types/jest from 29.5.12 to 29.5.13 (#288)
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 29.5.12 to 29.5.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 18:51:09 -04:00
dependabot[bot]
6cb24233ff Bump @types/node from 22.5.1 to 22.6.1 (#284)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.5.1 to 22.6.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-23 18:30:25 -04:00
Dilum Aluthge
a0a0978e28 Simplify the release process (no more build script or release branches) (#281)
* Simplify the release process (no more build script or release branches)

* Remove the `bin/` submodule

* npm run pack

* Use a different YAML syntax

Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>

* Use simpler (but equivalent) logic

Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>

* Fix a logic bug

* Remove some job matrices

Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>

* Intentionally fail a job (to make sure that `finalize` thus also fails)

* Revert "Intentionally fail a job (to make sure that `finalize` thus also fails)"

This reverts commit cd7944ca82.

---------

Co-authored-by: Curtis Vogt <curtis.vogt@gmail.com>
2024-09-23 18:17:15 -04:00
Ian Butterworth
54be0dc244 Update version on master (#279) 2024-08-31 09:10:59 -04:00
Curtis Vogt
014c323ee0 Resolve min as the earliest compatible Julia version (compatible with the user's project) (#202)
* Support the special version "MIN"

* Support JULIA_PROJECT

* Add tests

* Add forgotten test fixtures

* Get latest prerelease/release

* No special pre-release behaviour

* Add test for NPM semver difference

* Robust test suite

* Disallow less-than-equal

* Refactor validJuliaCompatRange to return a validRange

* Rename MIN to min

* Rename getProjectFile to getProjectFilePath

* Comment on "project" input

* Additional tests for getProjectFilePath

* Add comment on `juliaCompatRange`

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>

* Update dependencies

---------

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-08-30 10:58:16 -05:00
dependabot[bot]
b83c8a20db Bump @types/node from 20.14.11 to 22.5.1 (#277)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.11 to 22.5.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 11:29:53 -04:00
dependabot[bot]
8c3db01273 Bump ts-jest from 29.2.3 to 29.2.5 (#276)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.2.3 to 29.2.5.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.2.3...v29.2.5)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 15:18:26 +00:00
dependabot[bot]
f8f6acf37c Bump typescript from 5.5.3 to 5.5.4 (#275)
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-08-30 11:08:29 -04:00
dependabot[bot]
f2dfec4deb Bump bin from e564658 to 0f674f3 (#272)
Bumps [bin](https://github.com/julia-actions/bin) from `e564658` to `0f674f3`.
- [Commits](e564658c0f...0f674f357d)

---
updated-dependencies:
- dependency-name: bin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-21 20:17:53 -04:00
Dilum Aluthge
3bc2a872da package.json: change version number from 2.2.0 to 2.3.0 (#271)
* `package.json`: change version number from `2.2.0` to `2.3.0`

* `rm -rf node_modules/ && npm ci && npm install`
2024-07-21 17:24:46 -04:00
Ian Butterworth
0c4130534d Improve example version instructions. Add info about "lts" if user specifies 1.6 explicitly (#265)
* improve example versions and note

* add info if user explicitly sets version to 1.6

* npm run build

* add 1.6 explicitly to CI

* convert to a github actions notice

* try core.notice

* npm run build

* Apply suggestions from code review

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>

* Update action.yml

* update example

* update toc

* npm build

---------

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-07-21 11:11:51 -04:00
Dilum Aluthge
5956f5ed17 If the user provides default as the value of the arch input, use the runner machine's architecture (#263)
* If the user provides `default` as the value of the `arch` input, use the runner machine's architecture

* `npm run build`

* Convert the key `processedArchInput` to lower case before indexing into the `archSynonyms` dict

* `npm run build`

---------

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
2024-07-21 10:58:40 +00:00
dependabot[bot]
a9e17d5c78 Bump prettier from 3.3.2 to 3.3.3 (#269)
Bumps [prettier](https://github.com/prettier/prettier) from 3.3.2 to 3.3.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.2...3.3.3)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-19 22:16:16 -04:00
dependabot[bot]
f2f2b89a9f Bump ts-jest from 29.1.5 to 29.2.3 (#268)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.1.5 to 29.2.3.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.1.5...v29.2.3)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-20 02:08:37 +00:00
dependabot[bot]
f9eef78196 Bump semver from 7.6.2 to 7.6.3 (#270)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.2 to 7.6.3.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.2...v7.6.3)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-20 01:59:18 +00:00
dependabot[bot]
3511533b57 Bump typescript from 5.4.5 to 5.5.3 (#258)
* Bump typescript from 5.4.5 to 5.5.3

Bumps [typescript](https://github.com/Microsoft/TypeScript) from 5.4.5 to 5.5.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* npm run build

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
2024-07-19 20:10:17 +00:00
Dilum Aluthge
8db9e52340 CI: don't instruct the user to do npm run format (#267) 2024-07-19 16:04:23 -04:00
Dilum Aluthge
1da1716a18 Improve the error logging for the case of Julia 1.6 or 1.7 on Apple Silicon (macos-latest or macos-14) (#261)
* Add some more error logging

* `npm run build`

* Make the message more concise

* Remove the trailing newline at the very end of the last line of the error message

* `npm ci && npm run build`
2024-07-19 19:46:12 +00:00
dependabot[bot]
7653693003 Bump bin from 31b4b50 to e564658 (#259)
Bumps [bin](https://github.com/julia-actions/bin) from `31b4b50` to `e564658`.
- [Commits](31b4b500a3...e564658c0f)

---
updated-dependencies:
- dependency-name: bin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-07-19 19:19:27 +00:00
dependabot[bot]
e1580df3b6 Bump @types/node from 20.14.6 to 20.14.11 (#266)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.6 to 20.14.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-19 15:10:57 -04:00
Dilum Aluthge
ba42af3a54 Always print an error message, never error silently (#262)
* Always print an error message, never error silently

* `npm run build`
2024-07-18 11:30:05 -04:00
Viral B. Shah
4778d3d0c8 Update README.md (#256) 2024-06-26 18:03:36 -04:00
Ian Butterworth
c7aa298e32 update version 2.0.0 -> 2.2.0 (#255) 2024-06-26 15:54:53 -04:00
Dilum Aluthge
cae3c21ea1 Make the devdocs more complete and self-contained (#252)
* Make the devdocs more complete and self-contained

* Rename devdocs/misc-notes-from-contributors.md to devdocs/misc/misc_notes_for_committers.md

* Document the dependencies of the build script

* No need to manually make multiple commits

---------

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
2024-06-26 18:18:44 +00:00
Kristoffer Carlsson
389de5c0df Allow lts for the LTS, and allow pre for the latest pre-release (#234)
* update tests to latest `versions.json`

* allow specifying the version as `lts` to install the latest LTS version

for now, this just hardcodes the LTS version in the source (similar to how juliaup does it) since the latest LTS is not available in `versions.json`. Since the LTS is updated so rarely this might be ok for now.

* add a 'pre' version

* Run `npm ci` followed by `npm run build`

* Add a CI job to test `pre`

---------

Co-authored-by: Viral B. Shah <ViralBShah@users.noreply.github.com>
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
2024-06-26 14:12:52 -04:00
Dilum Aluthge
42e03d3446 CI: Install the same version of NodeJS that is specified in .tool-versions (#253)
* Create a `.tool-versions` file with an entry for NodeJS 20

* CI: Install the same version of NodeJS that is specified in `.tool-versions`
2024-06-19 19:09:08 -04:00
dependabot[bot]
e62bf8c418 Bump ts-jest from 29.1.2 to 29.1.5 (#249)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.1.2 to 29.1.5.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.1.2...v29.1.5)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 22:59:37 +00:00
dependabot[bot]
30038810d2 Bump prettier from 3.2.5 to 3.3.2 (#247)
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.5 to 3.3.2.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.3.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 22:49:01 +00:00
dependabot[bot]
0e4b558b25 Bump semver from 7.6.0 to 7.6.2 (#244)
Bumps [semver](https://github.com/npm/node-semver) from 7.6.0 to 7.6.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.6.0...v7.6.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 22:40:25 +00:00
dependabot[bot]
3599cbd45f Bump @types/node from 20.12.8 to 20.14.6 (#254)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.12.8 to 20.14.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 22:29:43 +00:00
33 changed files with 51627 additions and 12909 deletions

View File

@@ -5,15 +5,30 @@ updates:
schedule: schedule:
interval: monthly interval: monthly
open-pull-requests-limit: 99 open-pull-requests-limit: 99
groups:
# Group all Git submodules PRs into a single PR:
all-gitsubmodule-actions:
patterns:
- "*"
- package-ecosystem: 'github-actions' - package-ecosystem: 'github-actions'
directory: '/' directory: '/'
schedule: schedule:
interval: 'monthly' interval: 'monthly'
open-pull-requests-limit: 99 open-pull-requests-limit: 99
groups:
# Group all GitHub Actions PRs into a single PR:
all-github-actions:
patterns:
- "*"
- package-ecosystem: npm - package-ecosystem: npm
directory: "/" directory: "/"
schedule: schedule:
interval: monthly interval: monthly
open-pull-requests-limit: 99 open-pull-requests-limit: 99
groups:
# Group all NPM PRs into a single PR:
all-npm-actions:
patterns:
- "*"

View File

@@ -1,36 +0,0 @@
name: "PR Checks"
on: [pull_request, push]
concurrency:
# Skip intermediate builds: all builds except for builds on the `master`, `main`, or `release-*` branches
# Cancel intermediate builds: only pull request builds
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.ref != 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release-') || github.run_number }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
check_pr:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- name: "npm ci"
run: npm ci
- name: "npm run build"
run: npm run build
- name: "npm run test"
run: npm run test
- name: "check for uncommitted changes"
# Ensure no changes, but ignore node_modules dir since dev/fresh ci deps installed.
run: |
git diff --exit-code --stat -- . ':!node_modules' \
|| (echo "##[error] found changed files after build. please 'npm run build && npm run format'" \
"and check in all changes" \
&& exit 1)

View File

@@ -42,11 +42,11 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v6.0.1
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v3 uses: github/codeql-action/init@v4
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file. # If you wish to specify custom queries, you can do so here or in a config file.
@@ -57,7 +57,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v3 uses: github/codeql-action/autobuild@v4
# Command-line programs to run using the OS shell. # Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl # 📚 https://git.io/JvXDl
@@ -71,4 +71,4 @@ jobs:
# make release # make release
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3 uses: github/codeql-action/analyze@v4

View File

@@ -23,12 +23,12 @@ jobs:
os: [ubuntu-latest, macOS-latest, windows-latest] os: [ubuntu-latest, macOS-latest, windows-latest]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6.0.1
- uses: actions/setup-node@v4 - uses: actions/setup-node@v6
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
with: with:
node-version: 16 node-version-file: '.tool-versions'
- name: "Install dependencies" - name: "Install dependencies"
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}

View File

@@ -18,23 +18,21 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
julia-version: [nightly, 1.10-nightly] julia-version: [nightly, 1.13-nightly]
os: os:
- ubuntu-latest - ubuntu-latest
- windows-latest - windows-latest
# - macos-11 # Intel - macos-15-intel # Intel
- macos-12 # Intel
- macos-13 # Intel
- macos-14 # Apple Silicon - macos-14 # Apple Silicon
- macos-latest # Currently Intel, but will probably point to Apple Silicon in the future - macos-latest # Apple Silicon
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6.0.1
- uses: actions/setup-node@v4 - uses: actions/setup-node@v6
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
with: with:
node-version: 16 node-version-file: '.tool-versions'
- name: "Install dependencies" - name: "Install dependencies"
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}

View File

@@ -20,7 +20,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
julia-version: [nightly, 1.10-nightly] julia-version: [nightly, 1.13-nightly]
julia-arch: [x64, x86] julia-arch: [x64, x86]
os: [ubuntu-latest, macOS-latest, windows-latest] os: [ubuntu-latest, macOS-latest, windows-latest]
# 32-bit Julia binaries are not available on macOS # 32-bit Julia binaries are not available on macOS
@@ -29,12 +29,12 @@ jobs:
julia-arch: x86 julia-arch: x86
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6.0.1
- uses: actions/setup-node@v4 - uses: actions/setup-node@v6
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
with: with:
node-version: 16 node-version-file: '.tool-versions'
- name: "Install dependencies" - name: "Install dependencies"
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}

View File

@@ -19,21 +19,29 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
julia-version: ['1.0.5', '1.2', '^1.5.0-beta1', '1'] # include '1.6' here to test info message about lts tag existing
julia-version: ['1.0.5', '1.2', '^1.5.0-beta1', '1', '1.6', 'lts', 'pre']
julia-arch: [x64, x86] julia-arch: [x64, x86]
os: [ubuntu-latest, macOS-latest, windows-latest] os: [ubuntu-latest, macOS-latest, windows-latest]
# 32-bit Julia binaries are not available on macOS # 32-bit Julia binaries are not available on macOS
exclude: exclude:
- os: macOS-latest - os: macOS-latest
julia-arch: x86 julia-arch: x86
include:
- os: macOS-latest
julia-arch: aarch64
julia-version: 'lts'
- os: macOS-latest
julia-arch: aarch64
julia-version: '1'
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v6.0.1
- uses: actions/setup-node@v4 - uses: actions/setup-node@v6
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
with: with:
node-version: 16 node-version-file: '.tool-versions'
- name: "Install dependencies" - name: "Install dependencies"
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }} if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}

222
.github/workflows/pr_checks.yml vendored Normal file
View File

@@ -0,0 +1,222 @@
name: PR Checks
on:
pull_request:
push:
branches:
- master
tags: '*'
concurrency:
# Skip intermediate builds: all builds except for builds on the `master` branch
# Cancel intermediate builds: only pull request builds
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.run_number }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
permissions:
contents: read
jobs:
finalize-pr-checks:
if: always() # this line is important to keep the `finalize` job from being marked as skipped; do not change or delete this line
runs-on: ubuntu-latest
timeout-minutes: 10
needs:
- checked-in-files
- build
- npm-run-test
- make-targets
- stalecheck-npm-install
steps:
- run: |
echo checked-in-files: ${{ needs.checked-in-files.result }}
echo build: ${{ needs.build.result }}
echo npm-run-test: ${{ needs.npm-run-test.result }}
echo make-targets: ${{ needs.make-targets.result }}
echo stalecheck-npm-install: ${{ needs.stalecheck-npm-install.result }}
- run: exit 1
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
checked-in-files:
timeout-minutes: 30
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
### Check out the repo:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
persist-credentials: false
### Cleanall:
- run: make cleanall
### Install NodeJS
# Unix (non-Windows):
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
if: runner.os != 'Windows'
- run: make unix-asdf-install
if: runner.os != 'Windows'
# Windows:
# Windows does not support asdf, so we have to use `actions/setup-node`
# to install asdf:
- uses: actions/setup-node@dda4788290998366da86b6a4f497909644397bb2
if: runner.os == 'Windows'
with:
node-version-file: '.tool-versions'
### Install the NodeJS packages that we depend on:
- run: make install-packages
### Print some debugging info:
- name: Print the NodeJS version (for debugging)
run: |
which -a node
node --version
which -a npm
npm --version
### Build:
- run: make pack
### Clean (not cleanall!):
- run: make clean
### Make sure there are no uncommited changes
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 # v2.6.1
with:
version: '1'
- run: git --no-pager status
- run: git --no-pager diff
- run: julia ./ci/check_uncommitted_changes.jl
build:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
### Check out the repo:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
persist-credentials: false
### Cleanall:
- run: make cleanall
### Install NodeJS
# Unix (non-Windows):
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
if: runner.os != 'Windows'
- run: make unix-asdf-install
if: runner.os != 'Windows'
# Windows:
# Windows does not support asdf, so we have to use `actions/setup-node`
# to install asdf:
- uses: actions/setup-node@dda4788290998366da86b6a4f497909644397bb2
if: runner.os == 'Windows'
with:
node-version-file: '.tool-versions'
### Install the NodeJS packages that we depend on:
- run: make install-packages
### Print some debugging info:
- name: Print the NodeJS version (for debugging)
run: |
which -a node
node --version
which -a npm
npm --version
### Build:
- run: make build
- run: make pack
### Make sure some other `make` targets don't bitrot:
- name: Run some other `make` targets to ensure that they don't bitrot
run: |
make clean
make cleanall
- name: Run all of the "cleaning" `make` targets to ensure that they don't bitrot
run: |
make clean
make cleanall
npm-run-test:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
### Check out the repo:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
persist-credentials: false
### Cleanall:
- run: make cleanall
### Install NodeJS
# Unix (non-Windows):
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
if: runner.os != 'Windows'
- run: make unix-asdf-install
if: runner.os != 'Windows'
# Windows:
# Windows does not support asdf, so we have to use `actions/setup-node`
# to install asdf:
- uses: actions/setup-node@dda4788290998366da86b6a4f497909644397bb2
if: runner.os == 'Windows'
with:
node-version-file: '.tool-versions'
### Install the NodeJS packages that we depend on:
- run: make install-packages
### Print some debugging info:
- name: Print the NodeJS version (for debugging)
run: |
which -a node
node --version
which -a npm
npm --version
### Build:
- run: make build
- run: make test
make-targets: # This is a job to make sure that none of the `make` targets bitrot
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
### Check out the repo:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
persist-credentials: false
### Cleanall:
- run: make cleanall
### Install NodeJS
# Unix (non-Windows):
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
if: runner.os != 'Windows'
- run: make unix-asdf-install
if: runner.os != 'Windows'
### Install the NodeJS packages that we depend on:
- run: make install-packages
### Make sure some other `make` targets don't bitrot:
- name: Run some other `make` targets to ensure that they don't bitrot
run: |
make unix-asdf-install
make install-packages
make build
make pack
make everything-from-scratch
- name: Run all of the "cleaning" `make` targets to ensure that they don't bitrot
run: |
make clean
make cleanall
stalecheck-npm-install:
# In this job, we are basically trying to check if `package-lock.json` is in
# sync with `package-lock.json`.
#
# So, for example, if someone manually edits the `package.json` file, we want
# to make sure that the `package-lock.json` file is not out of sync with the
# `package.json` file.
timeout-minutes: 30
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
### Check out the repo:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
persist-credentials: false
### Install NodeJS
# Unix (non-Windows):
- uses: asdf-vm/actions/setup@b7bcd026f18772e44fe1026d729e1611cc435d47
if: runner.os != 'Windows'
- run: make unix-asdf-install
if: runner.os != 'Windows'
### Run the master commands for this job:
- run: make clean
- run: npm ci
# - run: npm install --package-lock-only
- run: npm install
### Make sure there are no uncommited changes
- uses: julia-actions/setup-julia@5c9647d97b78a5debe5164e9eec09d653d29bd71 # v2.6.1
with:
version: '1'
- run: git --no-pager status
- run: git --no-pager diff
- run: julia ./ci/check_uncommitted_changes.jl

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "bin"]
path = bin
url = git@github.com:julia-actions/bin.git

1
.tool-versions Normal file
View File

@@ -0,0 +1 @@
nodejs 20.11.1

View File

@@ -1,11 +1,3 @@
# Dev docs / Contributing guide # Contributing
## Building and tagging a release (requires write access) Please see the README in the [`devdocs/`](devdocs/) folder.
1. Test your changes, merge into `master`.
2. Checkout `master`.
3. Bump the version number in [`package.json`](package.json).
4. Run `./bin/build-release julia-actions/setup-julia` to create a release branch and build a release.
5. Push the branch (**without tags**) and verify that CI is passing on it.
6. Run `git push --tags --force` to update the tags.
7. Create a release for the `vX.Y.Z` tag.

49
Makefile Normal file
View File

@@ -0,0 +1,49 @@
.NOTPARALLEL:
# This is the default target:
.PHONY: pack
pack: build
npm run pack
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.PHONY: everything-from-scratch
everything-from-scratch: cleanall install-packages build pack clean
# build does `npm run build`, but does not run `npm run pack`
.PHONY: build
build:
npm run build
.PHONY: test
test:
npm run test
.PHONY: install-packages
install-packages:
rm -rf node_modules/
# Note: we use `npm ci` instead of `npm install`, because we want to make sure
# that we respect the versions in the `package-lock.json` lockfile.
npm ci
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.PHONY: clean
clean:
rm -rf node_modules/
.PHONY: cleanall
cleanall: clean
rm -rf lib/
rm -rf dist/
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# asdf does not support Windows.
# On Windows, users need to install the correct version of NodeJS themselves.
.PHONY: unix-asdf-install
unix-asdf-install:
asdf plugin add nodejs # update this list when we add more tools to `.tool-versions`
asdf install
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

View File

@@ -5,17 +5,25 @@
This action sets up a Julia environment for use in actions by downloading a specified version of Julia and adding it to PATH. This action sets up a Julia environment for use in actions by downloading a specified version of Julia and adding it to PATH.
## Table of Contents ## Table of Contents
- [Table of Contents](#table-of-contents) - [setup-julia Action](#setup-julia-action)
- [Usage](#usage) - [Table of Contents](#table-of-contents)
- [Inputs](#inputs) - [Usage](#usage)
- [Outputs](#outputs) - [Inputs](#inputs)
- [Basic](#basic) - [Outputs](#outputs)
- [Julia Versions](#julia-versions) - [Basic](#basic)
- [Matrix Testing](#matrix-testing) - [Julia Versions](#julia-versions)
- [versioninfo](#versioninfo) - [Examples](#examples)
- [Versioning](#versioning) - [Prereleases](#prereleases)
- [Debug logs](#debug-logs) - [Recently released versions](#recently-released-versions)
- [Third party information](#third-party-information) - [Matrix Testing](#matrix-testing)
- [64-bit Julia only](#64-bit-julia-only)
- [32-bit Julia](#32-bit-julia)
- [versioninfo](#versioninfo)
- [Versioning](#versioning)
- [Using Dependabot version updates to keep your GitHub Actions up to date](#using-dependabot-version-updates-to-keep-your-github-actions-up-to-date)
- [Debug logs](#debug-logs)
- [Third party information](#third-party-information)
- [Contributing to this repo](#contributing-to-this-repo)
## Usage ## Usage
@@ -30,10 +38,10 @@ This action sets up a Julia environment for use in actions by downloading a spec
# Warning: It is strongly recommended to wrap this value in quotes. # Warning: It is strongly recommended to wrap this value in quotes.
# Otherwise, the YAML parser used by GitHub Actions parses certain # Otherwise, the YAML parser used by GitHub Actions parses certain
# versions as numbers which causes the wrong version to be selected. # versions as numbers which causes the wrong version to be selected.
# For example, `1.0` may be parsed as `1`. # For example, `1.10` may be parsed as `1.1`.
# #
# Default: '1' # Default: '1'
version: '' version: '1'
# The architecture of the Julia binaries. # The architecture of the Julia binaries.
# #
@@ -45,8 +53,8 @@ This action sets up a Julia environment for use in actions by downloading a spec
# #
# Note: you can use X64, X86, and ARM64 as synonyms for x64, x86, and aarch64, respectively. # Note: you can use X64, X86, and ARM64 as synonyms for x64, x86, and aarch64, respectively.
# #
# Defaults to the architecture of the runner executing the job. # Specifying 'default' uses the architecture of the runner executing the job.
arch: '' arch: 'default'
# Set the display setting for printing InteractiveUtils.versioninfo() after installing. # Set the display setting for printing InteractiveUtils.versioninfo() after installing.
# #
@@ -62,7 +70,12 @@ This action sets up a Julia environment for use in actions by downloading a spec
# never: Never print versioninfo # never: Never print versioninfo
# #
# Default: false # Default: false
show-versioninfo: '' show-versioninfo: 'false'
# Set the path to the project directory or file to use when resolving some versions (e.g. `min`).
#
# Defaults to using JULIA_PROJECT if defined, otherwise '.'
project: ${{ env.JULIA_PROJECT }} or '.' (if JULIA_PROJECT is unset)
``` ```
### Outputs ### Outputs
@@ -109,8 +122,12 @@ You can either specify specific Julia versions or version ranges. If you specify
- `'~1.3.0-rc1'` is a **tilde** version range that includes pre-releases of `1.3.0` starting at `rc1`. It matches all versions `≥ 1.3.0-rc1` and `< 1.4.0`. - `'~1.3.0-rc1'` is a **tilde** version range that includes pre-releases of `1.3.0` starting at `rc1`. It matches all versions `≥ 1.3.0-rc1` and `< 1.4.0`.
- `'^1.3.0-0'` is a **caret** version range that includes _all_ pre-releases of `1.3.0`. It matches all versions `≥ 1.3.0-` and `< 2.0.0`. - `'^1.3.0-0'` is a **caret** version range that includes _all_ pre-releases of `1.3.0`. It matches all versions `≥ 1.3.0-` and `< 2.0.0`.
- `'~1.3.0-0'` is a **tilde** version range that includes _all_ pre-releases of `1.3.0`. It matches all versions `≥ 1.3.0-` and `< 1.4.0`. - `'~1.3.0-0'` is a **tilde** version range that includes _all_ pre-releases of `1.3.0`. It matches all versions `≥ 1.3.0-` and `< 1.4.0`.
- `'1'` will install the latest v1 version of Julia.
- `'lts'` will install the latest LTS build.
- `'pre'` will install the latest prerelease build (RCs, betas, and alphas).
- `'nightly'` will install the latest nightly build. - `'nightly'` will install the latest nightly build.
- `'1.7-nightly'` will install the latest nightly build for the upcoming 1.7 release. This version will only be available during certain phases of the Julia release cycle. - `'1.7-nightly'` will install the latest nightly build for the upcoming 1.7 release. This version will only be available during certain phases of the Julia release cycle.
- `'min'` will install the earliest supported version of Julia compatible with the project. Especially useful in monorepos.
Internally the action uses node's semver package to resolve version ranges. Its [documentation](https://github.com/npm/node-semver#advanced-range-syntax) contains more details on the version range syntax. You can test what version will be selected for a given input in this JavaScript [REPL](https://repl.it/@SaschaMann/setup-julia-version-logic). Internally the action uses node's semver package to resolve version ranges. Its [documentation](https://github.com/npm/node-semver#advanced-range-syntax) contains more details on the version range syntax. You can test what version will be selected for a given input in this JavaScript [REPL](https://repl.it/@SaschaMann/setup-julia-version-logic).
@@ -177,12 +194,18 @@ jobs:
strategy: strategy:
matrix: matrix:
julia-version: ['1.0', '1.2.0', '^1.3.0-rc1'] julia-version: ['1.0', '1.2.0', '^1.3.0-rc1']
julia-arch: [x64, x86] julia-arch: [x64, x86, aarch64]
os: [ubuntu-latest, windows-latest, macOS-latest] os: [ubuntu-latest, windows-latest, macOS-latest]
# 32-bit Julia binaries are not available on macOS # exclude unavailable/unwanted architectures
exclude: exclude:
- os: macOS-latest - os: macOS-latest
julia-arch: x86 julia-arch: x86
- os: macOS-latest
julia-arch: x64 # can be run but via rosetta on apple silicon runners
- os: ubuntu-latest
julia-arch: aarch64
- os: windows-latest
julia-arch: aarch64
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
@@ -283,3 +306,7 @@ Note that when debug logs are enabled, a request will be sent to `https://httpbi
## Third party information ## Third party information
Parts of this software have been derived from other open source software. Parts of this software have been derived from other open source software.
See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details. See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details.
## Contributing to this repo
Please see the README in the [`devdocs/`](devdocs/) folder.

View File

View File

File diff suppressed because it is too large Load Diff

View File

@@ -4,30 +4,30 @@
import * as path from 'path' import * as path from 'path'
import * as io from '@actions/io' import * as io from '@actions/io'
import nock = require('nock')
import * as semver from 'semver' import * as semver from 'semver'
import nock = require('nock')
const testVersions = [ const testVersions = [
'0.1.2', '0.2.0', '0.2.1', '0.3.0', '0.1.2',
'0.3.1', '0.3.10', '0.3.11', '0.3.12', '0.2.0', '0.2.1',
'0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.0', '0.3.1', '0.3.10', '0.3.11', '0.3.12', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9',
'0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.0-rc1', '0.4.0-rc2', '0.4.0-rc3', '0.4.0-rc4', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7',
'0.4.0', '0.4.0-rc1', '0.4.0-rc2', '0.4.0-rc3', '0.5.0', '0.5.0-rc0', '0.5.0-rc1', '0.5.0-rc2', '0.5.0-rc3', '0.5.0-rc4', '0.5.1', '0.5.2',
'0.4.0-rc4', '0.4.1', '0.4.2', '0.4.3', '0.6.0', '0.6.0-pre.alpha', '0.6.0-pre.beta', '0.6.0-rc1', '0.6.0-rc2', '0.6.0-rc3', '0.6.1', '0.6.2', '0.6.3', '0.6.4',
'0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.7.0', '0.7.0-alpha', '0.7.0-beta', '0.7.0-beta2', '0.7.0-rc1', '0.7.0-rc2', '0.7.0-rc3',
'0.5.0', '0.5.0-rc0', '0.5.0-rc1', '0.5.0-rc2', '1.0.0', '1.0.0-rc1', '1.0.1', '1.0.2', '1.0.3', '1.0.4', '1.0.5',
'0.5.0-rc3', '0.5.0-rc4', '0.5.1', '0.5.2', '1.1.0', '1.1.0-rc1', '1.1.0-rc2', '1.1.1',
'0.6.0', '0.6.0-pre.alpha', '0.6.0-pre.beta', '0.6.0-rc1', '1.2.0', '1.2.0-rc1', '1.2.0-rc2', '1.2.0-rc3',
'0.6.0-rc2', '0.6.0-rc3', '0.6.1', '0.6.2', '1.3.0', '1.3.0-alpha', '1.3.0-rc1', '1.3.0-rc2', '1.3.0-rc3', '1.3.0-rc4', '1.3.0-rc5', '1.3.1',
'0.6.3', '0.6.4', '0.7.0', '0.7.0-alpha', '1.4.0', '1.4.0-rc1', '1.4.0-rc2', '1.4.1', '1.4.2',
'0.7.0-beta', '0.7.0-beta2', '0.7.0-rc1', '0.7.0-rc2', '1.5.0', '1.5.0-beta1', '1.5.0-rc1', '1.5.0-rc2', '1.5.1', '1.5.2', '1.5.3', '1.5.4',
'0.7.0-rc3', '1.0.0', '1.0.0-rc1', '1.0.1', '1.6.0', '1.6.0-beta1', '1.6.0-rc1', '1.6.0-rc2', '1.6.0-rc3', '1.6.1', '1.6.2', '1.6.3', '1.6.4', '1.6.5', '1.6.6', '1.6.7',
'1.0.2', '1.0.3', '1.0.4', '1.0.5', '1.7.0', '1.7.0-beta1', '1.7.0-beta2', '1.7.0-beta3', '1.7.0-beta4', '1.7.0-rc1', '1.7.0-rc2', '1.7.0-rc3', '1.7.1', '1.7.2', '1.7.3',
'1.1.0', '1.1.0-rc1', '1.1.0-rc2', '1.1.1', '1.8.0', '1.8.0-beta1', '1.8.0-beta2', '1.8.0-beta3', '1.8.0-rc1', '1.8.0-rc2', '1.8.0-rc3', '1.8.0-rc4', '1.8.1', '1.8.2', '1.8.3', '1.8.4', '1.8.5',
'1.2.0', '1.2.0-rc1', '1.2.0-rc2', '1.2.0-rc3', '1.9.0', '1.9.0-alpha1', '1.9.0-beta1', '1.9.0-beta2', '1.9.0-beta3', '1.9.0-beta4', '1.9.0-rc1', '1.9.0-rc2', '1.9.0-rc3', '1.9.1', '1.9.2', '1.9.3', '1.9.4',
'1.3.0-alpha', '1.3.0-rc1', '1.3.0-rc2', '1.3.0-rc3', '1.10.0', '1.10.0-alpha1', '1.10.0-beta1', '1.10.0-beta2', '1.10.0-beta3', '1.10.0-rc1', '1.10.0-rc2', '1.10.0-rc3', '1.10.1', '1.10.2', '1.10.3', '1.10.4', '1.10.5',
'1.3.0-rc4' '1.11.0', '1.11.0-alpha1', '1.11.0-alpha2', '1.11.0-beta1', '1.11.0-beta2', '1.11.0-rc1', '1.11.0-rc2', '1.11.0-rc3', '1.11.0-rc4',
] ]
const toolDir = path.join(__dirname, 'runner', 'tools') const toolDir = path.join(__dirname, 'runner', 'tools')
@@ -38,6 +38,135 @@ process.env['RUNNER_TOOL_CACHE'] = toolDir
process.env['RUNNER_TEMP'] = tempDir process.env['RUNNER_TEMP'] = tempDir
import * as installer from '../src/installer' import * as installer from '../src/installer'
import exp from 'constants'
describe("getProjectFilePath tests", () => {
let orgJuliaProject
let orgWorkingDir
beforeEach(() => {
orgJuliaProject = process.env["JULIA_PROJECT"]
orgWorkingDir = process.cwd()
delete process.env["JULIA_PROJECT"]
})
afterEach(() => {
process.env["JULIA_PROJECT"] = orgJuliaProject
process.chdir(orgWorkingDir)
})
it("Can determine project file is missing", () => {
expect(() => installer.getProjectFilePath("DNE.toml")).toThrow("Unable to locate project file")
expect(() => installer.getProjectFilePath(fixtureDir)).toThrow("Unable to locate project file")
expect(() => installer.getProjectFilePath()).toThrow("Unable to locate project file")
})
it('Can determine project file from a directory', () => {
expect(installer.getProjectFilePath(path.join(fixtureDir, "PkgA"))).toEqual(path.join(fixtureDir, "PkgA", "Project.toml"))
expect(installer.getProjectFilePath(path.join(fixtureDir, "PkgB"))).toEqual(path.join(fixtureDir, "PkgB", "JuliaProject.toml"))
})
it("Prefers using JuliaProject.toml over Project.toml", () => {
expect(installer.getProjectFilePath(path.join(fixtureDir, "PkgC"))).toEqual(path.join(fixtureDir, "PkgC", "JuliaProject.toml"))
})
it("Can determine project from JULIA_PROJECT", () => {
process.env["JULIA_PROJECT"] = path.join(fixtureDir, "PkgA")
expect(installer.getProjectFilePath()).toEqual(path.join(fixtureDir, "PkgA", "Project.toml"))
})
it("Can determine project from the current working directory", () => {
process.chdir(path.join(fixtureDir, "PkgA"));
expect(installer.getProjectFilePath()).toEqual("Project.toml")
})
it("Ignores JULIA_PROJECT when argument is used", () => {
process.env["JULIA_PROJECT"] = path.join(fixtureDir, "PkgB")
expect(installer.getProjectFilePath(path.join(fixtureDir, "PkgA"))).toEqual(path.join(fixtureDir, "PkgA", "Project.toml"))
})
})
describe("validJuliaCompatRange tests", () => {
it('Handles default caret specifier', () => {
expect(installer.validJuliaCompatRange("1")).toEqual(semver.validRange("^1"))
expect(installer.validJuliaCompatRange("1.2")).toEqual(semver.validRange("^1.2"))
expect(installer.validJuliaCompatRange("1.2.3")).toEqual(semver.validRange("^1.2.3"))
// TODO: Pkg.jl currently does not support pre-release entries in compat so ideally this would fail
expect(installer.validJuliaCompatRange("1.2.3-rc1")).toEqual(semver.validRange("^1.2.3-rc1"))
})
it('Handle surrounding whitespace', () => {
expect(installer.validJuliaCompatRange(" 1")).toEqual(semver.validRange("^1"))
expect(installer.validJuliaCompatRange("1 ")).toEqual(semver.validRange("^1"))
expect(installer.validJuliaCompatRange(" 1 ")).toEqual(semver.validRange("^1"))
})
it('Handles version ranges with specifiers', () => {
expect(installer.validJuliaCompatRange("^1.2.3")).toEqual(semver.validRange("^1.2.3"))
expect(installer.validJuliaCompatRange("~1.2.3")).toEqual(semver.validRange("~1.2.3"))
expect(installer.validJuliaCompatRange("=1.2.3")).toEqual(semver.validRange("=1.2.3"))
expect(installer.validJuliaCompatRange(">=1.2.3")).toEqual(">=1.2.3")
expect(installer.validJuliaCompatRange("≥1.2.3")).toEqual(">=1.2.3")
expect(installer.validJuliaCompatRange("<1.2.3")).toEqual("<1.2.3")
})
it('Handles whitespace after specifiers', () => {
expect(installer.validJuliaCompatRange("^ 1.2.3")).toBeNull()
expect(installer.validJuliaCompatRange("~ 1.2.3")).toBeNull()
expect(installer.validJuliaCompatRange("= 1.2.3")).toBeNull()
expect(installer.validJuliaCompatRange(">= 1.2.3")).toEqual(">=1.2.3")
expect(installer.validJuliaCompatRange("≥ 1.2.3")).toEqual(">=1.2.3")
expect(installer.validJuliaCompatRange("< 1.2.3")).toEqual("<1.2.3")
})
it('Handles hypen ranges', () => {
expect(installer.validJuliaCompatRange("1.2.3 - 4.5.6")).toEqual(semver.validRange("1.2.3 - 4.5.6"))
expect(installer.validJuliaCompatRange("1.2.3-rc1 - 4.5.6")).toEqual(semver.validRange("1.2.3-rc1 - 4.5.6"))
expect(installer.validJuliaCompatRange("1.2.3-rc1-4.5.6")).toEqual(semver.validRange("^1.2.3-rc1-4.5.6")) // A version number and not a hypen range
expect(installer.validJuliaCompatRange("1.2.3-rc1 -4.5.6")).toBeNull()
expect(installer.validJuliaCompatRange("1.2.3-rc1- 4.5.6")).toBeNull() // Whitespace separate version ranges
})
it("Returns null AND operator on version ranges", () => {
expect(installer.validJuliaCompatRange("")).toBeNull()
expect(installer.validJuliaCompatRange("1 2 3")).toBeNull()
expect(installer.validJuliaCompatRange("1- 2")).toBeNull()
expect(installer.validJuliaCompatRange("<1 <1")).toBeNull()
expect(installer.validJuliaCompatRange("< 1 < 1")).toBeNull()
expect(installer.validJuliaCompatRange("< 1 < 1")).toBeNull()
})
it('Returns null with invalid specifiers', () => {
expect(installer.validJuliaCompatRange("<=1.2.3")).toBeNull()
expect(installer.validJuliaCompatRange("≤1.2.3")).toBeNull()
expect(installer.validJuliaCompatRange("*")).toBeNull()
})
it("Handles OR operator on version ranges", () => {
expect(installer.validJuliaCompatRange("1, 2, 3")).toEqual(semver.validRange("^1 || ^2 || ^3"))
expect(installer.validJuliaCompatRange("1, 2 - 3, ≥ 4")).toEqual(semver.validRange("^1 || >=2 <=3 || >=4"))
expect(installer.validJuliaCompatRange(",")).toBeNull()
})
})
describe("readJuliaCompatRange tests", () => {
it('Can determine Julia compat entries', () => {
const toml = '[compat]\njulia = "1, ^1.1, ~1.2, >=1.3, 1.4 - 1.5"'
expect(installer.readJuliaCompatRange(toml)).toEqual(semver.validRange("^1 || ^1.1 || ~1.2 || >=1.3 || 1.4 - 1.5"))
})
it('Throws with invalid version ranges', () => {
expect(() => installer.readJuliaCompatRange('[compat]\njulia = ""')).toThrow("Invalid version range")
expect(() => installer.readJuliaCompatRange('[compat]\njulia = "1 2 3"')).toThrow("Invalid version range")
})
it('Handle missing compat entries', () => {
expect(installer.readJuliaCompatRange("")).toEqual("*")
expect(installer.readJuliaCompatRange("[compat]")).toEqual("*")
})
})
describe('version matching tests', () => { describe('version matching tests', () => {
describe('specific versions', () => { describe('specific versions', () => {
@@ -55,22 +184,33 @@ describe('version matching tests', () => {
expect(installer.getJuliaVersion([], 'nightly')).toEqual('nightly') expect(installer.getJuliaVersion([], 'nightly')).toEqual('nightly')
expect(installer.getJuliaVersion(testVersions, 'nightly')).toEqual('nightly') expect(installer.getJuliaVersion(testVersions, 'nightly')).toEqual('nightly')
}) })
it('LTS', () => {
// Update test when LTS is updated
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual(installer.getJuliaVersion(testVersions, '1.10'))
expect(installer.getJuliaVersion(testVersions, 'lts')).toEqual('1.10.5')
})
it('pre', () => {
expect(installer.getJuliaVersion(testVersions, 'pre')).toEqual('1.11.0')
})
}) })
describe('version ranges', () => { describe('version ranges', () => {
it('Chooses the highest available version that matches the input', () => { it('Chooses the highest available version that matches the input', () => {
expect(installer.getJuliaVersion(testVersions, '1')).toEqual('1.2.0') expect(installer.getJuliaVersion(testVersions, '1')).toEqual('1.11.0')
expect(installer.getJuliaVersion(testVersions, '1.0')).toEqual('1.0.5') expect(installer.getJuliaVersion(testVersions, '1.0')).toEqual('1.0.5')
expect(installer.getJuliaVersion(testVersions, '^1.3.0-rc1')).toEqual('1.3.0-rc4') expect(installer.getJuliaVersion(testVersions, '^1.3.0-rc1')).toEqual('1.11.0')
expect(installer.getJuliaVersion(testVersions, '^1.2.0-rc1')).toEqual('1.2.0') expect(installer.getJuliaVersion(testVersions, '^1.2.0-rc1')).toEqual('1.11.0')
expect(installer.getJuliaVersion(testVersions, '^1.10.0-rc1')).toEqual('1.11.0')
}) })
}) })
describe('include-prereleases', () => { describe('include-prereleases', () => {
it('Chooses the highest available version that matches the input including prereleases', () => { it('Chooses the highest available version that matches the input including prereleases', () => {
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', true)).toEqual('1.3.0-rc4') expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', true)).toEqual('1.11.0')
expect(installer.getJuliaVersion(testVersions, '1', true)).toEqual('1.3.0-rc4') expect(installer.getJuliaVersion(testVersions, '1', true)).toEqual('1.11.0')
expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', false)).toEqual('1.2.0') expect(installer.getJuliaVersion(testVersions, '^1.2.0-0', false)).toEqual('1.11.0')
}) })
}) })
@@ -84,6 +224,34 @@ describe('version matching tests', () => {
}) })
}) })
}) })
describe('julia compat versions', () => {
it('Understands "min"', () => {
let versions = ["1.6.7", "1.7.1-rc1", "1.7.1-rc2", "1.7.1", "1.7.2", "1.8.0"]
expect(installer.getJuliaVersion(versions, "min", false, "^1.7")).toEqual("1.7.1")
expect(installer.getJuliaVersion(versions, "min", true, "^1.7")).toEqual("1.7.1-rc1")
versions = ["1.6.7", "1.7.3-rc1", "1.7.3-rc2", "1.8.0"]
expect(installer.getJuliaVersion(versions, "min", false, "^1.7")).toEqual("1.8.0")
expect(installer.getJuliaVersion(versions, "min", true, "^1.7")).toEqual("1.7.3-rc1")
expect(installer.getJuliaVersion(versions, "min", false, "~1.7 || ~1.8 || ~1.9")).toEqual("1.8.0")
expect(installer.getJuliaVersion(versions, "min", true, "~1.7 || ~1.8 || ~1.9")).toEqual("1.7.3-rc1")
expect(installer.getJuliaVersion(versions, "min", false, "~1.8 || ~1.7 || ~1.9")).toEqual("1.8.0")
expect(installer.getJuliaVersion(versions, "min", true, "~1.8 || ~1.7 || ~1.9")).toEqual("1.7.3-rc1")
expect(installer.getJuliaVersion(versions, "min", false, "1.7 - 1.9")).toEqual("1.8.0")
expect(installer.getJuliaVersion(versions, "min", true, "1.7 - 1.9")).toEqual("1.7.3-rc1")
expect(installer.getJuliaVersion(versions, "min", true, "< 1.9.0")).toEqual("1.6.7")
expect(installer.getJuliaVersion(versions, "min", true, ">= 1.6.0")).toEqual("1.6.7")
// NPM's semver package treats "1.7" as "~1.7" instead of "^1.7" like Julia
expect(() => installer.getJuliaVersion(versions, "min", false, "1.7")).toThrow("Could not find a Julia version that matches")
expect(() => installer.getJuliaVersion(versions, "min", true, "")).toThrow("Julia project file does not specify a compat for Julia")
})
})
}) })
describe('installer tests', () => { describe('installer tests', () => {

View File

@@ -3,7 +3,7 @@ description: 'Setup a Julia environment and add it to the PATH'
author: 'Sascha Mann' author: 'Sascha Mann'
inputs: inputs:
version: version:
description: 'The Julia version to download (if necessary) and use. Example: 1.0.4' description: 'The Julia version to download (if necessary) and use. Use a string input to avoid unwanted decimal conversion e.g. 1.10 without quotes will be interpreted as 1.1. Examples: "1", "1.10", "lts", "pre"'
default: '1' default: '1'
include-all-prereleases: include-all-prereleases:
description: 'Include prereleases when matching the Julia version to available versions.' description: 'Include prereleases when matching the Julia version to available versions.'
@@ -12,11 +12,15 @@ inputs:
arch: arch:
description: 'Architecture of the Julia binaries. Defaults to the architecture of the runner executing the job.' description: 'Architecture of the Julia binaries. Defaults to the architecture of the runner executing the job.'
required: false required: false
default: '${{ runner.arch }}' default: 'default'
show-versioninfo: show-versioninfo:
description: 'Display InteractiveUtils.versioninfo() after installing' description: 'Display InteractiveUtils.versioninfo() after installing'
required: false required: false
default: 'false' default: 'false'
project:
description: 'The path to the project directory or file to use when resolving some versions (e.g. min)'
required: false
default: '' # Special value which fallsback to using JULIA_PROJECT if defined, otherwise "."
outputs: outputs:
julia-version: julia-version:
description: 'The installed Julia version. May vary from the version input if a version range was given as input.' description: 'The installed Julia version. May vary from the version input if a version range was given as input.'

1
bin

Submodule bin deleted from 31b4b500a3

View File

@@ -0,0 +1,16 @@
const cmd = `git --no-pager diff --exit-code --stat`
const proc = run(pipeline(cmd; stdin, stdout, stderr); wait = false)
wait(proc)
@info "" success(proc) proc.exitcode
if !success(proc)
recommended_cmd = "make everything-from-scratch"
msg = "##[error] found changed files after build. " *
"Please run `$(recommended_cmd)` and " *
"then check in all changes."
println(stderr, msg)
exit(1)
end

7
devdocs/README.md Normal file
View File

@@ -0,0 +1,7 @@
# Devdocs for the `setup-julia` repo
If you want to make a pull request to this repo, please read the following:
1. [Local development](local_setup.md)
If you have commit access to this repo, you may be interested in the following:
1. [Making a new release of this action](making_a_new_release.md)

49
devdocs/local_setup.md Normal file
View File

@@ -0,0 +1,49 @@
# Local development
## 1. Clone the repo
```bash
git clone git@github.com:julia-actions/setup-julia.git
cd setup-julia
```
## 2. Install NodeJS
### Unix, using `asdf` (recommended, but not required)
First, make sure that you have installed [`asdf`](https://asdf-vm.com/) on your local machine.
Then, `cd` to your clone of the repo and run the following commands:
```bash
asdf plugin add nodejs
asdf install
```
This will use `asdf` to install the correct version of NodeJS.
### Unix, but not using `asdf`
Instead of using `asdf`, you can instead choose to install NodeJS manually.
First, check the `.tool-versions` file in this repo, and see what version of NodeJS you need. Then, install that same version of NodejS on your local machine.
### Windows
`asdf` does not (currently) support Windows. So on Windows, you have to install NodeJS manually.
First, check the `.tool-versions` file in this repo, and see what version of NodeJS you need. Then, install that same version of NodejS on your local machine.
## 3. Working locally
First, `cd` to your clone of the repo. Now you can run the following commands:
```bash
npm ci
npm run build
npm run pack
```
When you are ready, you can commit your changes and push them to your PR.

View File

@@ -0,0 +1,56 @@
# Making a new release of this action (requires commit access)
In this guide, as an example, `v2.2.0` refers to the version number of the new release that you want to make.
## Part 1: Use the Git CLI to create and push the Git tags
Step 1: Create a new lightweight tag of the form `vMAJOR.MINOR.PATCH`.
```bash
git clone git@github.com:julia-actions/setup-julia.git
cd setup-julia
git fetch --all --tags
git checkout main
git --no-pager log -1
# Take note of the commit hash here.
# Now, create a new lightweight tag of the form `vMAJOR.MINOR.PATCH`.
#
# Replace `commit_hash` with the commit hash that you obtained from the
# `git log -1` step.
#
# Replace `v2.2.0` with the actual version number that you want to use.
git tag v2.2.0 commit_hash
```
Step 2: Once you've created the new release, you need to update the `v2` tag to point to the new release. For example, suppose that the previous release was `v2.1.0`, and suppose that you just created the new release `v2.2.0`. You need to update the `v2` tag so that it points to `v2.2.0`. Here are the commands:
```bash
# Create/update the new v2 tag locally, where the new v2 tag will point to the
# release that you created in the previous step.
#
# Make sure to change `v2.2.0` to the actual value for the tag that you just
# created in the previous step.
#
# The `-f` flag forcibly overwrites the old
# `v2` tag (if it exists).
git tag -f v2 v2.2.0
```
Step 3: Now you need to push the tags:
```bash
# Regular-push the new `v2.2.0` tag:
git push origin tag v2.2.0
# Force-push the new v2 tag:
git push origin tag v2 --force
```
## Part 2: Create the GitHub Release
Go to the [Releases](https://github.com/julia-actions/setup-julia/releases) section of this repo and create a new release (using the GitHub web interface).
For the "choose a tag" drop-down field, select the `v2.2.0` tag that you created and pushed in Part 1 of this guide.

View File

@@ -1,4 +1,4 @@
# Contributors # Misc notes for contributors
### Checkin ### Checkin

30934
dist/index.js vendored

File diff suppressed because one or more lines are too long

174
lib/installer.js generated
View File

@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
}) : function(o, v) { }) : function(o, v) {
o["default"] = v; o["default"] = v;
}); });
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || (function () {
if (mod && mod.__esModule) return mod; var ownKeys = function(o) {
var result = {}; ownKeys = Object.getOwnPropertyNames || function (o) {
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); var ar = [];
__setModuleDefault(result, mod); for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return result; return ar;
}; };
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
@@ -32,7 +42,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
}); });
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.showVersionInfo = exports.installJulia = exports.getDownloadURL = exports.getFileInfo = exports.getJuliaVersion = exports.getJuliaVersions = exports.getJuliaVersionInfo = void 0; exports.getJuliaVersionInfo = getJuliaVersionInfo;
exports.getJuliaVersions = getJuliaVersions;
exports.getProjectFilePath = getProjectFilePath;
exports.validJuliaCompatRange = validJuliaCompatRange;
exports.readJuliaCompatRange = readJuliaCompatRange;
exports.getJuliaVersion = getJuliaVersion;
exports.getFileInfo = getFileInfo;
exports.getDownloadURL = getDownloadURL;
exports.installJulia = installJulia;
exports.showVersionInfo = showVersionInfo;
const core = __importStar(require("@actions/core")); const core = __importStar(require("@actions/core"));
const exec = __importStar(require("@actions/exec")); const exec = __importStar(require("@actions/exec"));
const tc = __importStar(require("@actions/tool-cache")); const tc = __importStar(require("@actions/tool-cache"));
@@ -42,6 +61,9 @@ const os = __importStar(require("os"));
const path = __importStar(require("path")); const path = __importStar(require("path"));
const retry = require("async-retry"); const retry = require("async-retry");
const semver = __importStar(require("semver")); const semver = __importStar(require("semver"));
const toml = __importStar(require("toml"));
const LTS_VERSION = '1.10';
const MAJOR_VERSION = '1'; // Could be deduced from versions.json
// Translations between actions input and Julia arch names // Translations between actions input and Julia arch names
const osMap = { const osMap = {
'win32': 'winnt', 'win32': 'winnt',
@@ -92,7 +114,6 @@ function getJuliaVersionInfo() {
return JSON.parse(fs.readFileSync(versionsFile).toString()); return JSON.parse(fs.readFileSync(versionsFile).toString());
}); });
} }
exports.getJuliaVersionInfo = getJuliaVersionInfo;
/** /**
* @returns An array of all Julia versions available for download * @returns An array of all Julia versions available for download
*/ */
@@ -105,22 +126,112 @@ function getJuliaVersions(versionInfo) {
return versions; return versions;
}); });
} }
exports.getJuliaVersions = getJuliaVersions; /**
function getJuliaVersion(availableReleases, versionInput, includePrerelease = false) { * @returns The path to the Julia project file
*/
function getProjectFilePath(projectInput = "") {
let projectFilePath = "";
// Default value for projectInput
if (!projectInput) {
projectInput = process.env.JULIA_PROJECT || ".";
}
if (fs.existsSync(projectInput) && fs.lstatSync(projectInput).isFile()) {
projectFilePath = projectInput;
}
else {
for (let projectFilename of ["JuliaProject.toml", "Project.toml"]) {
let p = path.join(projectInput, projectFilename);
if (fs.existsSync(p) && fs.lstatSync(p).isFile()) {
projectFilePath = p;
break;
}
}
}
if (!projectFilePath) {
throw new Error(`Unable to locate project file with project input: ${projectInput}`);
}
return projectFilePath;
}
/**
* @returns A valid NPM semver range from a Julia compat range or null if it's not valid
*/
function validJuliaCompatRange(compatRange) {
let ranges = [];
for (let range of compatRange.split(",")) {
range = range.trim();
// An empty range isn't supported by Julia
if (!range) {
return null;
}
// NPM's semver doesn't understand unicode characters such as `≥` so we'll convert to alternatives
range = range.replace("≥", ">=").replace("≤", "<=");
// Cleanup whitespace. Julia only allows whitespace between the specifier and version with certain specifiers
range = range.replace(/\s+/g, " ").replace(/(?<=(>|>=|≥|<)) (?=\d)/g, "");
if (!semver.validRange(range) || range.split(/(?<! -) (?!- )/).length > 1 || range.startsWith("<=") || range === "*") {
return null;
}
else if (range.search(/^\d/) === 0 && !range.includes(" ")) {
// Compat version is just a basic version number (e.g. 1.2.3). Since Julia's Pkg.jl's uses caret
// as the default specifier (e.g. `1.2.3 == ^1.2.3`) and NPM's semver uses tilde as the default
// specifier (e.g. `1.2.3 == 1.2.x == ~1.2.3`) we will introduce the caret specifier to ensure the
// orignal intent is respected.
// https://pkgdocs.julialang.org/v1/compatibility/#Version-specifier-format
// https://github.com/npm/node-semver#x-ranges-12x-1x-12-
range = "^" + range;
}
ranges.push(range);
}
return semver.validRange(ranges.join(" || "));
}
/**
* @returns An array of version ranges compatible with the Julia project
*/
function readJuliaCompatRange(projectFileContent) {
var _a;
let compatRange;
let meta = toml.parse(projectFileContent);
if (((_a = meta.compat) === null || _a === void 0 ? void 0 : _a.julia) !== undefined) {
compatRange = validJuliaCompatRange(meta.compat.julia);
}
else {
compatRange = "*";
}
if (!compatRange) {
throw new Error(`Invalid version range found in Julia compat: ${compatRange}`);
}
return compatRange;
}
function getJuliaVersion(availableReleases, versionInput, includePrerelease = false, juliaCompatRange = "") {
// Note: `juliaCompatRange` is ignored unless `versionInput` is `min`
let version;
if (semver.valid(versionInput) == versionInput || versionInput.endsWith('nightly')) { if (semver.valid(versionInput) == versionInput || versionInput.endsWith('nightly')) {
// versionInput is a valid version or a nightly version, use it directly // versionInput is a valid version or a nightly version, use it directly
return versionInput; version = versionInput;
} }
// Use the highest available version that matches versionInput else if (versionInput == "min") {
let version = semver.maxSatisfying(availableReleases, versionInput, { includePrerelease }); // Resolve "min" to the minimum supported Julia version compatible with the project file
if (version == null) { if (!juliaCompatRange) {
throw new Error('Unable to use version "min" when the Julia project file does not specify a compat for Julia');
}
version = semver.minSatisfying(availableReleases, juliaCompatRange, { includePrerelease });
}
else if (versionInput == "lts") {
version = semver.maxSatisfying(availableReleases, LTS_VERSION, { includePrerelease: false });
}
else if (versionInput == "pre") {
version = semver.maxSatisfying(availableReleases, MAJOR_VERSION, { includePrerelease: true });
}
else {
// Use the highest available version that matches versionInput
version = semver.maxSatisfying(availableReleases, versionInput, { includePrerelease });
}
if (!version) {
throw new Error(`Could not find a Julia version that matches ${versionInput}`); throw new Error(`Could not find a Julia version that matches ${versionInput}`);
} }
// GitHub tags start with v, remove it // GitHub tags start with v, remove it
version = version.replace(/^v/, ''); version = version.replace(/^v/, '');
return version; return version;
} }
exports.getJuliaVersion = getJuliaVersion;
function getDesiredFileExts() { function getDesiredFileExts() {
let fileExt1; let fileExt1;
let hasFileExt2; let hasFileExt2;
@@ -206,6 +317,7 @@ function getFileInfo(versionInfo, version, arch) {
return null; return null;
} }
if (!versionInfo[version]) { if (!versionInfo[version]) {
core.error(`Encountered error: ${err}`);
throw err; throw err;
} }
for (let file of versionInfo[version].files) { for (let file of versionInfo[version].files) {
@@ -224,10 +336,35 @@ function getFileInfo(versionInfo, version, arch) {
} }
} }
} }
// The following block is just to provide improved log messages in the CI logs.
// We specifically want to improve the case where someone is trying to install
// Julia 1.6 or 1.7 on Apple Silicon (aarch64) macOS.
{
const one_fileext_is_targz = (fileExt1 == "tar.gz") || (fileExt2 == "tar.gz");
const one_fileext_is_dmg = (fileExt1 == "dmg") || (fileExt2 == "dmg");
const one_fileext_is_targz_and_other_is_dmg = one_fileext_is_targz && one_fileext_is_dmg;
// We say that "this Julia version does NOT have native binaries for Apple Silicon"
// if and only if "this Julia version is < 1.8.0"
const this_julia_version_does_NOT_have_native_binaries_for_apple_silicon = semver.lt(version, '1.8.0');
const this_is_macos = osPlat == 'darwin';
if (this_is_macos && one_fileext_is_targz_and_other_is_dmg && this_julia_version_does_NOT_have_native_binaries_for_apple_silicon) {
const msg = `It looks like you are trying to install Julia 1.6 or 1.7 on ` +
`the "macos-latest" runners.\n` +
`"macos-latest" now resolves to "macos-14", which run on Apple ` +
`Silicon (aarch64) macOS machines.\n` +
`Unfortunately, Julia 1.6 and 1.7 do not have native binaries ` +
`available for Apple Silicon macOS.\n` +
`Therefore, it is not possible to install Julia with the current ` +
`constraints.\n` +
`For instructions on how to fix this error, please see the following Discourse post: ` +
`https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019`;
core.error(msg);
}
}
} }
core.error(`Encountered error: ${err}`);
throw err; throw err;
} }
exports.getFileInfo = getFileInfo;
function getDownloadURL(fileInfo, version, arch) { function getDownloadURL(fileInfo, version, arch) {
const baseURL = `https://julialangnightlies-s3.julialang.org/bin/${osMap[osPlat]}/${arch}`; const baseURL = `https://julialangnightlies-s3.julialang.org/bin/${osMap[osPlat]}/${arch}`;
// release branch nightlies, e.g. 1.6-nightlies should return .../bin/linux/x64/1.6/julia-latest-linux64.tar.gz // release branch nightlies, e.g. 1.6-nightlies should return .../bin/linux/x64/1.6/julia-latest-linux64.tar.gz
@@ -245,7 +382,6 @@ function getDownloadURL(fileInfo, version, arch) {
} }
return fileInfo.url; return fileInfo.url;
} }
exports.getDownloadURL = getDownloadURL;
function installJulia(dest, versionInfo, version, arch) { function installJulia(dest, versionInfo, version, arch) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
// Download Julia // Download Julia
@@ -313,7 +449,6 @@ function installJulia(dest, versionInfo, version, arch) {
} }
}); });
} }
exports.installJulia = installJulia;
/** /**
* Test if Julia has been installed and print the version. * Test if Julia has been installed and print the version.
* *
@@ -350,4 +485,3 @@ function showVersionInfo(showVersionInfoInput, version) {
} }
}); });
} }
exports.showVersionInfo = showVersionInfo;

76
lib/setup-julia.js generated
View File

@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
}) : function(o, v) { }) : function(o, v) {
o["default"] = v; o["default"] = v;
}); });
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || (function () {
if (mod && mod.__esModule) return mod; var ownKeys = function(o) {
var result = {}; ownKeys = Object.getOwnPropertyNames || function (o) {
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); var ar = [];
__setModuleDefault(result, mod); for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return result; return ar;
}; };
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
@@ -36,15 +46,18 @@ const core = __importStar(require("@actions/core"));
const tc = __importStar(require("@actions/tool-cache")); const tc = __importStar(require("@actions/tool-cache"));
const fs = __importStar(require("fs")); const fs = __importStar(require("fs"));
const https = __importStar(require("https")); const https = __importStar(require("https"));
const os = __importStar(require("os"));
const path = __importStar(require("path")); const path = __importStar(require("path"));
const installer = __importStar(require("./installer")); const installer = __importStar(require("./installer"));
// Note: before we index into this dict, we always first do `.toLowerCase()` on
// the key.
//
// Therefore, this dict does not need to account for differences in case.
const archSynonyms = { const archSynonyms = {
'x86': 'x86', 'x86': 'x86',
'X86': 'x86',
'x64': 'x64', 'x64': 'x64',
'X64': 'x64', 'x86_64': 'x64',
'aarch64': 'aarch64', 'aarch64': 'aarch64',
'ARM64': 'aarch64',
'arm64': 'aarch64' 'arm64': 'aarch64'
}; };
function run() { function run() {
@@ -65,25 +78,52 @@ function run() {
core.debug(`ERROR: Could not retrieve runner IP: ${err}`); core.debug(`ERROR: Could not retrieve runner IP: ${err}`);
}); });
} }
// Inputs // Inputs.
const versionInput = core.getInput('version'); // Note that we intentionally strip leading and lagging whitespace by using `.trim()`
const includePrereleases = core.getInput('include-all-prereleases') == 'true'; const versionInput = core.getInput('version').trim();
const originalArchInput = core.getInput('arch'); const includePrereleases = core.getInput('include-all-prereleases').trim() == 'true';
const originalArchInput = core.getInput('arch').trim();
const projectInput = core.getInput('project').trim(); // Julia project file
// It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}` // It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}`
// while the strategy matrix only contains a key `${{ matrix.version }}`. // while the strategy matrix only contains a key `${{ matrix.version }}`.
// In that case, we want the action to fail, rather than trying to download julia from an URL that's missing parts and 404ing. // In that case, we want the action to fail, rather than trying to download julia from an URL that's missing parts and 404ing.
// We _could_ fall back to the default but that means that builds silently do things differently than they're meant to, which // We _could_ fall back to the default but that means that builds silently do things differently than they're meant to, which
// is worse than failing the build. // is worse than failing the build.
if (!versionInput) { if (!versionInput) { // if `versionInput` is an empty string
throw new Error('Version input must not be null'); throw new Error('Version input must not be null');
} }
if (!originalArchInput) { if (versionInput == '1.6') {
core.notice('[setup-julia] If you are testing 1.6 as a Long Term Support (lts) version, consider using the new "lts" version specifier instead of "1.6" explicitly, which will automatically resolve the current lts.');
}
if (!originalArchInput) { // if `originalArchInput` is an empty string
throw new Error(`Arch input must not be null`); throw new Error(`Arch input must not be null`);
} }
const arch = archSynonyms[originalArchInput]; if (originalArchInput == 'x64' && os.platform() == 'darwin' && os.arch() == 'arm64') {
core.warning('[setup-julia] x64 arch has been requested on a macOS runner that has an arm64 (Apple Silicon) architecture. You may have meant to use the "aarch64" arch instead (or left it unspecified for the correct default).');
}
let processedArchInput;
if (originalArchInput == "default") {
// If the user sets the `arch` input to `default`, then we use the
// architecture of the machine that we are running on.
processedArchInput = os.arch();
core.debug(`The "arch" input is "default", so we will use the machine arch: ${processedArchInput}`);
}
else {
processedArchInput = originalArchInput;
}
// Note: we convert the key `processedArchInput` to lower case
// before we index into the `archSynonyms` dict.
const arch = archSynonyms[processedArchInput.toLowerCase()];
core.debug(`Mapped the "arch" from ${processedArchInput} to ${arch}`);
// Determine the Julia compat ranges as specified by the Project.toml only for special versions that require them.
let juliaCompatRange = "";
if (versionInput === "min") {
const projectFilePath = installer.getProjectFilePath(projectInput);
juliaCompatRange = installer.readJuliaCompatRange(fs.readFileSync(projectFilePath).toString());
}
const versionInfo = yield installer.getJuliaVersionInfo(); const versionInfo = yield installer.getJuliaVersionInfo();
const availableReleases = yield installer.getJuliaVersions(versionInfo); const availableReleases = yield installer.getJuliaVersions(versionInfo);
const version = installer.getJuliaVersion(availableReleases, versionInput, includePrereleases); const version = installer.getJuliaVersion(availableReleases, versionInput, includePrereleases, juliaCompatRange);
core.debug(`selected Julia version: ${arch}/${version}`); core.debug(`selected Julia version: ${arch}/${version}`);
core.setOutput('julia-version', version); core.setOutput('julia-version', version);
// Search in cache // Search in cache

9041
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,5 @@
{ {
"name": "setup-julia", "name": "setup-julia",
"version": "2.1.0",
"private": true, "private": true,
"description": "setup Julia action", "description": "setup Julia action",
"main": "lib/setup-julia.js", "main": "lib/setup-julia.js",
@@ -21,25 +20,26 @@
"author": "Sascha Mann <git@mail.saschamann.eu>", "author": "Sascha Mann <git@mail.saschamann.eu>",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.10.1", "@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1", "@actions/exec": "^1.1.1",
"@actions/io": "^1.1.3", "@actions/io": "^1.1.3",
"@actions/tool-cache": "^2.0.1", "@actions/tool-cache": "^2.0.2",
"async-retry": "^1.3.3", "async-retry": "^1.3.3",
"semver": "^7.6.0" "semver": "^7.7.0",
"toml": "^3.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/async-retry": "^1.4.8", "@types/async-retry": "^1.4.9",
"@types/jest": "^29.5.12", "@types/jest": "^30.0.0",
"@types/node": "^20.12.8", "@types/node": "^25.2.0",
"@types/retry": "^0.12.5", "@types/retry": "^0.12.5",
"@types/semver": "^7.5.8", "@types/semver": "^7.7.0",
"@vercel/ncc": "^0.38.1", "@vercel/ncc": "^0.38.3",
"jest": "^29.7.0", "jest": "^30.0.5",
"jest-circus": "^29.7.0", "jest-circus": "^30.0.3",
"nock": "^13.5.4", "nock": "^14.0.8",
"prettier": "^3.2.5", "prettier": "^3.6.2",
"ts-jest": "^29.1.2", "ts-jest": "^29.4.0",
"typescript": "^5.4.5" "typescript": "^5.9.2"
} }
} }

View File

@@ -9,6 +9,10 @@ import * as path from 'path'
import retry = require('async-retry') import retry = require('async-retry')
import * as semver from 'semver' import * as semver from 'semver'
import * as toml from 'toml'
const LTS_VERSION = '1.10'
const MAJOR_VERSION = '1' // Could be deduced from versions.json
// Translations between actions input and Julia arch names // Translations between actions input and Julia arch names
const osMap = { const osMap = {
@@ -76,15 +80,116 @@ export async function getJuliaVersions(versionInfo): Promise<string[]> {
return versions return versions
} }
export function getJuliaVersion(availableReleases: string[], versionInput: string, includePrerelease: boolean = false): string { /**
if (semver.valid(versionInput) == versionInput || versionInput.endsWith('nightly')) { * @returns The path to the Julia project file
// versionInput is a valid version or a nightly version, use it directly */
return versionInput export function getProjectFilePath(projectInput: string = ""): string {
let projectFilePath: string = ""
// Default value for projectInput
if (!projectInput) {
projectInput = process.env.JULIA_PROJECT || "."
} }
// Use the highest available version that matches versionInput if (fs.existsSync(projectInput) && fs.lstatSync(projectInput).isFile()) {
let version = semver.maxSatisfying(availableReleases, versionInput, {includePrerelease}) projectFilePath = projectInput
if (version == null) { } else {
for (let projectFilename of ["JuliaProject.toml", "Project.toml"]) {
let p = path.join(projectInput, projectFilename)
if (fs.existsSync(p) && fs.lstatSync(p).isFile()) {
projectFilePath = p
break
}
}
}
if (!projectFilePath) {
throw new Error(`Unable to locate project file with project input: ${projectInput}`)
}
return projectFilePath
}
/**
* @returns A valid NPM semver range from a Julia compat range or null if it's not valid
*/
export function validJuliaCompatRange(compatRange: string): string | null {
let ranges: Array<string> = []
for(let range of compatRange.split(",")) {
range = range.trim()
// An empty range isn't supported by Julia
if (!range) {
return null
}
// NPM's semver doesn't understand unicode characters such as `≥` so we'll convert to alternatives
range = range.replace("≥", ">=").replace("≤", "<=")
// Cleanup whitespace. Julia only allows whitespace between the specifier and version with certain specifiers
range = range.replace(/\s+/g, " ").replace(/(?<=(>|>=|≥|<)) (?=\d)/g, "")
if (!semver.validRange(range) || range.split(/(?<! -) (?!- )/).length > 1 || range.startsWith("<=") || range === "*") {
return null
} else if (range.search(/^\d/) === 0 && !range.includes(" ")) {
// Compat version is just a basic version number (e.g. 1.2.3). Since Julia's Pkg.jl's uses caret
// as the default specifier (e.g. `1.2.3 == ^1.2.3`) and NPM's semver uses tilde as the default
// specifier (e.g. `1.2.3 == 1.2.x == ~1.2.3`) we will introduce the caret specifier to ensure the
// orignal intent is respected.
// https://pkgdocs.julialang.org/v1/compatibility/#Version-specifier-format
// https://github.com/npm/node-semver#x-ranges-12x-1x-12-
range = "^" + range
}
ranges.push(range)
}
return semver.validRange(ranges.join(" || "))
}
/**
* @returns An array of version ranges compatible with the Julia project
*/
export function readJuliaCompatRange(projectFileContent: string): string {
let compatRange: string | null
let meta = toml.parse(projectFileContent)
if (meta.compat?.julia !== undefined) {
compatRange = validJuliaCompatRange(meta.compat.julia)
} else {
compatRange = "*"
}
if (!compatRange) {
throw new Error(`Invalid version range found in Julia compat: ${compatRange}`)
}
return compatRange
}
export function getJuliaVersion(availableReleases: string[], versionInput: string, includePrerelease: boolean = false, juliaCompatRange: string = ""): string {
// Note: `juliaCompatRange` is ignored unless `versionInput` is `min`
let version: string | null
if (semver.valid(versionInput) == versionInput || versionInput.endsWith('nightly')) {
// versionInput is a valid version or a nightly version, use it directly
version = versionInput
} else if (versionInput == "min") {
// Resolve "min" to the minimum supported Julia version compatible with the project file
if (!juliaCompatRange) {
throw new Error('Unable to use version "min" when the Julia project file does not specify a compat for Julia')
}
version = semver.minSatisfying(availableReleases, juliaCompatRange, {includePrerelease})
} else if (versionInput == "lts") {
version = semver.maxSatisfying(availableReleases, LTS_VERSION, { includePrerelease: false });
} else if (versionInput == "pre") {
version = semver.maxSatisfying(availableReleases, MAJOR_VERSION, { includePrerelease: true });
} else {
// Use the highest available version that matches versionInput
version = semver.maxSatisfying(availableReleases, versionInput, {includePrerelease})
}
if (!version) {
throw new Error(`Could not find a Julia version that matches ${versionInput}`) throw new Error(`Could not find a Julia version that matches ${versionInput}`)
} }
@@ -173,6 +278,7 @@ export function getFileInfo(versionInfo, version: string, arch: string) {
} }
if (!versionInfo[version]) { if (!versionInfo[version]) {
core.error(`Encountered error: ${err}`)
throw err throw err
} }
@@ -193,8 +299,39 @@ export function getFileInfo(versionInfo, version: string, arch: string) {
} }
} }
} }
// The following block is just to provide improved log messages in the CI logs.
// We specifically want to improve the case where someone is trying to install
// Julia 1.6 or 1.7 on Apple Silicon (aarch64) macOS.
{
const one_fileext_is_targz = (fileExt1 == "tar.gz") || (fileExt2 == "tar.gz");
const one_fileext_is_dmg = (fileExt1 == "dmg") || (fileExt2 == "dmg");
const one_fileext_is_targz_and_other_is_dmg = one_fileext_is_targz && one_fileext_is_dmg;
// We say that "this Julia version does NOT have native binaries for Apple Silicon"
// if and only if "this Julia version is < 1.8.0"
const this_julia_version_does_NOT_have_native_binaries_for_apple_silicon = semver.lt(
version,
'1.8.0',
);
const this_is_macos = osPlat == 'darwin';
if (this_is_macos && one_fileext_is_targz_and_other_is_dmg && this_julia_version_does_NOT_have_native_binaries_for_apple_silicon) {
const msg = `It looks like you are trying to install Julia 1.6 or 1.7 on ` +
`the "macos-latest" runners.\n` +
`"macos-latest" now resolves to "macos-14", which run on Apple ` +
`Silicon (aarch64) macOS machines.\n` +
`Unfortunately, Julia 1.6 and 1.7 do not have native binaries ` +
`available for Apple Silicon macOS.\n` +
`Therefore, it is not possible to install Julia with the current ` +
`constraints.\n` +
`For instructions on how to fix this error, please see the following Discourse post: ` +
`https://discourse.julialang.org/t/how-to-fix-github-actions-ci-failures-with-julia-1-6-or-1-7-on-macos-latest-and-macos-14/117019`
core.error(msg);
}
}
} }
core.error(`Encountered error: ${err}`)
throw err throw err
} }

View File

@@ -1,20 +1,22 @@
import * as core from '@actions/core' import * as core from '@actions/core'
import * as exec from '@actions/exec'
import * as tc from '@actions/tool-cache' import * as tc from '@actions/tool-cache'
import * as fs from 'fs' import * as fs from 'fs'
import * as https from 'https' import * as https from 'https'
import * as os from 'os'
import * as path from 'path' import * as path from 'path'
import * as installer from './installer' import * as installer from './installer'
// Note: before we index into this dict, we always first do `.toLowerCase()` on
// the key.
//
// Therefore, this dict does not need to account for differences in case.
const archSynonyms = { const archSynonyms = {
'x86': 'x86', 'x86': 'x86',
'X86': 'x86',
'x64': 'x64', 'x64': 'x64',
'X64': 'x64', 'x86_64': 'x64',
'aarch64': 'aarch64', 'aarch64': 'aarch64',
'ARM64': 'aarch64',
'arm64': 'aarch64' 'arm64': 'aarch64'
} }
@@ -38,28 +40,56 @@ async function run() {
}) })
} }
// Inputs // Inputs.
const versionInput = core.getInput('version') // Note that we intentionally strip leading and lagging whitespace by using `.trim()`
const includePrereleases = core.getInput('include-all-prereleases') == 'true' const versionInput = core.getInput('version').trim()
const originalArchInput = core.getInput('arch') const includePrereleases = core.getInput('include-all-prereleases').trim() == 'true'
const originalArchInput = core.getInput('arch').trim()
const projectInput = core.getInput('project').trim() // Julia project file
// It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}` // It can easily happen that, for example, a workflow file contains an input `version: ${{ matrix.julia-version }}`
// while the strategy matrix only contains a key `${{ matrix.version }}`. // while the strategy matrix only contains a key `${{ matrix.version }}`.
// In that case, we want the action to fail, rather than trying to download julia from an URL that's missing parts and 404ing. // In that case, we want the action to fail, rather than trying to download julia from an URL that's missing parts and 404ing.
// We _could_ fall back to the default but that means that builds silently do things differently than they're meant to, which // We _could_ fall back to the default but that means that builds silently do things differently than they're meant to, which
// is worse than failing the build. // is worse than failing the build.
if (!versionInput) { if (!versionInput) { // if `versionInput` is an empty string
throw new Error('Version input must not be null') throw new Error('Version input must not be null')
} }
if (!originalArchInput) { if (versionInput == '1.6') {
core.notice('[setup-julia] If you are testing 1.6 as a Long Term Support (lts) version, consider using the new "lts" version specifier instead of "1.6" explicitly, which will automatically resolve the current lts.')
}
if (!originalArchInput) { // if `originalArchInput` is an empty string
throw new Error(`Arch input must not be null`) throw new Error(`Arch input must not be null`)
} }
const arch = archSynonyms[originalArchInput] if (originalArchInput == 'x64' && os.platform() == 'darwin' && os.arch() == 'arm64') {
core.warning('[setup-julia] x64 arch has been requested on a macOS runner that has an arm64 (Apple Silicon) architecture. You may have meant to use the "aarch64" arch instead (or left it unspecified for the correct default).')
}
let processedArchInput: string;
if (originalArchInput == "default") {
// If the user sets the `arch` input to `default`, then we use the
// architecture of the machine that we are running on.
processedArchInput = os.arch();
core.debug(`The "arch" input is "default", so we will use the machine arch: ${processedArchInput}`)
} else {
processedArchInput = originalArchInput;
}
// Note: we convert the key `processedArchInput` to lower case
// before we index into the `archSynonyms` dict.
const arch = archSynonyms[processedArchInput.toLowerCase()]
core.debug(`Mapped the "arch" from ${processedArchInput} to ${arch}`)
// Determine the Julia compat ranges as specified by the Project.toml only for special versions that require them.
let juliaCompatRange: string = "";
if (versionInput === "min") {
const projectFilePath = installer.getProjectFilePath(projectInput)
juliaCompatRange = installer.readJuliaCompatRange(fs.readFileSync(projectFilePath).toString())
}
const versionInfo = await installer.getJuliaVersionInfo() const versionInfo = await installer.getJuliaVersionInfo()
const availableReleases = await installer.getJuliaVersions(versionInfo) const availableReleases = await installer.getJuliaVersions(versionInfo)
const version = installer.getJuliaVersion(availableReleases, versionInput, includePrereleases) const version = installer.getJuliaVersion(availableReleases, versionInput, includePrereleases, juliaCompatRange)
core.debug(`selected Julia version: ${arch}/${version}`) core.debug(`selected Julia version: ${arch}/${version}`)
core.setOutput('julia-version', version) core.setOutput('julia-version', version)