You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drom uses too much hardcoded/assumed stuff preventing an efficient tests (like with cram tests) or security developement integrations.
AFAIK, a packaging effort is needed by :
not relying on system directories ($HOME and so on) because all system are not full Linux, MacOS or Windows:
there are more and more custom platforms (and i'm well placed to say so :)) that don't define such environment;
containers may not give such directories (that's the case for dune's sandboxing).
being able to generate a proper development environment without internet connection : OCaml is a good (but
underestimated) language for cybersecurity applications and they often need closed dev environments.
Whereas we can keep the current behavior for it's quite standard for many people, I think drom should be able to properly set its environment locally with the following :
add an option like --local-config which tells drom to generate a local config dir (in _drom/config ?) where drom-share is cloned properly;
add an option like --nested telling drom new to not look up for existing root (essentially for testing, I don't know if it would be useful elsewhere)
add an option like --opam-repos <opam-repositories> which adds automatically the given repositories in the created switch (in the same precedence order). This can be done manually after drom created the switch but as drom behavior is to manage opam for us, I think it makes sense. However, this may conflicts with --switch for we don't want to pollute another switch definition. This option should work only if the switch is local.
add an option like --opam-mirror <directory> telling drom to mirror the opam repositories in given directory (which may be outside the workspace for sharing with other projects)
add a --self-contained <perimeter> where perimeter would be config, opam or all (the default). config would implies --local-config and prevent drom to try looking for updates (thus disabling --share-version). opam would implies --opam-repos (with non empty list) and --opam-mirror with a default directory (like _drom/mirrors ?). all would trigger both config and opam.
The config directory should be stored in drom.toml but other parameters can be stored in drom configuration file.
The text was updated successfully, but these errors were encountered:
Drom uses too much hardcoded/assumed stuff preventing an efficient tests (like with cram tests) or security developement integrations.
AFAIK, a packaging effort is needed by :
underestimated) language for cybersecurity applications and they often need closed dev environments.
Whereas we can keep the current behavior for it's quite standard for many people, I think drom should be able to properly set its environment locally with the following :
--local-config
which tellsdrom
to generate a local config dir (in_drom/config
?) wheredrom-share
is cloned properly;--nested
tellingdrom new
to not look up for existing root (essentially for testing, I don't know if it would be useful elsewhere)--opam-repos <opam-repositories>
which adds automatically the given repositories in the created switch (in the same precedence order). This can be done manually afterdrom
created the switch but asdrom
behavior is to manage opam for us, I think it makes sense. However, this may conflicts with--switch
for we don't want to pollute another switch definition. This option should work only if the switch is local.--opam-mirror <directory>
tellingdrom
to mirror the opam repositories in given directory (which may be outside the workspace for sharing with other projects)--self-contained <perimeter>
where perimeter would beconfig
,opam
orall
(the default).config
would implies--local-config
and preventdrom
to try looking for updates (thus disabling--share-version
).opam
would implies--opam-repos
(with non empty list) and--opam-mirror
with a default directory (like_drom/mirrors
?).all
would trigger bothconfig
andopam
.The config directory should be stored in
drom.toml
but other parameters can be stored indrom
configuration file.The text was updated successfully, but these errors were encountered: