Skip to content

Local dependencies in the package-set #88

@btrepp

Description

@btrepp

Coming from using bower I'm missing bower link, spago is making it easier to consume others libraries but using bower it's damn handy to be able to link against local versions of packages when developing libraries/verifying changes etc.

Two options I can think of thus far.

  1. Dropping a symlink to .spago/package/local/
  2. Playing with packages .dhall to link in the other package.

The first is simple, but if your package has other deps it could be a fun little dependency hell.

For the latter, dhall is powerful enough that you can do things like

let tiled = ../tiled/spago.dhall

let mkPackage =
      https://raw.githubusercontent.com/spacchetti/spacchetti/20190105/src/mkPackage.dhall sha256:90974a8e07650e49a4197d4ce5b59e82740fd8469c8c1b9793939845ca8faad9

let upstream =
      https://raw.githubusercontent.com/spacchetti/spacchetti/20190105/src/packages.dhall sha256:04da9c924e05cb6b43447ffd13408d01992f3172eb80d5d94e7f1b14c76a5123

let overrides = {=}

let additions = 
    { tiled  = 
        mkPackage 
          tiled.dependencies
          "..\\..\\..\\..\\tiled"
          "master"
    }

let tiledset = tiled.packages    

in  upstream  overrides  additions // tiledset

This works, with the caveat that if you update the repo's master, you need to delete .spago\tiled\master\ to get spago install to copy everything again.

I can also appreciate that it's better to guide everyone to contribute more to the package sets, but this is more of a situation where having my own forked spachetti set/ overrides seems a tad overkill, especially as I'm still experimenting with what the 'package' should look like, so there's little purposing in publishing any of it.. yet.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions