Skip to content

v0.5.0

Latest
Compare
Choose a tag to compare
@ml-evs ml-evs released this 01 Dec 23:02
· 2 commits to main since this release

It's a real one! Not a release candidate! This release is long overdue following the 8 pre-releases. The 0.5.x series now provides a stable base for us to begin some major overhauling of how we handle custom schemas and data blocks, both of which will form the basis of 0.6.x in the new year. The Ansible playbooks at datalab-ansible-terraform and the Python API package at datalab-python-api already both support this release.

Many thanks to all contributors: developers, user feedback and deployment managers!

Breaking changes

  • The Python server has been entirely repackaged with uv for much more streamlined dependency management (especially for external plugins). If you are using the docker deployments, then nothing should change for you, but developers may need to adjust their development setups following the instructions at INSTALL.md

Highlights

  • The table component used to display all items has been entirely rewritten, and is now more visually responsive and can accommodate custom schemas/components.
  • QR code generation and scanning for all items, optionally using the new datalab pURL service when configured with VUE_APP_QR_CODE_RESOLVER_URL.
  • Following from the block info from the last release, the API now reports the schemas it is using at /info/types, ready for these to become more easily configurable at the deployment level. The edit page and item table are beginning to dynamically use this information.
  • Improvements to the collections UI, allowing items to be added to collections more easily after creation.
  • Ability to selectively share items with certain users; this will soon be expanded to user groups and projects (via collections) with configurable defaults.
  • Several bug fixes to the UI, API (timezone consistency, tweaks to the LLM integration, better handling of permissions edge cases)
  • Ease-of-use features and new configuration options for deployments.

