Package Manager for Morphir #88
Replies: 2 comments
-
Package vs RepositoryPackage is the term we use to describe a set of related functions and types that we manage together in terms of versioning, ownership and access. In our highly distributed world though there's a lot of collaboration happening on the same package and we need to coordinate changes. Git does that using Repositories that are copies of the same Package with potentially divergent changes. Git provides commands to coordinate the changes between these repos. We will use the same abstraction in our Package Manager for Morphir and already started to model it here: https://github.com/finos/morphir-elm/blob/main/src/Morphir/IR/Repo.elm |
Beta Was this translation helpful? Give feedback.
-
I happened to come across this a few weeks back and I thought it made sense for morphir: https://github.com/package-url/purl-spec |
Beta Was this translation helpful? Give feedback.
-
One of the features we haven't implemented in the Morphir tooling yet is the ability to have dependencies between different Morphir packages. The only dependency that is currently allowed is on the Morphir SDK which is included implicitly. This was relatively easy to do since we didn't have to think about versioning, publishing and retrieving the SDK since it ships with the tooling. To support user-defined Morphir packages depending on each other we need a package manager that handles all those concerns.
Since there are many package managers out there it would be ideal if we could reuse them. Unfortunately, most of those package managers are language or platform specific and given that Morphir's exact goal is to be language independent we can't just pick one of them. The default conclusion here would be to build a specific one for Morphir but that wouldn't be in-line with our other principle of not wanting to invent a new language but be a bridge between existing ones. So the only remaining option is to do what we did with the language itself:
So we are going to start by defining those abstractions.
Beta Was this translation helpful? Give feedback.
All reactions