JuliaRegistries / JuliaRegistries/CompatHelper.jl

Meta-issue: deploy the `force_latest_compatible_version` fix to the most common CI providers

Open
#298 4 comments 0 reactions 0 assignees View on GitHub
bug fix
Dominant language
Julia
Stars
147
Forks
43
Avg merge
21h 27m
Merged PRs (30d)
2

Description

As of Julia 1.7, the `Pkg.test` function now has the optional `force_latest_compatible_version` keyword argument, which provides the solution to #160.

---

However, in order to deploy the `force_latest_compatible_version` fix into production, we need to modify the various continuous integration (CI) platforms to support auto-detection of CompatHelper/Dependabot pull requests. Basically, we need to modify the CI configurations as follows:

If the CI job is a pull request job, and the pull request was made by CompatHelper or Dependabot, then use the following `Pkg.test` command:
```julia
Pkg.test(; force_latest_compatible_version = true)
```

If the CI job is not a pull request job, or if it is a pull request job but the pull request was not made by CompatHelper or Dependabot, then use the following `Pkg.test` command:
```julia
Pkg.test(; force_latest_compatible_version = false)
```

Note that the `force_latest_compatible_version` keyword argument requires at least Julia 1.7. Therefore, for Julia versions prior to Julia 1.7, you should not provide the `force_latest_compatible_version` keyword argument.

---

In https://github.com/julia-actions/julia-runtest/pull/20, we implemented the auto-detection as follows. We look at the name of the branch from which the pull request was made, and:
- If the branch name starts with either `compathelper/` or `dependabot/julia`, we say that the current job is a CompatHelper/Dependabot job.
- Otherwise, we say that the current job is not a CompatHelper/Dependabot job.

---

This table tracks our progress:

| Row | CI provider | Notes | Status | Repository | Pull Requests |
| --- | ----------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------ | --------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| 1 | GitHub Actions CI | For users that are using the [`julia-actions/julia-runtest`](https://github.com/julia-actions/julia-runtest) action | :white_check_mark: | [julia-actions/julia-runtest](https://github.com/julia-actions/julia-runtest) | https://github.com/julia-actions/julia-runtest/pull/20 |
| 2 | GitHub Actions CI | For users that are NOT using the [`julia-actions/julia-runtest`](https://github.com/julia-actions/julia-runtest) action | :x: | | |
| 3 | Travis CI | For users that are using the default Travis CI setup for Julia | :x: | [travis-ci/travis-build](https://github.com/travis-ci/travis-build) | |
| 4 | AppVeyor CI | For users that are using [JuliaCI/Appveyor.jl](https://github.com/JuliaCI/Appveyor.jl) | :x: | [JuliaCI/Appveyor.jl](https://github.com/JuliaCI/Appveyor.jl) | |
| 5 | Buildkite CI | For users that are using the JuliaGPU Buildkite | :x: | [JuliaCI/julia-test-buildkite-plugin](https://github.com/JuliaCI/julia-test-buildkite-plugin) | |
| 6 | GitLab CI | | :x: | | |
| 7 | Cirrus CI | For users that are using [ararslan/CirrusCI.jl](https://github.com/ararslan/CirrusCI.jl) | :x: | [ararslan/CirrusCI.jl](https://github.com/ararslan/CirrusCI.jl) | |

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the progress table and the existing julia-actions/julia-runtest pull request 20, then inspect the provider-specific repositories named there, including travis-ci/travis-build, JuliaCI/Appveyor.jl, JuliaCI/julia-test-buildkite-plugin, and ararslan/CirrusCI.jl. Compare each CI setup with the Julia 1.7 Pkg.test behavior described in the issue; done means the remaining providers support the requested CompatHelper/Dependabot detection and version handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
ci-cd, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.