Unsatisfiable requirements error between my personal packages

I wrote a package ASME_SectionVIII_Division3_Edition2021 which depends on two other packages that I wrote, KM620 and KD232, plus some other public packages. (None of my packages have real version numbers because I don’t have a local registry.)

The packages work together fine from the package’s environment:

(ASME_SectionVIII_Division3_Edition2021) pkg> st
Project ASME_SectionVIII_Division3_Edition2021 v0.1.0
Status `C:\Users\nboyer.AIP\.julia\dev\ASME_SectionVIII_Division3_Edition2021\Project.toml`
  [cbdf2221] AlgebraOfGraphics v0.6.14
  [336ed68f] CSV v0.10.9
  [13f3f980] CairoMakie v0.10.2
  [8be319e6] Chain v0.5.0
  [a93c6f00] DataFrames v1.5.0
  [d872a56f] ElectronDisplay v1.0.1
  [1fa38f19] Format v1.3.2
  [c27321d9] Glob v1.3.0
  [a98d9a8b] Interpolations v0.14.7
  [41458dd0] KD232 v0.1.0 `https://github.com/nathanrboyer/KD232.jl.git#master`
  [0ccbab1c] KM620 v0.1.0 `https://github.com/nathanrboyer/KM620.jl.git#master`
  [b964fa9f] LaTeXStrings v1.3.0
  [23fbe1c1] Latexify v0.15.18
  [e1fe445b] NativeFileDialog v0.2.1
  [bac558e1] OrderedCollections v1.4.1
  [f27b6e38] Polynomials v3.2.6
  [08abe8d2] PrettyTables v2.2.2
  [90137ffa] StaticArrays v1.5.16
  [fdbf4ff8] XLSX v0.9.0
  [37e2e46d] LinearAlgebra
  [10745b16] Statistics

(ASME_SectionVIII_Division3_Edition2021) pkg> up
    Updating registry at `C:\Users\nboyer.AIP\.julia\registries\General.toml`
    Updating git-repo `https://github.com/nathanrboyer/KM620.jl.git`
    Updating git-repo `https://github.com/nathanrboyer/KD232.jl.git`
  No Changes to `C:\Users\nboyer.AIP\.julia\dev\ASME_SectionVIII_Division3_Edition2021\Project.toml`
  No Changes to `C:\Users\nboyer.AIP\.julia\dev\ASME_SectionVIII_Division3_Edition2021\Manifest.toml`

However, it breaks when I try to work with the package in an external environment:

(@Code2021) pkg> st
Status `C:\Users\nboyer.AIP\.julia\environments\Code2021\Project.toml`
  [d29f79e6] ASME_SectionVIII_Division3_Edition2021 v0.1.0 `\\AIP-HQ-SRV1\Company Shared\Julia\ASME_SectionVIII_Division3_Edition2021#master`

(@Code2021) pkg> up
    Updating registry at `C:\Users\nboyer.AIP\.julia\registries\General.toml`
    Updating git-repo `\\AIP-HQ-SRV1\Company Shared\Julia\ASME_SectionVIII_Division3_Edition2021`
ERROR: Unsatisfiable requirements detected for package KM620 [0ccbab1c]:
 KM620 [0ccbab1c] log:
 ├─KM620 [0ccbab1c] has no known versions!
 └─restricted to versions * by ASME_SectionVIII_Division3_Edition2021 [d29f79e6] — no versions left
   └─ASME_SectionVIII_Division3_Edition2021 [d29f79e6] log:
     ├─possible versions are: 0.1.0 or uninstalled
     └─ASME_SectionVIII_Division3_Edition2021 [d29f79e6] is fixed to version 0.1.0
ASME_SectionVIII_Division3_Edition2021 Project.toml
name = "ASME_SectionVIII_Division3_Edition2021"
uuid = "d29f79e6-4313-439e-a1e0-c6c95527bf41"
authors = ["nathanrboyer"]
version = "0.1.0"

[deps]
AlgebraOfGraphics = "cbdf2221-f076-402e-a563-3d30da359d67"
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
Chain = "8be319e6-bccf-4806-a6f7-6fae938471bc"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
ElectronDisplay = "d872a56f-244b-5cc9-b574-2017b5b909a8"
Format = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8"
Glob = "c27321d9-0574-5035-807b-f59d2c89b15c"
Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
KD232 = "41458dd0-f39a-4bb6-a4e0-031fda6b0048"
KM620 = "0ccbab1c-04f8-4773-914b-89ad8e9d3a96"
LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
NativeFileDialog = "e1fe445b-aa65-4df4-81c1-2041507f0fd4"
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
Polynomials = "f27b6e38-b328-58d1-80ce-0feddd5e7a45"
PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
XLSX = "fdbf4ff8-1666-58a4-91e7-1b58723a45e0"

[compat]
AlgebraOfGraphics = "0.6"
CSV = "0.10"
CairoMakie = "0.8, 0.9, 0.10"
Chain = "0.5"
DataFrames = "1"
ElectronDisplay = "1"
Format = "1"
Glob = "1"
Interpolations = "0.14"
LaTeXStrings = "1"
Latexify = "0.15"
NativeFileDialog = "0.2"
OrderedCollections = "1"
Polynomials = "3"
PrettyTables = "1, 2"
StaticArrays = "1"
XLSX = "0.8, 0.9"
julia = "1.6"
KM620 Project.toml
name = "KM620"
uuid = "0ccbab1c-04f8-4773-914b-89ad8e9d3a96"
authors = ["nathanrboyer"]
version = "0.1.0"

[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f"
Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316"

Are you sure only the Project.toml files are being committed? If you have Manifest.toml files in the repo, it will use those.

If you have unregistered dependencies you need to manually add them to your new environment.

That sounds backwards. The problem is rather that Pkg ignores the package manifests and thus won’t know about the local dependencies being developed from local paths.

3 Likes

Is there something I can do differently with Manifest files to make this work more smoothly i.e. without manually adding all dependency package locations to every environment that will use this main package?

That did fix the problem.
(@Code2021) pkg> st
Status `C:\Users\nboyer.AIP\.julia\environments\Code2021\Project.toml`
  [d29f79e6] ASME_SectionVIII_Division3_Edition2021 v0.1.0 `\\AIP-HQ-SRV1\Company Shared\Julia\ASME_SectionVIII_Division3_Edition2021#master`
  [41458dd0] KD232 v0.1.0 `https://github.com/nathanrboyer/KD232.jl.git#master`
  [0ccbab1c] KM620 v0.1.0 `https://github.com/nathanrboyer/KM620.jl.git#master`

(@Code2021) pkg> up
    Updating registry at `C:\Users\nboyer.AIP\.julia\registries\General.toml`
    Updating git-repo `https://github.com/nathanrboyer/KM620.jl.git`
    Updating git-repo `\\AIP-HQ-SRV1\Company Shared\Julia\ASME_SectionVIII_Division3_Edition2021`
    Updating git-repo `https://github.com/nathanrboyer/KD232.jl.git`
  No Changes to `C:\Users\nboyer.AIP\.julia\environments\Code2021\Project.toml`
  No Changes to `C:\Users\nboyer.AIP\.julia\environments\Code2021\Manifest.toml`

The only recourse I know is to make the dependencies registered, so you may want to set up a local registry.

It was on my backlog to figure out at some point anyway …

Thank you!