Skip to content
Snippets Groups Projects
changelog.md 29.4 KiB
Newer Older
Karim Ahmed's avatar
Karim Ahmed committed
# Release Notes

Moving to python 3.11: updating dependencies and update calibration notebooks and modules accordingly

# 3.14.4

[AGIPD][Correct] New feature for lit-pixel counter
[AGIPD][Correct] Refactor write_file on AgipdCorrections to create indexes using the DataFile
[AGIPD][PC] Fixing plotting in summary notebook
[AGIPD][LPD] Add DataFile.create_legacy_source
[LPD][Correct] Write corrected data as new source and link to old source name
[Jungfrau][Dark] use CalibrationData to retrieve prior CCVs
[Jungfrau][Correct] Test ROI for JF1M
[Jungfrau][Correct] use new correct data source and link to old data source
[Jungfrau] roi-definitions to update_config.py script
[PNCCD][Correct] New corrected data source and link to legacy source
[Epix100][Correct] New corrected data source and a link to old data source
[Gotthard2]: Avoid getting wrong data sources or including control devices' sources.
[xfel-calibrate]: expose mincpus argument as --slurm-mincpus
[Fix] Pin the pillow version
[Test] Configure and Include new test runs
[Test] Swap order of dicts for DeepDiff
[Webservice] Remove extra slash from reports-folder config
[Webservice] Use MUNGE credential with update_conf requests
[CalCatAPI] port markdown tables of found constants
[CalCatAPI] Convert digits and boolean to float and the rest to string
Make constant tables in both markdown & latex format

## 3.14.3

Update report creation to use texlive/2022
fix: Update documentations after EL9 update

## 3.14.2

[AGIPD][Correct][CS] Fix badpixelsCS before we have multiple CCVss to have same BadPixels shapes.
[AGIPD] Modernize use of extra_data to get AGIPD control data
[AGIPD][Correct] use np.nanmin and np.nanmax to avoid nans when modules are missing
[AGIPD][Correct] bug when plotting gain data of only 0 after it's info was discarded by DAQ
[Shimadzu][Correct] fix for less expected images
Remove unnecessary 'module load' command from jobs to be repeated
Remove reference to anaconda/3 module
flake8 repository has moved from gitlab to github

## 3.14.1

[AGIPD][CORRECT][DARK] Break wrong assumption for availability for 1st module.
[AGIPD][CS] new current source calibration constant.
[AGIPD][CS] Correction using Current source slopes.
[Shimadzu][CORRECT] Fix name of index group in output files.
[JUNGFRAU][FF] Feat: new notebook for producing gain constants.
Feat/ci new runners python311.
Create an unreadable temp directory for testing PermissionError.

## 3.14.0

- [shimadzu] Add support ofr PCA-based dynamic flat-field corrections of Shimadzu HPVX2 data.
- [AGIPD] Fix PC processing to allow for a single module.
- [AGIPD] Remove default value for caldb_root.
- Add staging version of new CalCat API to retrieve calibration data (to be superseded by extra.calibration).
- Add API to create calibration constant data files and inject directly into CalCat.
- Configure number of required characterization runs from CalCat based on operation mode.

Karim Ahmed's avatar
Karim Ahmed committed
## 3.13.0

- [AGIPD][PC] Fixing ValueError.
- [Gotthard2][Dark] Sort dark runs.
- [ePix100][Correct] Correcting one train for epix100 and storing a list of one pulseId.
- [Doc] Change log update with latest releases.
- [Gotthard2][Correct] Add `idx` to `da_to_pdu` to use in picking correct `data_source`.
- [LPD][Dark] Sort Dark runs by Gain.
- [Webservice] Use AW status on myMdC for warnings that prevent launching correction.
- [Webservice] Move list of three gain/run detectors into webservice config yaml.
- [Webservice] add environment bin/ to PATH if not already there.
- Convert request time to local timezone in report.
- Don't keep DEBUG level logging from requests_oauthlib.
- Avoid using `run_metadata()` by default, to not fail for EXDF-v0.5 files.

## 3.12.6

- [Jungfrau][Correct] Avoid NAN disturbance for correction plots scale
- [Timepix] Updating Timepix3 Calibration Pipeline for compatibility with new Karabo Implementation + some general improvements
- [Timepix] Allow pipelines to be part of nodes in DataFile API
- [Timepix] Throw pasha at it
- [Timepix] Store labels assigned to pixels

## 3.12.5

- SPARTA AGIPD Single Module integration

## 3.12.4

- [Gotthard2][Correct] Store mask data properly for gotthard2 25um
- Make the run type regex for skipping JF darks less aggressive

- [webservice] Update Kafka config to use EuXFEL broker

## 3.12.2
Karim Ahmed's avatar
Karim Ahmed committed

- [GH2] Temporary workaround for processing HIREX detector's dark runs using the correct data sources
- [GH2][Correct] Show number of available trains and raise ValueError for runs with no trains
- [GH2][Correct] New paramater to reverse second GH2 25um module
- [Jungfrau][Correct] Fix not returning after finding a dark fixed gain constants
- [Jungfrau][Dark][Correct] Improve Jungfrau plots
- [Webservice] Add new detector HIREX to 3 dark runs detectors

## 3.12.1
- [AGIPD][PC] Summary notebook for PC processing
Karim Ahmed's avatar
Karim Ahmed committed
- [GH2][Correct][Dark] Break assumptions on receiver names
- [Webservice] Create correction reports in MyMdC when jobs have finished
- [Webservice] Use leading zeros in usr/Reports folders
- Make serve_overview resistant against missing karabo-da in data-mapping
- Add links to DESY grafana for running jobs in serve_overview

## 3.12.0
- [AGIPD][Correct] Bug for using drop with a list in AGIPD CORR NB
- [AGIPD][Correct] Try to simplify & speed up file reading code
- [GH2][Correct][DARK] Feat/add support for gh2 25um
- [Jungfrau][Correct] Update rows A1256 LUT after rotation
- [Jungfrau][Dark] Account for dark runs not taken by the MDL device
- [JUNGFRAU][Dark] Fix bad pixel constant from darks taken in burst mode
- [REMI] Add and enhance plots, more documentation, clean-up and some deprecation
- [TEST] Update AGIPD tests with xray-gain, add DSSC, ePix100 tests and update reference folder path
- [TEST] clearer comparison of HDF5 files
- DataFile: Don't write creationDate & updateDate unless specified

## 3.11.5
- Update CalParrot==0.3 and EXtra-data==1.15.1 dependencies
- [DSSC][Dark][Correct] No longer restrict memory cells to a multiple of 100s and add lower deviation for memory cells parameter conditions.
- [Webservice] Catch errors on failure to launch dark processing
- Add script to update dark run status in myMdC
- [Epix100][Correct] Calcat error when no gain is retrieved
- [REMI] Disable trailing trigger by default

## 3.11.4
- [Jungfrau][Correct] Force fixed gain for JF data in burst mode

- [Jungfrau][Correct] Force replacement for gain value in Jungfrau correction
- [DSSC] Allow 900 memory cells for DSSC darks to workaround appearance of cell 810

- [Jungfrau][Dark] Reflect WRONG_GAIN_VALUE over a pixel in all gain for badpixels map
- [AGIPD][Dark] Add timings
- [Jungfrau][Correct] New A1256 JF Strixel

- [webservice] Add JUNGF and PEP 8 on the line


## 3.11.3
- [AGIPD][LPD][DARK] Show table for bad pixels bitmaps
- [AGIPD][CORRECT] Process all AGIPD trains if the PPU device is missing or if no trigger
- [AGIPD][DARK] Sort dark runs
- [AGIPD][DARK] Improvements for reading conditions by creating a new data class for multiple runs
- [AGIPD][FF] Fixing FF summary performance plots

- [Jungfrau] [Correct] Add thresholding for ROI projections
- [Jungfrau][Correct][Dark] Fix manual edit for operating conditions
- [Jungfrau][DARK] Validate and reorder dark runs before processing
- [EPIX][FF] ePixFF characterization

- [REMI] Add support for virtual trailing trigger

- Fix manually submitting the confirmation

- move some logs to DEBUG and extend the report sleep

- Expose --blc-stripes to update_config.py and fix old parameter names

## 3.11.2
- Operational release for SPB to support configurable rounding thresholds.

## 3.11.1
- [AGIPD][CORRECT] Use calcat_interface and remove precorrection notebook
- [EPIX100] Feat: Compliance with update to receiver device
- [REMI] Various fixes and improvements for quad DLDs
- [REMI] Fix missing re-allocation of trigger array with neither FEL nor PPL
- [Tests] Fix: Accept uppercase calibration type
- [Test] Find difference by default
- Clearer error when xfel-calibrate would run no jobs
- Detect cycle automatically in update_config script
- Fix link to CalCat

## 3.11.0

- [AGIPD][Correct] Handle selecting multiple trains per PPU trigger
- [AGIPD][Dark] Fix: Skip corrupted frame from dark processing
- [LPD1M] Automatically decide whether to inject & use memory cell order
- [LPD1M][Dark] Use EXtra-data to create darks from >1 sequence file
- [LPD1M][Correct] Use parameter names instead of IDs to find constants
- [LPD1M][Correct] Using CALCAT interface
- [LPD1M][Correct] Fix: Constant type conversion
- [LPD1M][Correct] Use the fragment file and remove the precorrection notebook
- [LPD-Mini] Rework cell order condition to match LPD-1M again
- [JUNGFRAU][pnCCD][ePix100] Feat: new method to display CCV metadata in reports
- [JUNGFRAU][CORRECT] Add fragment file and remove precorrection notebook
- [EPIX][DARK] Mark dead pixels as Bad Pixels
- [EPIX][CORR] Optimize histograms and plots
- [GH2][Correct] Move false warning and disable gain correction as printed.
- [GH2][Correct] Remove the precorrection notebook and add fragment
- [TIMEPIX] Add select parameters to update_config
- [TIMEPIX] Fix types of notebook arguments
- [xfel-calibrate] Fix: Break the line properly into latex when the next line starts with `_`
- [Webservice] Don't mark jobs as finished just because they disappear from `squeue` output
- [Webservice] Use status AW in myMdC if correction failed for some detectors in a run
- Add a pytest to run a dict of CALLAB test runs before releases
- Look up CCVs using parameter_name in place of parameter_id
- Replace `max-exfl016` and `max-exfl017` into `max-exfl-cal001` and `max-exfl-cal002`, respectively.
- Make metadata directory name match report filename
- Add reorder_axes function

Karim Ahmed's avatar
Karim Ahmed committed
## 3.10.3
Karim Ahmed's avatar
Karim Ahmed committed

Karim Ahmed's avatar
Karim Ahmed committed
- [LPD][Correct] Harden against empty sequencee sets with train-on-demand
- [JF][correct] Add missing gain mode parameter
- [Timepix3] Add centroiding notebook

## 3.10.2

- [PNCCD][CORRECT] Fix: Skip error for missing gain
- [PNCCD][CORRECT] Fix: Hack to wrong ctrl bias voltage values p002857

- [LPD][Correct] Fix axis order for LPD-1M RelativeGain constant

- [LPDMini][Dark] Add only number of available data trains into data_samples
- [LPDMini][Dark] Fix first notebook cell to execute CL through the webservice
- [LPDMini] Feat: Inject gain constants notebook

- [Jungfrau] Workaround for `SPB_CFEL_JF1M` as the modules start with `09` not `01`
Karim Ahmed's avatar
Karim Ahmed committed

Karim Ahmed's avatar
Karim Ahmed committed
- Fix update_config to work with non-AGIPD and add REMI
Karim Ahmed's avatar
Karim Ahmed committed

Karim Ahmed's avatar
Karim Ahmed committed
## 3.10.1

- [JUNGFRAU][CORRECT] Using calcat interface
- [JUNGFRAU][CORRECT][DARK] Extend accepted detectors based on substrings of karabo_id
Karim Ahmed's avatar
Karim Ahmed committed

- [LPD Mini][CORRECT][DARK] Initial work on LPD Mini notebooks
- [PNCCD][CORRECT] Avoid raising a CalCat error while retrieving metadata for missing gain constant from DB
Karim Ahmed's avatar
Karim Ahmed committed

## 3.10.0
Karim Ahmed's avatar
Karim Ahmed committed

- [ePix100][Correct] Avoid including histogram calculator with empty array
- [ePix100][Correct] Remove pre notebook
Karim Ahmed's avatar
Karim Ahmed committed

- [pnCCD][Correct] Using calcat interface
- [pnCCD][Correct] Record fragment file and remove pre correction notebook
- [ePix100][pnCCD][Correct] Display creation time for retrieved constants
Karim Ahmed's avatar
Karim Ahmed committed

- [AGIPD][Correct] error out only if all sources are empty
- [AGIPD][Correct] exit notebook if no correction files are found for the selected sequence
Karim Ahmed's avatar
Karim Ahmed committed

- [DSSC][DARK] Group all slow data to the same aggregator
Karim Ahmed's avatar
Karim Ahmed committed

- [JUNGFRAU][Correct] Use DataCollection.from_paths for reading JF CORR files for plots
- Support for saving metadata fragments & merging into calibration_metadata.yml
Karim Ahmed's avatar
Karim Ahmed committed

- [REMI] Save pulse amplitudes during discrimination
- [REMI] Make plots robust against no edges or no hits in data
Karim Ahmed's avatar
Karim Ahmed committed

- [Webservice] Add script to check run in webservice DB
- [Webservice] Fix database lock timeouts
Karim Ahmed's avatar
Karim Ahmed committed

## 3.9.2

- [AGIPD] Adding back overwrite parameter
- [AGIPD] Another hotfix for experimenting DAQ filtering at SPB

## 3.9.1

- Hotfix version for 3.9.0
- [AGIPD] LitFrameFinder bug fix for experimenting DAQ filtering at SPB

## 3.9.0

Karim Ahmed's avatar
Karim Ahmed committed
- [GH2][CORRECT]CALCAT interface.
- [ePix100][CORRECT]CALCAT interface.
- [pnCCD][CORRECT]Use `DataFile` to store aligned corrected data.
Karim Ahmed's avatar
Karim Ahmed committed
- [GH2][CORRECT]Use `DataFile` to store aligned corrected data.
- [ePix100][CORRECT]Use `DataFile` to store aligned corrected data.
Karim Ahmed's avatar
Karim Ahmed committed


- [AGIPD][SlopesFF][CORRECT]Add the deviation for all possible memory cells and enable correction using
these FF constants with more memory cells.
  - https://git.xfel.eu/calibration/pycalibration/-/merge_requests/806
  - https://git.xfel.eu/calibration/pycalibration/-/merge_requests/613
- [AGIPD][CORRECT]Fix checking ccv_variant condition for AGIPD.
- [DSSC][Dark]Remove unused instrument parameter from DSSC dark notebook
- Update `nbparameterise` to 0.6.
- Update `EXtra-redu` to version 0.0.7
Karim Ahmed's avatar
Karim Ahmed committed

## 3.8.1

- Hotfix version for 3.8.0 with
- update extra_redu version

## 3.8.0
-----

- [AGIPD][CORRECT] Clean up before AGIPD calcalt_interface changes
- [AGIPD][FF] Styling modification for both FF notebooks:1st nb cell, and removing unneeded imports
- [LPD] uses memory cell order as a condition for constants
- [LPD] [Correct] Don't pass default snapshot_at=None to calibration_client
- [LPD][JF][DataFile] Add parallel dataset compression
- [JF] Replace strixel cython code by NumPy implementation
- [EPIX100][CORRECT] Include gain and charge sharing to corrected data.
- New CALCAT interface
- Store CalCat requests/responses for reproducibility
- Update to calibration_client 11.2.0

## 3.7.6

- [AGIPD][CORRECT] Fix common mode correction: array reshaping and hardcoded 256 trains per file.
- [AGIPD][LFF] Improve lit frame selection
- [AGIPD][CORRECT] Fix common mode correction
  - Array reshaping.
  - Hardcoded 256 trains per file.

- [AGIPD][LFF] Improve lit frame selection:

  - fix the misalignment of selection by trains.
  - introduce super pattern selection.
  - guess missed patterns for patterns that repeat with constant step.
  - shows patterns that repeat with a constant step as one line in the report.


Karim Ahmed's avatar
Karim Ahmed committed
## 3.7.5

16-11-2022

-   `JUNGFRAU` Fix index location for ROI instrument output
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/765>

## 3.7.4


15-11-2022

-   `JUNGFRAU` Only emit a warning if all sequences of a job are empty
-   `JUNGFRAU` Fix storing multiple ROIs for a single module
-   `JUNGFRAU` Replicate a raw dataset in processed data for legacy analysis code

## 3.7.3

10-11-2022

-   `DataFile` Add support for older INDEX and METADATA versions.
-   `LPD` Fix histogram plotting if selected cell's data is identical
    for trains.
-   `JUNGFRAU` Avoid unclear error messages when the run has no
    trains.
-   `AGIPD` Change notebook-default setting of max-task-per-worker
    to 1.
-   `REMI` Allow pulse separation in REMI_DLD reconstruction to ignore FEL pulses.
-   `webservice` Fix timestamps in the overview page.
-   `webservice` Check run type more directly in myMdC response.

## 3.7.2

28-10-2022

-   `JUNGFRAU` Add support for strixel sensors
-   `JUNGFRAU` Shorter summary notebook for darks by default
-   `JUNGFRAU` Always align corrected data properly
-   `JUNGFRAU` Harden against 0 adc data in dark characterization
-   `REMI` Add support for quad nodes and various pulse separation
    improvements
-   `AGIPD` Allow manual photon energy input for photonization and add
    consistency plots
-   Grant priority partitions for set-up time

## 3.7.1

14-10-2022

-   `EPIX100` Add Common mode corrections to dark characterization
-   `EPIX100` Use a single value for temperature
-   `JUNGFRAU` Fix bad pixel masking
-   `JUNGFRAU` Limit number of plotted trains to 500 during
    corrections
-   `AGIPD` Don't fail when there are no trains in sequence file
-   `REMI` Use DataFile API and support asymmetric pump-probe patterns
-   Skip corrections for runs which match specific types

## 3.7.0

07-09-2022

-   `JUNGFRAU` Mask double sized pixels
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/689>
-   `LPD` Storing retrieved calibration constants in
    calibration_metadata.yml.
-   Storing the running logs in the report folder path instead of a
    [temp] folder wherever the processing ran from.
-   Selecting partitions based on beam time dates.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/725>
-   Creation time is not read from myMDC anymore.

## 3.6.4

20-08-2022

-   `AGIPD` Significant improvements to AGIPG LitFrameFinder
    implementation, including offline support.
-   `AGIPD` Fix misalignment of data and gain/mask when common mode is
    used with manual pulse slicing.

## 3.6.3

23-08-2022

-   `AGIPD` litframe finder configs in update_config
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/723>

## 3.6.2

15-08-2022

-   `EPIX100` - `JUNGFRAU` - `pnCCD` Retrieve constants precorrection
    notebooks.
-   `AGIPD` skip sanitization
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/654>
-   `AGIPD` New PC notebook
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/604>
-   `JUNGFRAU` Allow selecting ROIs to save 1D projections
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/699>

## 3.6.1

26-07-2022

Karim Ahmed's avatar
Karim Ahmed committed
-   `GH2` Correction and Dark notebooks.
Karim Ahmed's avatar
Karim Ahmed committed
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/658>,
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/684>,
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/707>
-   pin [xarray] to 2022.3.0
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/706>

## 3.6.0

20-07-2022

-   `LPD` - `DARK` Save bad pixel dark data as uint32, not float64.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/698>
-   `LPD` - `CORRECT` Add option to disable Oauth when using CalCat
    proxy.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/681>
-   `AGIPD` - `LPD` - `DSSC` - `DARK` Avoid printing errors for expected
    missing constant files.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/664>
-   `TESTS` Refactor and split [AGIPDCtrl] methods (old
    and new RAW data versions.) and add unit tests
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/651>,
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/646>
-   `webservice` Monitor SLURM jobs in a separate process.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/668>
-   `webservice` Restructure the SLURM database to give more
    meaningful success/failure information.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/683>
-   `XFEL-CALIBRATE` Recreate environments on demand for
    xfel-calibrate-repeat.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/660>
-   Upgrade the Jupyter packages to the latest version.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/697/diffs>
-   Update Extra-data to 1.12:
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/693>
    -   [EXtra-data] Disable [_use_voview] to be able to
        use [.files] or avoid using [.files]
        <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/682>,
        <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/688>

## 3.5.5

15-06-2022

-   `AGIPD` - `CORRECT` Expose max tasks per pool worker.

## 3.5.4

13-06-2022

-   `AGIPD` Convert bias_voltage parameter condition to integer in
    cal_tools.
-   `LPD` Fix correcting a single pulse.
-   `LPD` VCXI require 4 modules.

## 3.5.3

19-05-2022

-   `LPD` - `CORRECT` Optionally create virtual CXI files
-   `LPD` - `CORRECT` Expose max-nodes parameter
-   `AGIPD` Replace gain_choose_int by fused types
-   Fix missing install of restful_config.yaml
-   Fix use of xfel-calibrate --skip-report