Exhaustive changelog

  • CI build time and fork compatibility improvements by @ml-evs in #833
  • Tweak cache usage on docker builds by @ml-evs in #841
  • Repackage server as proper Python package, removing pipenv by @ml-evs in #604
  • Re-enable dependabot for Python dependencies by @ml-evs in #845
  • Remove release workflow now that versions are dynamic by @ml-evs in #847
  • Bump the github-actions group with 3 updates by @dependabot in #846
  • Fix docs formatting and update versioning scheme by @ml-evs in #850
  • Use uv and deps lockfiles in CI & pre-commit by @ml-evs in #851
  • Attempt to configure lockfile-only dependabot strategy by @ml-evs in #853
  • Re-attempt to use lockfile-only strategy with dependabot by @ml-evs in #854
  • Do not show option to connect accounts in account settings if not configured in server by @ml-evs in #856
  • Use node v20 in build, CI and dev environments by @ml-evs in #858
  • Let linting settings reflect development usage by @ml-evs in #859
  • Add QR code generation and scanning to UI by @ml-evs in #808
  • Refactor login components by @ml-evs in #857
  • Bump webpack from 5.88.2 to 5.94.0 in /webapp by @dependabot in #863
  • Bump elliptic from 6.5.4 to 6.5.7 in /webapp by @dependabot in #837
  • Deprecate gpt-3.5-turbo series and handle missing models in chatblock by @ml-evs in #855
  • Bump flask-cors from 4.0.1 to 5.0.0 in /pydatalab by @dependabot in #867
  • Bump cryptography from 43.0.0 to 43.0.1 in /pydatalab by @dependabot in #871
  • Filter out b64-encoded data before sending to LLM by @ml-evs in #870
  • Fix deployment config options for new VUE_APP settings by @ml-evs in #874
  • Lockfile compatibility by @ml-evs in #873
  • Fix QR code warning showing when not required by @ml-evs in #875
  • Close database ports by default by @ml-evs in #876
  • Add component tests by @BenjaminCharmes in #872
  • Add API route to add items to a collection and associated UI by @BenjaminCharmes in #828
  • Improving prime Datatable by @BenjaminCharmes in #862
  • Fix some issues in the datatable by @BenjaminCharmes in #888
  • Update deps lockfiles and use uv sync in CI by @ml-evs in #899
  • Add dynamic data table on collection page by @ml-evs in #885
  • Hotfix for new e2e test command by @ml-evs in #904
  • Fix SelectAll issue in DataTable after search by @BenjaminCharmes in #893
  • Add support for XRD files that have indeterminate headers (e.g., diffrac.eva export) by @ml-evs in #905
  • Add Collapsible Functionality for Block Warnings by @BenjaminCharmes in #898
  • Exclude pydantic from dependabot by @ml-evs in #908
  • Bump the python-dependencies-dev group in /pydatalab with 2 updates by @dependabot in #910
  • Rearrange dependencies and update navani by @ml-evs in #911
  • Re-enable lockfile only mode of dependabot by @ml-evs in #912
  • Add dropdown with actions buttons for selected items inside DataTable by @BenjaminCharmes in #902
  • Switch Python package to src-layout by @ml-evs in #865
  • Update uv.lock file and use --locked in uv sync by @ml-evs in #913
  • Refactor ID Validation Logic into Utility Function by @BenjaminCharmes in #896
  • Rid ourselves of pipenv, requirements files, dev containers and other unecessary complexity by @ml-evs in #914
  • Install datalab as editable inside docker build to make env passing simpler by @ml-evs in #917
  • Fix css issues in DynamicDataTable by @BenjaminCharmes in #919
  • Update CODEOWNERS by @ml-evs in #922
  • Ensure that new collection immutable_id is returned upon creation by @ml-evs in #925
  • Use dynamic version number from git tags in webapp by @BenjaminCharmes in #906
  • Explcitly set OAUTHLIB_INSECURE_TRANSPORT env var when present in .env by @ml-evs in #928
  • Configure coverage for new src-layout by @ml-evs in #929
  • Use git version inside app container build by @ml-evs in #930
  • Better handle case where block in database is not implemented by app/API by @ml-evs in #931
  • Update collection deletion endpoint to also unlink items by @ml-evs in #933
  • Set up custom primevue theme by @BenjaminCharmes in #921
  • Fix bug where blocks would not be loaded automatically by @ml-evs in #935
  • Fix eslint warning in CollectionInformation by @BenjaminCharmes in #934
  • Tweak for edit page to allow upload file modal to load correctly by @ml-evs in #937
  • Hotfix for file-overwriting from uppy by @ml-evs in #942
  • Add scheduled uv lock -U to replace dependabot by @ml-evs in #945
  • Bump express from 4.19.2 to 4.21.0 in /webapp by @dependabot in #883
  • Tidy up uv workflow after first generated PR by @ml-evs in #947
  • Update pillow requirement from ~=10.4 to ~=11.0 in /pydatalab by @dependabot in #949
  • Add suggested 'ready-for-review' workaround to checks not running from actions-created PRs by @ml-evs in #959
  • Add scheduled yarn upgrade job in CI by @ml-evs in #960
  • Fix typo in yarn upgrade workflow by @ml-evs in #961
  • Add body to automated yarn upgrade PR by @ml-evs in #962
  • yarn upgrade PR should be created as a draft by @ml-evs in #964
  • Remove vue/cli as dependency and add missing polyfills by @ml-evs in #957
  • Refresh user list after activating a user in admin dashboard by @BenjaminCharmes in #967
  • Add e2e JS tests for file upload and block creation by @ml-evs in #968
  • Split vue docker build into two stages by @ml-evs in #958
  • Rework of the files utilities and endpoints for both app and API by @ml-evs in #943
  • Reduces updates frequency to once a week by @BenjaminCharmes in #975
  • Update uv.lock with latest dependencies by @github-actions in #946
  • Update yarn.lock with latest dependencies by @github-actions in #963
  • Stagger fortnightly scheduled uv/yarn updates by @ml-evs in #977
  • Fix default MAX_CONTENT_LENGTH setting to 10 GB by @ml-evs in #979
  • Fix and streamline attribute lookup in MediaBlock by @ml-evs in #981
  • Add timezone consistency across deployments & UI by @ml-evs in #970
  • Chatblock deployment fix: make sure LLM API keys are passed from .env to environ by @ml-evs in #990
  • Add latest Claude models by @ml-evs in #986
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #987
  • Explicitly don't use a polyfill for vm by @jdbocarsly in #996
  • Revert overly smart schedule for upgrade PRs by @ml-evs in #999
  • Fix and refactor FTS field generation by @ml-evs in #998
  • Add API endpoint for reporting schemas by @BenjaminCharmes in #941
  • Enhanced filtering UI on fields with components by @BenjaminCharmes in #974
  • Add docker build var to spoof git tag version by @ml-evs in #1001
  • Fix vue-loader errors by @BenjaminCharmes in #1004
  • LoginDetails alignment when a user is unverified by @BenjaminCharmes in #984
  • Tweak git version spoofing in docker config, and test it by @ml-evs in #1006
  • Allow both search and filter to be specified simultaneously in entry table by @BenjaminCharmes in #1010
  • Dynamic table tweaks: filter by item type enum & resizable columns by @ml-evs in #1011
  • Add better layouts and configuration options to the Item Graph by @jdbocarsly in #813
  • Add component tests for DataTable Prime components by @BenjaminCharmes in #884
  • Improve DataTable Pagination Handling with Vuex by @BenjaminCharmes in #1013
  • Add option to configure whether IDs are automatic by default by @ml-evs in #1019
  • Use <router-link> for "Home" button on edit page to preserve store by @ml-evs in #1018
  • User select and sharing of sample page with creators by @ml-evs in #830
  • Add patch for starting material & equipment permissions by @ml-evs in #1020
  • Carve out exception for delete permission for group-wide items by @ml-evs in #1023
  • Add block types and titles to summary API response by @ml-evs in #1025
  • Add CHANGELOG for 0.5.0 by @ml-evs in #1024

Full Changelog: v0.4.4...v0.5.0