-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define proper build
or run
type for dependencies in DAQ packages' package.py
#129
Comments
Changing the "target release" to This is an enhancement which is not critically needed at the first rollout of spack release. |
|
I agree that we should go over the Having said that, obviously we'd want to distinguish the set of packages for |
I didn't realize that |
…gs in not only pybind11 but also moo, and only have an explicit (run-time) dependence on moo if python configuration is used in a package
…nly if they're only used in unit tests)
…hat's actually available on the web
…n we're dealing with a developer installation
…kage, which lets you choose whether you want to include developer tools (daq-cmake, cmake, etc.)
Should daq-cmake be loaded in when someone runs
where
It seems there are currently a few options:
|
Or have a |
That's (1) in my list, right? I've been working on giving
|
What about moving |
So the question then becomes, where should "somewhere else" be, when we're in a release (and not a development) environment? Also on the topic of a release environment: doesn't it seem like the demo described in https://dune-daq-sw.readthedocs.io/en/latest/packages/daqconf/InstructionsForCasualUsers/ should work in a release environment? Right now it doesn't because the scripts expect the |
…s needed when generating configs, come up with a ~dev version of daq-cmake which can still provide this while not bringing in its dependencies
…installation of dunedaq will work
To describe where things stand on the
|
…the possibly-unavailable sh module
… machines at CERN, but is now part of the standard docker installation
Changing the target release to |
…nctions (daq_add_python_bindings, etc.) only depend on daq-cmake in the build phase
…_model_path function where necessary
… daq-cmake is built, but IS needed by other packages which use it
Update since my post back in May: |
Also something potentially useful when thinking about how to wrap this up: I was incorrect in claiming on April 28th that a |
…the Python virtual environment and thus doesn't need to be specified as a Spack run-time dependency
…nt of externals continue to not depend on devtools, but regardless still depend on the systems umbrella package (needed for openssh and parts of gcc)
We've arrived at a fairly straightforward place.
|
…ck uses devtools (gdb, cmake, ninja) or not
…r the run environment. Runs in containers based on the ghcr.io/dune-daq/sl7-slim-externals:spack-dev-v1.1 image
…repo, but for the time being add it here (was used to generate ghcr.io/dune-daq/sl7-slim-externals:v1.1_runenv a couple of minutes ago)
…luding reinstatement of ninja (needed for spack load, it appears) and removal of a couple more packages
See comment in https://github.com/DUNE-DAQ/daq-deliverables/issues/107 from a couple minutes ago for an update. |
commit was made, I've altered the strategy for creating a slimmed down run-only environment from an fddaq~dev umbrella package to there simply being a separate externals repo for the run-only environment Revert "JCF: Issue #129: have a variant, +dev/~dev, determine whether the stack uses devtools (gdb, cmake, ninja) or not" This reverts commit b2a32d3.
…ete a couple more packages: unneeded llvm dependencies, m4 (used only by other build-only packages) and grpc (used only in daq-cmake)
Defining proper
run
orbuild
type of a dependency helps to minimize the number of packages loaded by spack. It also helps to get a precise set of packages needed for the running environment. This will help to produce a slimmer docker image for running, which will be very useful for Kubernetes.To achieve this, we will need to go through all the
depends_on
calls in the release repo templatespackage.py
files, and add dependency types to thedepends_on
call. Thedepends_on
entries in umbrella packages' package.py files are generated from release YAML files. The YAML file will need to have an additional attribute (e.g.dependent_type
) for each of the external dependency, and DAQ package.Even if a dependency meets all the types of
run
,build
,link
, it helps to puttype=('build', 'link', 'run')
explicitly in thedepends_on
call.Some examples:
In
daq-release/spack-repos/externals/packages/devtools/package.py
will be replaced by
In
daq-release/spack-repos/release-repo-template/packages/externals/package.py
will be replaced by
For the release YAML file, the changes will be like the following:
will be changed into:
Additionally, the
make-release-repo.py
script needs update to parse thedependent_type
attribute, especially convert the python list into tuple since YAML does not support tuple type but list type only, and add them to thedepends_on
entries.The text was updated successfully, but these errors were encountered: