JuliaRegistries / JuliaRegistries/CompatHelper.jl
Pkg.jl and CompatHelper.jl write `[sources]` section differently on v1.11
- Dominant language
- Julia
- Stars
- 147
- Forks
- 43
- Avg merge
- 21h 27m
- Merged PRs (30d)
- 2
Description
On Julia v1.11, the following code
```julia
using Pkg
showtoml(project) = println(read(joinpath(project, "Project.toml"), String))
project = "project"
mkdir(project)
Pkg.activate(project)
Pkg.add("CompatHelper")
# Create two packages and `dev` them to get the UUIDs
Pkg.generate(joinpath(project, "SomePackage"))
Pkg.generate(joinpath(project, "AnotherPackage"))
Pkg.develop([
PackageSpec(; path = joinpath(project, "SomePackage")),
PackageSpec(; path = joinpath(project, "AnotherPackage")),
])
showtoml(project)
```
creates an environment with this `Project.toml`:
```toml
[deps]
AnotherPackage = "70b51dde-ff63-4d56-bd06-f5c077573a96"
CompatHelper = "aa819f21-2bde-4658-8897-bab36330d9b7"
SomePackage = "3c4efd53-1385-4fe4-b6f1-2e1dbb823624"
```
Julia v1.11 allows for manually adding a `[sources]` section to automate the `Pkg.develop` part, which is useful for monorepos:
```julia
open(joinpath(project, "Project.toml"), "a") do io
println(io)
println(io, "[sources]")
println(io, "SomePackage = {path = \"SomePackage\"}")
println(io, "AnotherPackage = {path = \"AnotherPackage\"}")
end
showtoml(project)
```
```toml
[deps]
AnotherPackage = "70b51dde-ff63-4d56-bd06-f5c077573a96"
CompatHelper = "aa819f21-2bde-4658-8897-bab36330d9b7"
SomePackage = "3c4efd53-1385-4fe4-b6f1-2e1dbb823624"
[sources]
SomePackage = {path = "SomePackage"}
AnotherPackage = {path = "AnotherPackage"}
```
CompatHelper.jl will split this into separate sections
(see e.g. [this PR](https://github.com/agdestein/IncompressibleNavierStokes.jl/pull/84/files))
```julia
using CompatHelper
# I think CompatHelper.main() is doing something like this
CompatHelper.modify_project_toml("SomePackage", project, "0.1", false)
showtoml(project)
```
```toml
[deps]
AnotherPackage = "30d7d2c7-f9c0-4ce7-8ffa-160e2f9efd03"
CompatHelper = "aa819f21-2bde-4658-8897-bab36330d9b7"
SomePackage = "e796d48f-4455-4818-ba38-a7fd70694e68"
[sources.AnotherPackage]
path = "AnotherPackage"
[sources.SomePackage]
path = "SomePackage"
[compat]
SomePackage = "0.1"
```
On the other hand, doing Pkg.jl operations takes it back:
```julia
Pkg.add("LinearAlgebra")
showtoml(project)
```
```toml
[deps]
AnotherPackage = "30d7d2c7-f9c0-4ce7-8ffa-160e2f9efd03"
CompatHelper = "aa819f21-2bde-4658-8897-bab36330d9b7"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
SomePackage = "e796d48f-4455-4818-ba38-a7fd70694e68"
[sources]
AnotherPackage = {path = "AnotherPackage"}
SomePackage = {path = "SomePackage"}
[compat]
SomePackage = "0.1"
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.