Hi,

Cayetano Santos <csant...@inventati.org> writes:

> Hi,
>
> I’ve been having a look around all our HPC related packages. I tried to
> classify by organisation:
>
> - UxlFoundation (uxlfoundation.org)
>
>   + oneTBB - tbb, python-tbb, tbb-2020 - in (gnu packages tbb)
>   + oneDNN - oneapi-dnnl, oneapi-dnnl-for-r-torch - in (gnu packages
>   machine-learning)
>   + oneDPM -
>   + oneDPL -
>   + oneDAL -
>   + oneCCL -
>   + oneMath -
>
> - AdaptiveCpp (adaptivecpp.github.io)
>
>   + adaptivecpp - adaptivecpp - in (gnu packages sycl)
>
> - KhronosGroupd (khronosgroup.github.io)
>
>   + opensles - opensles - in (gnu packages audio)
>   + mangohud - mangohud - in (gnu packages graphics)
>   + opencl-headers - opencl-headers - in (gnu packages opencl)
>   + opencl-icd-loader - opencl-icd-loader - in (gnu packages opencl)
>   + xxx - xxx - in (gnu packages vulkan)
>
> - Rocm (rocm.docs.amd.com)
>
>   + llvm - llvm-for-rocm - in (gnu packages llvm)
>   + xxx - xxx - in (gnu packages rocm)
>
> Some of the previous need an update. I probably forget something, I’ll
> complete as I further investigate.
>
> To facilitate the upcoming maintenance of this (increasingly complex)
> ecosystem, I think we should probably try to organise these packages. At
> a minimum, we might:
>
> - UxlFoundation (uxlfoundation.org)

I'm not sure I like naming modules by the organization producing the
packages -- it sounds a bit like advertising at the level of the Guix
API :-). Which we've been happy to do with GNU packages but less so with
other packages.

I personally prefer the current state where things sorted by
areas/topographically; this is what we've historically done and it makes
for a nicer API in my opinion: (gnu packages electronics) is a good
example of a recent one that fit that.

[...]

> - Rocm (rocm.docs.amd.com)
>
>   + llvm - llvm-for-rocm - in (gnu packages rocm)
>   + xxx - xxx - in (gnu packages rocm)

Note that llvm-for-rocm is a variant of llvm that inherits from it
(IIRC), so can't be moved elsewehere without introducing cyclic
dependencies at the top level, as the inherit field is not delayed or
thunked (info "(guix) Cyclic Module Dependencies").

Note also that even if a single org packages are spread in multiple
modules, that's easy to work around with a per-team manifest that can be
placed under etc/teams/ with the listing of the revelant packages to be
maintained by the team.

-- 
Thanks,
Maxim

Reply via email to