owned this note
owned this note
Published
Linked with GitHub
---
name: DIALS core meeting 2021-02-25
tags: core meeting
---
# DIALS core meeting 2021-02-25
[![hackmd-github-sync-badge](https://hackmd.io/aGo2OtgUSRKx_Eta-RCZuQ/badge)](https://hackmd.io/aGo2OtgUSRKx_Eta-RCZuQ)
## Previous Actions
* [x] MG+ND: write a proposal for ['overall architecture discussion'](https://dials.github.io/kb/core/20200903#overall-architecture-discussion) and ['new installer'](https://dials.github.io/kb/core/20200903#new-installer)
* [ ] MG: organise a [typing intro lecture](https://dials.github.io/kb/core/20200917#typing-mypy), likely to happen in Q2.
* [ ] [cbflib conda-forge package](https://dials.github.io/kb/core/20201125#cbflib-conda-forge-package)
* [ ] ND to prepare an agenda for the [HDRMX meeting 16-18. March 2021](https://www.bnl.gov/mce2021/index.php)
* [ ] ASB to organise a side-meeting next to the HDRMX workshop
* [ ] ASB to explore what should happen to cbflib maintenance in the future
* [ ] ND to set up a [`cbflib_adaptbx` pull request](https://dials.github.io/kb/core/20201125#cbflib_adaptbx-dependency) for MAR detector fixes. Verify with `labelit_regression`.
* [ ] ASB [to run tests on dxtbx#288 as per comment](https://github.com/cctbx/dxtbx/pull/288#issuecomment-769206024)
* [x] [PR dials#1567](https://github.com/dials/dials/pull/1567)
* [x] GW to [run tests and merge](https://dials.github.io/kb/core/20210128#drop-python-2-idioms-and-compatibility-fixes-dials1567) if passing
* [ ] [dx2 proposal](https://dials.github.io/kb/core/20210128#dx2-proposal)
* [ ] MG to put in a PR to create a proposal in the proposal-space
* [ ] MG+ND: Come up with a proposal to [move away from all code being in header files](https://dials.github.io/kb/core/20201001#overall-architecture-discussion) and consolidate into a single library
## Agenda
### Construct Experiments directly rather than via DataBlocks [#288](https://github.com/cctbx/dxtbx/pull/288)
Can this be unblocked/merged?
* **AP:** Dan to try and generate a non-psana reproducer for the issue found by ASB
### DC2: DIALS installer
ND and MG prepared a proposal ([DC2](https://dials.github.io/kb/proposals/dc2)) on how the installer should work in the future.
Outcome of discussion: This is accepted as useful and we will do that.
WP1 and WP2 will happen first, then we will wait a bit before going to WP3/4.
### Change HDF5 plugin library
We currently use the plugin collection `hdf5-external-filter-plugins`, which is built from https://github.com/nexusformat/HDF5-External-Filter-Plugins. There is no activity really in that repository. Although I did manage to [build the plugin collection on Windows](https://github.com/conda-forge/hdf5-external-filter-plugins-feedstock/pull/4) I never tested that, and it looks like until last week nobody else did either.
[`hdf5plugin`](https://github.com/silx-kit/hdf5plugin) is an alternative collection. It contains a proper superset of the plugins we already have, is more actively supported, has more users, and a Windows build.
When we do move over:
* there may be a need to manually uninstall the `hdf5-e-f-p` package on existing installations
* the `hdf5plugin` package needs an `import hdf5plugin` before the plugins become available, which brings us back to where we were once before.
* **AP:** MG to come up with a set of spells to use `hdf5plugin`
* **AP:** GW to run a performance comparison
* **AP:** ws133 does not support AVX2, need to test that the conda-forge package isn't over-optimized
* DP would like to run tests before we change over
### Renaming `master` → `main`
[xia2](https://github.com/xia2/xia2/) has now renamed its main branch.
[dials#1606](https://github.com/dials/dials/pull/1606) is ready to go in, so is [dxtbx#317](https://github.com/cctbx/dxtbx/pull/317).
**AP:** MG to make this happen
### End DIALS/dxtbx for Python 2
Should we upgrade the DIALS/dxtbx `UserWarning`
```python
if sys.version_info.major == 2:
warnings.warn(
"Python 2 is no longer supported. "
"If you need Python 2.7 support please use the DIALS 2.2 release branch.",
UserWarning,
)
```
to a [xia2 hard stop](https://github.com/xia2/xia2/blob/main/src/xia2/__init__.py#L4)?
```python
if sys.version_info.major == 2:
sys.exit("Python 2 is no longer supported")
```
**AP:** MG to make this happen
### dxtbx comparator pseudo-classes
[dxtbx#302](https://github.com/cctbx/dxtbx/pull/302#issuecomment-778230823) found dxtbx comparator classes in `dxtbx.datablock`. These classes (`SequenceDiff`, `BeamDiff`, `ScanDiff`, `GoniometerDiff`, `DetectorDiff`) should really be functions. Given they are in datablock they could move to `dxtbx.model.experiment_list`, but possibly something like `dxtbx.model.compare` makes more sense?
(This is independent of [dxtbx#288](https://github.com/cctbx/dxtbx/pull/288) above)
**AP:** GW to add comment to that PR, rediscuss when ASB is present.
### Next meeting
Thursday, March 11th, 4pm UK time, 8am PDT.