JuliaRegistries / JuliaRegistries/CompatHelper.jl
Meta-issue: deploy the `force_latest_compatible_version` fix to the most common CI providers
- 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