[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

HDF5 filter plugin packaging guidelines



Hello,

I've tried to condense what I proposed in my previous mail on this
topic[1] into documentation maintained in a git repository:
https://salsa.debian.org/science-team/h5f-packaging-guidelines

Since I didn't get replies to that mail I didn't feel there was
consensus enough to call it mini-policy, so I went for "guidelines".
Anyone can edit it to contribute their own bits of experience.

I'm pasting below the (short) content of the guidelines. I hope it can
be helpful to people packaging and using HDF5 filter plugins.

[1] https://lists.debian.org/debian-science/2022/12/msg00016.html

The current content of the repository is this:
 - - - - - - - - - - -
# HDF5 filter plugin packaging guidelines


# Naming conventions

A good default name for a package containing an HDF5 filter plugin is
`hdf5-filter-plugin-*-{serial,openmpi}` which matches how HDF5 documentation
refers to them.

For packages that ship multiple plugins, or that ship plugins and other code,
you can `Provide:` one or more `hdf5-filter-plugin-*-{serial,openmpi}` virtual
package names, so that packages requiring the plugin can depend on it, however
it is being distributed.


# openmpi versions of plugins

You are free to package the two versions in two different packages, or in a
single one.

If you bundle them in a single package, you can use virtual package names to
show that it contains both versions.


# testing openmpi versions of plugins

This is a simple way of testing that the openmpi version of a plugin loads
correctly:

```
H5PY_ALWAYS_USE_MPI=1 python3
>>> import h5py
>>> h5py.h5z.filter_avail(<code>)
```

You can use it in `debian/tests/control` to have autopkgtests check that
plugins load correctly:

```
Test-Command: python3 -c 'import sys, h5py; sys.exit(not h5py.h5z.filter_avail(32008))'
Depends: python3, python3-h5py, @, @recommends!
Restrictions: allow-stderr

Test-Command: H5PY_ALWAYS_USE_MPI=1 python3 -c 'import sys, h5py; sys.exit(not h5py.h5z.filter_avail(32008))'
Depends: python3, python3-h5py, @, @recommends!
Restrictions: allow-stderr
```

This example uses 32008 as an example filter plugin ID, which is the ID for
bitshuffle: remember to change it with the one(s) for your own package!
 - - - - - - - - - - -


Enrico

-- 
GPG key: 4096R/634F4BD1E7AD5568 2009-05-08 Enrico Zini <enrico@enricozini.org>

Attachment: signature.asc
Description: PGP signature


Reply to: