Skip to content

Releases: datalab-org/datalab

v0.6.1

15 Aug 18:00
41b76f7
Compare
Choose a tag to compare

This patch release adds an API config option CONFIG.ROOT_PATH to allow deployments to easily serve the API under a subpath (e.g., \api) on the same subdomain as the app. It also features a new validation model for block data, which should currently have no user-facing effects, but will allow for more formal extensions of block schemas in the future.

What's Changed

  • Add DataBlockResponse model to sanitize blocks_obj in API by @ml-evs in #1310
  • Add CONFIG.ROOT_PATH option to deploy API from custom path by @ml-evs in #1315

Full Changelog: v0.6.0...v0.6.1

v0.6.0

08 Aug 18:00
0850aff
Compare
Choose a tag to compare

This release includes a frankly comical number of changes, spanning significant new functionality and UI redesign, a fledgling plugin ecosystem, as well as several bug and quality-of-life fixes, performance improvements and backwards-compatible API enhancements.

A more regular release cadence will resume after the summer, with fewer release candidates next time around!

Warning

This release also bumps the supported MongoDB version all the way from v3 to v8. Whilst older MongoDB versions should still continue to work, version 8 will now be tested and used in the docker builds, so we recommend you upgrade. For existing databases this requires you to first dump the database using mongodump with the old MongoDB version, then upgrade to the new version and restore the database with mongorestore. If you unsure about this process then please ask us for help!

