Before we make fpm aware of the fpm-registry, we should create a minimal working implementation for a local registry (this registry might even be built-in to simplify things a bit at the beginning).
In analogy to Cargo we could use a syntax like:
[dependencies]
[dependencies.toml-f]
version = "^0.2.1"
registry = "internal" # or URI to a registry
[dependencies.M_CLI2]
version = "^0.1.0"
registry = "default" # for whatever the default URI will be
This requires:
- a way to specify and match version requirements (
src/fpm/versioning.f90 defines only a version type)
- the possibility to cache dependencies in a project (we have
build/cache.toml, alternatively a lock file)
- a format for the registry (JSON?, TOML?, XML?, SQL?) and an fpm package implementing the format
(the fpm-registry has both TOML and JSON representations of the registry right now)
- an interface to fetch from URIs that are not
local:// or file:// (libcurl interface or just shell escape to curl/wget)
A full registry is discussed in #35
Before we make fpm aware of the fpm-registry, we should create a minimal working implementation for a local registry (this registry might even be built-in to simplify things a bit at the beginning).
In analogy to Cargo we could use a syntax like:
This requires:
src/fpm/versioning.f90defines only a version type)build/cache.toml, alternatively a lock file)(the fpm-registry has both TOML and JSON representations of the registry right now)
local://orfile://(libcurl interface or just shell escape to curl/wget)A full registry is discussed in #35