## 3.5.2

16.05.2022

-   `LPD` - `CORRECT` New correction notebook for `LPD`
-   New [files] module to write European XFEL HDF5 corrected
    data files.

## 3.5.1

05-04-2022

-   Calibration Constant version's new [Variant] file
    attribute. To indicate method of handling the constant post
    retrieval.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/619>
-   `Epix100` dark Badpixels Map.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/637>
-   `skip-plots` flag to finish correction before plotting.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/635>
-   First trainId's timestamp as RAW data creation_time, if there is
    myMDC connection.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/630>
-   `AGIPD` correction can correct one cellId without plotting errors.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/642>
-   Fixed mode relative gain constants in `Jungfrau` can be retrieved.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/639>
-   Only instrument source is selected to check number of trains to dark
    process.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/636>
-   `AGIPD` trains for dark processing is selected for each module
    individually.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/653>
-   Produce report after trying to correct `AGIPD` run with no images.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/641>
-   `AGIPD`'s bias voltage for AGIPD1M is read from slow data.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/647>
-   Removed psutil dependency.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/653>
-   Update Pasha to 0.1.1
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/638>

## 3.5.0

01-03-2022

-   Updating Correction and dark notebooks for `JUNGFRAU`:
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/518>
-   Updating Correction and dark notebooks for `AGIPD`:
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/535>
-   Updating Correction and dark notebooks for `PnCCD`:
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/559>
-   Updating Correction and dark notebooks for `ePix100`:
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/500>
    -   `EXtra-data` is integrated to read files in pycalibration for
        `AGIPD`, `JUNGFRAU`, `ePix100`, and `PnCCD`. Dark and Correction
        notebooks.
    -   Pasha is now used for processing data for `JUNGFRAU`, `ePix100` and
        `PnCCD`.
    -   pyDetLib correction functions were removed (except for
        common-mode correction).
    -   [db-module] is useless now for `JUNGFRAU`, `ePix100`, and
        `PnCCD`. Some parameters were updated in dark and correction
        notebooks for the mentioned detectors.
-   `gain_mode` and burst mode are now available for
    `JUNGFRAU`.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/591>
-   `JUNGFRAU` has now a new badpixel value,
    `WRONG_GAIN_VALUE`.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/591>
-   Pass through available for testing in-progress ORCA service.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests?scope=all&state=merged&search=orca>
-   Non-calibrated RAW h5files are no longer copied.
-   High priority partitions ([upex-high and
    upex-middle]) are used for runs from ACTIVE and READY
    proposals, only.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/628>
-   Supporting to disable LPD Correction through the webservice.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/629>
-   Compatibility for old DAQ files for REMI is added.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/607>
-   server-overview refactors.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/593>
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/589>
-   AGIPD correction notebook support AgipdLitFrameFinder device.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/603>
-   Parsing code arguments in xfel-calibrate is refactored.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/575>
-   skip-plots option for AGIPD.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/581>
-   Native implementation for transposition of constants AGIPD.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/580>
-   Trains for AGIPD can be selected for correction.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/574>
-   Skip report flag in xfel-calibrate.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/579>
-   Fix ReadTheDocs.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/448>
-   Fix error reporting for re-injecting the same CCV.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/627>
-   Fix AGIPD for legacy runs without `gain_mode`.
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/617>
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/626>
-   Pinning markupsafe version 2.0.1
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/631>
-   Pinning psutil 5.9.0
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/535>
-   Updating Extra-data to 1.9.1
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/535>
-   Updating h5py to 3.5.0
    <https://git.xfel.eu/calibration/pycalibration/-/merge_requests/602>

## 3.4.3

20-10-2021

-   Update pyDetLib tag.
-   Add explicit dependencies on matplotlib, scipy.
-   Remove outdated matplotlib rcParams setting.
-   Update EXtra-geom to 1.6.
-   Remove cluster_profile parameter from notebooks which don't use
    it.
-   Fix checking availability for the concurrency parameter.
-   Fix launching work directly (not via Slurm).
-   Fix `sphinx-rep` temp folder recreation, if sphinx-rep
    already existed.
-   Fix missing string conversion for slurm-scheduling argument.
-   Fix title reports for multiple detectors per run folder.
-   Append to .out files for preemptable finalize job.
-   `AGIPD` `CORRECT` Reuse previously found constants.
-   `AGIPD` Fix missing memory cell index in SlopesPC constant
    sanitization.
-   `AGIPD` Only use bad pixels from darks in
    agipdutils.baseline_correct_via_stripes.
-   `AGIPD` `DARK` Use function to get list of karabo_da from run
    for making Slurm jobs.
-   `EPIX100` - `CORRECT` Set absolute_gain to false if relative gain
    was not retrieved.
-   `JUNGFRAU` Fix running for multiple modules and flip logic for
    do_relative_gain.
-   `JUNGFRAU` Style changes for Dark and Correct notebooks.
-   `REMI` Add notebook to reconstruct detector hits from raw data.
-   `webservice` Check run migration status using MyMDC.
-   Resolve \"Skip ZMQ tests if zmq connection for calibration DB not
    available\".
-   Reproducibility, step 1.

## 3.4.2

17-09-2021

-   Remove driver=core from all notebook
-   `webservice` Make use of Dynaconf for managing secrets.
-   `webservice` Make use of dedicated slurm partitions.
-   `webservice` Handle missing migration information (missing
    user.status fattr).
-   `webservice` Implement, raise, and catch, migration errors to send
    mdc messages.
-   `webservice` Simplify handling of user notebook paths.
-   `webservice` Update princess to 0.4 (use Unix sockets).
-   `webservice` Update MyMDC with begin and end times.
-   `webservice` create output folder before copying slow data.
-   `AGIPD` `CORRECT` read acq_rate from slow data.
-   `AGIPD` - `CORRECT` Set default memory cells to 352.
-   `AGIPD` `CORRECT` Set maximum pulses to correct based on file
    content.
-   `AGIPD` - `FF` Correctly label legends in figures.
-   `AGIPD` - `FF` Add HIBEF AGIPD500K and fix some issue with
    retrieval of conditions.
-   `JUNGFRAU` Add Gain setting to Jungfrau notebooks.
-   `JUNGFRAU` Fix max gain plot in LPD correct notebook
-   `JUNGFRAU` `DARK` Clearer error message for Jungfrau Dark
    notebooks no suitable files are found
-   `LPD` `CORRECT` Fix max gain plot.
-   `EPIX100` `CORRECT` Solve conflict between gain correction and
    clustering

## 3.4.1


16-07-2021

-   Update h5py to 3.3
-   Stop execution on notebook errors
-   `AGIPD` Add integration time as operating condition to all
    notebooks
-   `webservice` Add blocklist pattern when copying untouched files in
    webservice.
-   `webservice` Expose dark configurations in update_config.py
-   Fix MetadataClient.get_proposal_runs arguments call.
-   Fix Use snapshot for injecting constants for old PDU mappings
-   Fix the old time-summary (creation time for retrieved constants)
-   Update documentation notes on venv installation
-   Ignore all .so files in gitignore

## 3.4.0

28-06-2021

-   Update to Python 3.8.
-   Bump numpy to 1.20.3 and remove fabio.
-   remove PyQT dependency.
-   Disable dark requests from serve overview.
-   Update report upload parameter key.
-   Override locale to always use UTF-8.
-   Assorted cleanup of xfel-calibrate.
-   Fix pre-commit.
-   Use argparse only if name is main, call main with args dict.
-   `webservice` Use full hostname for webservice overview.
-   `webservice` Show clearer messages when running webservice in sim
    mode.
-   `webservice` Fix filename lineno and typos in webservice logs.
-   `webservice` Fix creating an extra run folder in run output
    folder.
-   `AGIPD` Parallelize gain/mask compression for writing corrected
    AGIPD files.
-   `AGIPD` - `DARK` Fix processing empty sequence files.
-   `AGIPD` - `PC` - `FF` Update notebooks with new CALCAT mapping.
-   `AGIPD` - `JUNGFRAU` Use all available sequences for processing
    darks for AGIPD and Jungfrau.
-   `AGIPD` - `LPD` - `DSSC` Fix retrieve old constants for comparison
    for modular detectors.
-   `LPD` Fix data paths in LPD notebook.
-   `REMI` Fix user notebook path for REMI correct notebook
    provisionally.
-   `EPIX100` - `CORRECT` Add Common mode correction.
-   Fix plotting-related warnings.
-   Test update config.
-   Test get_from_db and send_to_db.