Highlights

  • Extra functionality for all data tables: column selection, persistent user preferences and improved filtering.
  • Improved inventory management: native UI for hazard labels, CAS numbers and external barcodes, complementing the first release of the datalab-cheminventory-plugin for two-way sync with cheminventory.net.
  • Starting materials can now also have synthesis information recorded for them.
  • New blocks for UV-Vis data and in situ NMR data (developed in separate core plugin at datalab-app-plugin-insitu), as well as new file formats supported in the XRD (Rigaku's .rasx, variants of .xy), NMR (JCAMP-DX) blocks and media block (PDF documents).
  • A fledgling plugin ecosystem with ways to easily add new blocks to a specific datalab instance (docs), with datalab-server PyPI package for easier dependency management.
  • Improved item search throughout the API, removing the need to search on whitespace or punctuation delimited words (e.g., ID matches will now begin after just 3 characters, rather than needing to type a full ID).
  • More powerful UI block interactions via "events" that can be written purely Python (docs).

Full Changelog: v0.5.2...v0.6.0

v0.6.0-rc.4

31 Jul 21:02
cd30621
Compare
Choose a tag to compare
v0.6.0-rc.4 Pre-release
Pre-release

This release candidate makes some final fixes before the 0.6.0 release regarding the build procedure and updates several dependencies. There are also several UI improvements and bug fixes, particularly for the new in situ NMR and UV-Vis plugin, as well as the finalisation of the concept of datablock events.

Warning

This release bumps the supported MongoDB version all the way from v3 to v8. Whilst older MongoDB versions should still continue to work, version 8 will now be tested and used in the docker builds, so we recommend you upgrade. For existing databases this requires you to first dump the database using mongodump with the old MongoDB version, then upgrade to the new version and restore the database with mongorestore. If you unsure about this process then please ask us for help!

What's Changed

  • Fix some PyPI metadata by @ml-evs in #1248
  • Add note about inconsistencies in ways configs are specified by @ml-evs in #1252
  • Replace crypto-browserify with simple js-md5 by @ml-evs in #1251
  • Remove browersify stream polyfill by @ml-evs in #1253
  • Bump the uppy ecosystem to v4 and fix styling by @ml-evs in #1255
  • Bump navani and switch to galvani mirror by @ml-evs in #1273
  • Add creators in SampleTable global search by @BenjaminCharmes in #1257
  • Lift restriction on passing item type when updating via /save-item by @ml-evs in #1276
  • Use OAuth2 prompt to force login/account selection by provider by @ml-evs in #1270
  • Display NotImplementedBlock when an unknown block type is encountered by @BenjaminCharmes in #1228
  • Update the collection page table with the latest dynamic data table options by @BenjaminCharmes in #1225
  • Fix for either over- or under-specific file permissions by @ml-evs in #1279
  • Add custom UI for new in situ UV-Vis block by @be-smith in #1246
  • Embed block version in base class by @ml-evs in #1281
  • Add TOPAS-compatible .xy export to XRD block by @BenjaminCharmes in #1277
  • Fix item selection dropdown missing scrollbar in synthesis info by @BenjaminCharmes in #1280
  • Bump form-data from 4.0.1 to 4.0.4 in /webapp by @dependabot[bot] in #1284
  • Bump cypress to v13.17.0 and disable Firefox tests temporarily by @ml-evs in #1290
  • Add concept of block events and some design notes by @ml-evs in #1059
  • Update Python dependencies, uv and liccheck exceptions by @github-actions[bot] in #1002
  • Improve and restructure README, plus other minor docs fixes by @yue-here in #1245

New Contributors

Full Changelog: v0.6.0-rc.3...v0.6.0-rc.4

v0.6.0-rc.3

23 Jun 15:59
dfa6e22
Compare
Choose a tag to compare
v0.6.0-rc.3 Pre-release
Pre-release

If no issues arise, this will be the final release candidate for 0.6.0.

Warning

This release bumps the supported MongoDB version all the way from v3 to v8. Whilst older MongoDB versions should still continue to work, version 8 will now be tested and used in the docker builds, so we recommend you upgrade. For existing databases this requires you to first dump the database using mongodump with the old MongoDB version, then upgrade to the new version and restore the database with mongorestore. If you unsure about this process then please ask us for help!

What's Changed

Full Changelog: v0.6.0-rc.2...v0.6.0-rc.3

v0.6.0-rc.2

06 Jun 11:16
5568c51
Compare
Choose a tag to compare
v0.6.0-rc.2 Pre-release
Pre-release

What's Changed

  • Add support for JCAMP-DX files in NMR block by @ml-evs in #1205
  • Improve 1D Raman tests and extract more information from file headers by @ml-evs in #1216
  • Remove untested remote backup functionality and dependency on paramiko by @ml-evs in #1217
  • Remove ppm selection from in situ block in favour of the interactive plot by @ml-evs in #1215
  • Add CIF->PXRD calculator and refactor XRD block to better show multiple patterns by @ml-evs in #1128
  • Switch Raman block to use renishawWire package by @ml-evs in #1218
  • Add blueprint level auth guards to graphs, users and remote filesystems endpoints by @ml-evs in #1219
  • Limit batch interface to 100 items in UI and 10,000 via API by @BenjaminCharmes in #1213
  • Avoid mentioning specific version in deployment docs and list VUE_APP_* env vars by @ml-evs in #1226

Full Changelog: v0.6.0-rc.1...v0.6.0-rc.2

v0.6.0-rc.1

21 May 01:48
Compare
Choose a tag to compare
v0.6.0-rc.1 Pre-release
Pre-release

What's Changed

  • Add overlay while deleting multiple items by @BenjaminCharmes in #1054
  • Attempt to bump uv to the 0.6.x series by @ml-evs in #1058
  • Added support for rasx xrd files by @be-smith in #1067
  • Add in situ NMR DataBlock as an app plugin by @BenjaminCharmes in #1040
  • Bump docker/bake-action from 5 to 6 in the github-actions group by @dependabot in #1042
  • Add upper pin to pymongo by @ml-evs in #1082
  • Add pictogram UI components for hazard codes and use them for inventory by @BenjaminCharmes in #915
  • Wrap block descriptions into block menu by @BenjaminCharmes in #1096
  • Allow case-insensitive file extensions through file select dropdown by @ml-evs in #1094
  • Make media block resizable by @jdbocarsly in #1099
  • Add regex-based alternative to full-text search by @ml-evs in #1098
  • Fix plugin loading not triggering on server startup by @BenjaminCharmes in #1087
  • Bump elliptic from 6.6.0 to 6.6.1 in /webapp by @dependabot in #1075
  • Add tests for hazard statement -> H-code -> pictogram mappings by @ml-evs in #1100
  • Bump @babel/runtime from 7.26.0 to 7.26.10 in /webapp by @dependabot in #1076
  • Add components to data tables for showing block and file count by @ml-evs in #1080
  • Add search link to CAS Common Chemistry when CAS provided by @ml-evs in #1105
  • Reset unsaved warning after getSampleData() receives data by @jdbocarsly in #606
  • Fixed calling _format_ftir_plot method named when called to show data by @be-smith in #1107
  • Fix Datatable sorting for Collections and Creators by @BenjaminCharmes in #1048
  • Adjust block and file counter style by @ml-evs in #1109
  • Dynamic page titles by @BenjaminCharmes in #1051
  • Use importlib for plugin loading, fix test import order by @ml-evs in #1112
  • Bump nanoid from 3.3.7 to 3.3.8 in /webapp by @dependabot in #1029
  • Treat warnings in pytest as errors, fixing things along the way by @ml-evs in #1116
  • Default to opening a new tab when clicking on the sample table by @BenjaminCharmes in #1123
  • Fix oversharing regex search by @ml-evs in #1131
  • NMR and XRD block improvements by @ml-evs in #1119
  • Add PDF support in MediaBlock using an iframe by @ml-evs in #1129
  • Update yarn.lock with latest dependencies by @github-actions in #1003
  • Make the regex item search the default, and use '%' for full text search by @ml-evs in #1103
  • CI build optimisations by @ml-evs in #1134
  • Extend XRD block to be more flexible to different separators in xy files by @ml-evs in #1137
  • Remove datatable-sort-badge when only one column is sorted by @BenjaminCharmes in #1110
  • Revert JS dependency updates by @ml-evs in #1143
  • Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /webapp by @dependabot in #1144
  • Bump insitu plugin to 0.1.4 by @ml-evs in #1147
  • Add searching, filtering and sorting test in Datatable by @BenjaminCharmes in #1146
  • Update galvani requirement from <0.5,~=0.4 to ~=0.5 in /pydatalab by @dependabot in #1081
  • Add note about federation in README by @ml-evs in #1148
  • Add a dropdown to display/hide columns in Datatable by @BenjaminCharmes in #1118
  • Add labels in Datatable to be displayed in Multiselect by @BenjaminCharmes in #1152
  • Add guard for block info loading to edit page by @ml-evs in #1149
  • Rework resources.js when blocks require/do not require custom components by @ml-evs in #1154
  • Give starting material location its own row in the UI by @ml-evs in #1157
  • Added synthesis information to starting materials and made component collapsible by @be-smith in #1101
  • UV-vis block by @be-smith in #1133
  • Multiselect filtering for "no values" in nblocks column by @BenjaminCharmes in #1106
  • Use localStorage for persistent column hiding in Datatable by @BenjaminCharmes in #1124
  • Update deployment docs with more info on backups by @ml-evs in #1169
  • Quality of life updates to the inventory: barcode display, richer data table by @ml-evs in #1163
  • Add confirmation pop-up for file unlinking by @ml-evs in #1182
  • Assorted fixes for starting materials in collections by @ml-evs in #1167
  • Better handling of duplicate key errors in item creation by @ml-evs in #1156
  • Allow runtime compose args to be set from environment variables by @ml-evs in #1183
  • Improving column management in Datatable by @BenjaminCharmes in #1170
  • Do not update 'files' reference when saving item by @ml-evs in #1055
  • Use PyPI release of navani 0.1.11 and bump in situ plugin by @be-smith in #1187
  • Fix DataTable select-all when sorting is applied by @BenjaminCharmes in #1189
  • Give collection title and creators list their own rows by @ml-evs in #1193
  • Remove explicit dependency on galvani and NewareNDA now they are provided by navani by @ml-evs in #1197
  • Updating several dependencies in uv.lock by @ml-evs in #1199
  • Improvements to docs rendering for models and datablocks by @ml-evs in #1200
  • Bump pyupgrade to use --py310-plus, causing many type hint improvements by @ml-evs in #1201
  • Set DataTable loading state when loading from store by @ml-evs in #1195
  • Add release workflow for PyPI/ghcr.io and automated license checking by @ml-evs in #1198
  • Delete large keys (e.g., bokeh_plot_data) when sending and before receiving updated block data by @ml-evs in #1207
  • Use tool.uv.sources to specify in situ plugin git dependency in pyproject by @ml-evs in #1209
  • Fix docker release workflow by @ml-evs in #1210
  • Refactor app block loading to prevent optional dependencies from breaking dev builds by @ml-evs in #1188

Full Changelog: v0.5.2...v0.6.0-rc.1

v0.5.3-rc.7

20 May 19:55
ab116ef
Compare
Choose a tag to compare
v0.5.3-rc.7 Pre-release
Pre-release

What's Changed

Full Changelog: v0.5.3-rc.6...v0.5.3-rc.7

v0.5.3-rc.6

20 May 19:03
b53a868
Compare
Choose a tag to compare
v0.5.3-rc.6 Pre-release
Pre-release

This release candidate simply checks the new release workflow functionality

What's Changed

  • Use tool.uv.sources to specify in situ plugin git dependency in pyproject by @ml-evs in #1209

Full Changelog: v0.5.3-rc.5...v0.5.3-rc.6

v0.5.3-rc.5

20 May 16:40
Compare
Choose a tag to compare
v0.5.3-rc.5 Pre-release
Pre-release

Final release candidate before releasing 0.6.0, skipping this 0.5.3 version number in the end. This should trigger the first successful pre-release to PyPI.

What's Changed

  • Do not update 'files' reference when saving item by @ml-evs in #1055
  • Use PyPI release of navani 0.1.11 and bump in situ plugin by @be-smith in #1187
  • Fix DataTable select-all when sorting is applied by @BenjaminCharmes in #1189
  • Give collection title and creators list their own rows by @ml-evs in #1193
  • Remove explicit dependency on galvani and NewareNDA now they are provided by navani by @ml-evs in #1197
  • Updating several dependencies in uv.lock by @ml-evs in #1199
  • Improvements to docs rendering for models and datablocks by @ml-evs in #1200
  • Bump pyupgrade to use --py310-plus, causing many type hint improvements by @ml-evs in #1201
  • Set DataTable loading state when loading from store by @ml-evs in #1195
  • Add release workflow for PyPI/ghcr.io and automated license checking by @ml-evs in #1198
  • Delete large keys (e.g., bokeh_plot_data) when sending and before receiving updated block data by @ml-evs in #1207

Full Changelog: v0.5.3-rc.4...v0.5.3-rc.5

v0.5.3-rc.4

15 May 14:59
1168939
Compare
Choose a tag to compare
v0.5.3-rc.4 Pre-release
Pre-release

Should be the final release candidate for this series. Includes the final round of features (UV-vis block, persistent table settings, better inventory management and other QoL fixes).

What's Changed

Full Changelog: v0.5.3-rc.3...v0.5.3-rc.4