feat: add environment metadata file sysand_env/env.toml#175
feat: add environment metadata file sysand_env/env.toml#175victor-linroth-sensmetry merged 14 commits intomainfrom
sysand_env/env.toml#175Conversation
f5eb786 to
2ff1dba
Compare
What about IRIs for non-PURL usages? Since names will likely not be unique (e.g. 10 projects named "Requirements"), how will they be disambiguated to the user? |
Well, our solution for name collisions is to use namespaces(/publishers). If you don't use them, then you don't get the solution. |
I highly suggest using paths relative to manifest/
Why would anyone care about collisions in what is effectively a display name? If a user has multiple projects named the same, they have bigger issues than some ambiguous name. |
|
Maybe also add |
sysand_envsysand_env/current.toml
sysand_env/current.tomlsysand_env/current.toml
sysand_env/current.tomlsysand_env/current.toml
2ff1dba to
dea655c
Compare
sysand_env/current.tomlsysand_env/env.toml
ec6f714 to
51e123f
Compare
Since editable projects are expected to change frequently, how will
Which workspace? Workspace that owns this env? Or another unrelated one? |
Hmm, good question. Could maybe be updated whenever the env is updated. Or simply simply drop
Yeah, I think the idea at least is to have common lockfile, env and build directory in a workspace. This is to indicate of that is the case and which projects are workspace memebers. |
Agree on dropping
Ok, so current workspace. Yeah, having common env/lockfile/build dir is a sensible thing to do. |
Add a TODO to this effect somewhere. Not sure what to do about this longer term, as |
Put a TODO in |
…t of the current project. Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
Signed-off-by: victor.linroth.sensmetry <victor.linroth@sensmetry.com>
69b8c6d to
8a0772d
Compare
andrius-puksta-sensmetry
left a comment
There was a problem hiding this comment.
Looks good.
This PR adds a
env.tomlcontaining metadata for the projects installed in the local environment(inluding editable projects not present inside the
sysand_envfolder).Each project has the following fields:
publisher: String (optional).Publisher of the project. Intended for display purposes.
name: String (optional).Name of the project. Intended for display purposes.
version: String (required).Version of the project.
path: String (required).Path to the root directory of the project.
If the project is not
editablethis should be relativeto the env directory and otherwise it should be relative
to the workspace root.
identifiers: Array of strings (required for non-editable projects)List of identifiers (IRIs) used for the project.
The first identifier is to. be considered the canonical
identifier, and if the project is not
editablethisis the IRI it is installed as. The rest are considered
as aliases. Can only be empty for
editableprojects.usages: Array of strings.Usages of the project. Intended for tools needing to
track the interdependence of project in the environment.
editable: bool.Indicator of wether the project is fully installed in
the environment or located elsewhere.
workspace: Indicator of wether the project is part of a workspace.The current implementation doesn't change how
projects.txtworks and is intended to offer a transition step between env structures. Theenv.tomlisn't directly managed byLocalDirectoryEnvironmentsince such a thing will likely require a change in theWriteEnvironmenttrait. In particular it would have to offer the ability to give alias identifiers in addition to the main IRI used for installation (since we want to communicate the dependency structure between projects we need all aliases as well, at least if we want to incrementally add or remove from the environment).Also since the current implementation of workspaces only affects the
buildcommand, theworkspacefield isn't really effective at the moment, but should work as expected once the workspace feature catches up.Example: