Skip to content

Releases: laminlabs/lamindb

Release 1.6.1

03 Jun 11:43
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-6-1-bionty-1-5-0

What's Changed

  • πŸ› Fix query feature associated labels from non-ULabel registries by @sunnyosun in #2818
  • ✨ Flexible ontology sources by @sunnyosun in #2813
  • βœ… Test access to the security schema by @Koncopd in #2814
  • 🚸 Enable passing --branch and --space to lamin save by @falexwolf in #2819

Full Changelog: 1.6.0...1.6.1

Release 1.6.0

01 Jun 17:24
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-6-0-bionty-1-4-0

What's Changed

  • πŸ› Reset SpatialData path when access in-memory representation by @Zethson in #2751
  • ♻️ Mark internal lamindb-produced artifacts with kind="__lamindb__" instead of _branch_code=0 by @falexwolf in #2750
  • 🎨 Fix feature.describe when value is a list by @sunnyosun in #2754
  • ✨ Add a WriteLog registry by @alexras in #2642
  • ♻️ Rename instance and paths for writelog tests by @Koncopd in #2761
  • ♻️ Rename Record to DBRecord by @falexwolf in #2760
  • πŸ—οΈ Integrate the Param into the Feature registry by @falexwolf in #2763
  • ♻️ Check central for registered storages by @Koncopd in #2753
  • 🚸 Improve DoesNotExist error message upon DBRecord.get() by @Zethson in #2755
  • πŸ› Fix schema transfer by @Zethson in #2767
  • 🚸 Improve setting relationships of unsaved records UX by @Zethson in #2756
  • πŸ› Fix legacy output attributes of transform by @falexwolf in #2773
  • ✨ Add is_run_input to Artifact.get() and Collection.get() by @Koncopd in #2771
  • 🚸 Better error message when user passes manual uid to track() + anticipate that the user might want to create new transforms in some cases also if hash matches by @falexwolf in #2774
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2779
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2781
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2785
  • 🚸 Clearer error in parse_cat_dtype if cat dtype contains a module name and the module is not found by @Koncopd in #2784
  • πŸ—ƒοΈ Set current space when transferring records by @Koncopd in #2778
  • 🚸 Improve suffix mismatch error message by @Zethson in #2780
  • 🩹 Do not re-synchronize on ImportError in Artifact.load() by @Koncopd in #2787
  • ✨ Introduce a flexible Record registry by @falexwolf in #2782
  • ✨ Implement writelog backfill by @alexras in #2738
  • 🎨 A couple minor additions to write logs by @alexras in #2789
  • ♻️ Rename DBRecord to SQLRecord by @falexwolf in #2790
  • ✨ Introduce a Branch registry by @falexwolf in #2791
  • πŸ› Fix project labeling by @falexwolf in #2792
  • 🚸 Add backward compat for _branch_code by @falexwolf in #2793
  • ⬆️ Add compatibility with zarr v3 by @Koncopd in #2711
  • πŸ—οΈ Bulk of schema migrations for 1.6 by @falexwolf in #2794
  • ♻️ Do no longer duplicate tracking of predecessors through the corresponding link table on Transform by @falexwolf in #2797
  • ✨ Add WriteLog replay by @alexras in #2783
  • ✨ Implement a WriteLog serde by @alexras in #2796
  • ♻️ Minor simplifications to WriteLog schema by @falexwolf in #2798
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2800
  • ♻️ Squash migrations by @falexwolf in #2802
  • πŸ”ˆ Fix Pandera warning by @Zethson in #2803
  • ♻️ Support combined UID format for lamindb_featurevalue in WriteLog by @alexras in #2799
  • πŸ› Fix transfer for cases in which genes are insufficiently populated by @falexwolf in #2801
  • ♻️ Move cloud-hitting tests into storage test group by @falexwolf in #2804
  • ✨ Support curating lists as values in DataFrameCurator by @sunnyosun in #2676
  • πŸ”Š Fix project hint in ln.track() by @Koncopd in #2805
  • 🚚 Move writelog to laminhub for time being by @falexwolf in #2806
  • 🩹 Handle kind update by @falexwolf in #2807
  • πŸ‘· Exclude sub directory from source distribution on pypi by @falexwolf in #2808
  • πŸ“ Add tests and docs for multivalue curation by @sunnyosun in #2811
  • ⬆️ Add a lower bound on pandera by @Koncopd in #2812
  • πŸ› Fix comparisons to __isnull for feature-based queries by @falexwolf in #2809
  • ✨ Add schema-based TiledbsomaExperimentCurator by @Zethson in #2769
  • πŸ› Ensure all models are properly imported in lamindb module root by @fredericenard in #2815

Full Changelog: 1.5.1...1.6.0

Release 1.6a2

01 Jun 13:45
Compare
Choose a tag to compare
Release 1.6a2 Pre-release
Pre-release

See https://docs.lamin.ai/changelog/2025

What's Changed

  • πŸ› Reset SpatialData path when access in-memory representation by @Zethson in #2751
  • ♻️ Mark internal lamindb-produced artifacts with kind="__lamindb__" instead of _branch_code=0 by @falexwolf in #2750
  • 🎨 Fix feature.describe when value is a list by @sunnyosun in #2754
  • ✨ Add a WriteLog registry by @alexras in #2642
  • ♻️ Rename instance and paths for writelog tests by @Koncopd in #2761
  • ♻️ Rename Record to DBRecord by @falexwolf in #2760
  • 🚸 Integrate the Param into the Feature registry by @falexwolf in #2763
  • ♻️ Check central for registered storages by @Koncopd in #2753
  • 🚸 Improve DoesNotExist error message upon DBRecord.get() by @Zethson in #2755
  • πŸ› Fix schema transfer by @Zethson in #2767
  • 🚸 Improve setting relationships of unsaved records UX by @Zethson in #2756
  • πŸ› Fix legacy output attributes of transform by @falexwolf in #2773
  • ✨ Add is_run_input to Artifact.get() and Collection.get() by @Koncopd in #2771
  • 🚸 Better error message when user passes manual uid to track() + anticipate that the user might want to create new transforms in some cases also if hash matches by @falexwolf in #2774
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2779
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2781
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2785
  • 🚸 Clearer error in parse_cat_dtype if cat dtype contains a module name and the module is not found by @Koncopd in #2784
  • πŸ—ƒοΈ Set current space when transferring records by @Koncopd in #2778
  • 🚸 Improve suffix mismatch error message by @Zethson in #2780
  • 🩹 Do not re-synchronize on ImportError in Artifact.load() by @Koncopd in #2787
  • ✨ Introduce a flexible Record registry by @falexwolf in #2782
  • ✨ Implement writelog backfill by @alexras in #2738
  • 🎨 A couple minor additions to write logs by @alexras in #2789
  • ♻️ Rename DBRecord to SQLRecord by @falexwolf in #2790
  • ✨ Introduce a Branch registry by @falexwolf in #2791
  • πŸ› Fix project labeling by @falexwolf in #2792
  • 🚸 Add backward compat for _branch_code by @falexwolf in #2793
  • ⬆️ Add compatibility with zarr v3 by @Koncopd in #2711
  • πŸ—οΈ Bulk of schema migrations for 1.6 by @falexwolf in #2794
  • ♻️ Do no longer duplicate tracking of predecessors through the corresponding link table on Transform by @falexwolf in #2797
  • ✨ Add WriteLog replay by @alexras in #2783
  • ✨ Implement a WriteLog serde by @alexras in #2796
  • ♻️ Minor simplifications to WriteLog schema by @falexwolf in #2798
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2800
  • ♻️ Squash migrations by @falexwolf in #2802
  • πŸ”ˆ Fix Pandera warning by @Zethson in #2803
  • ♻️ Support combined UID format for lamindb_featurevalue in WriteLog by @alexras in #2799
  • πŸ› Fix transfer for cases in which genes are insufficiently populated by @falexwolf in #2801
  • ♻️ Move cloud-hitting tests into storage test group by @falexwolf in #2804
  • ✨ Support curating lists as values in DataFrameCurator by @sunnyosun in #2676
  • πŸ”Š Fix project hint in ln.track() by @Koncopd in #2805
  • 🚚 Move writelog to laminhub for time being by @falexwolf in #2806
  • 🩹 Handle kind update by @falexwolf in #2807
  • πŸ‘· Exclude sub directory from source distribution on pypi by @falexwolf in #2808
  • πŸ“ Add tests and docs for multivalue curation by @sunnyosun in #2811
  • ⬆️ Add a lower bound on pandera by @Koncopd in #2812
  • πŸ› Fix comparisons to __isnull for feature-based queries by @falexwolf in #2809
  • ✨ Add schema-based TiledbsomaExperimentCurator by @Zethson in #2769
  • πŸ› Ensure all models are properly imported in lamindb module root by @fredericenard in #2815

Full Changelog: 1.5.1...1.6a2

Release 1.5.3

13 May 19:54
Compare
Choose a tag to compare

Release 1.5.2

13 May 09:00
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-5-2

What's Changed

  • πŸ› Reset SpatialData path when access in-memory representation by @Zethson in #2751
  • 🚸 Do not validate twice within Artifact.from_X(...) when passing schema by @falexwolf in #2765

Full Changelog: 1.5.1...1.5.2

Release 1.5.1

08 May 07:42
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-5-1

What's Changed

  • ⬆️ Adapt save_tiledbsoma_experiment to tiledbsoma==1.16.2 by @Koncopd in #2746
  • πŸ‘· Refactor storage management during CI runs by @falexwolf in #2748
  • πŸ› Fix unique constraint in composite schemas by @falexwolf in #2747
  • πŸ› Fix display of parents & children in view_parents by @falexwolf in #2749

Full Changelog: 1.5.0...1.5.1

Release 1.5.0

06 May 21:13
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-5-0-bionty-1-3-2

What's Changed

  • ✨ Refresh db token on expiration by @Koncopd in #2674
  • ✏️ Improve installation hint for zarr by @namsaraeva in #2681
  • βœ… Decrypt token inside RLS (adapt tests) by @Koncopd in #2680
  • πŸ› Do not delete version family if user wants to retain store by passing storage=False to artifact.delete() by @falexwolf in #2683
  • ✨ Enable executing notebooks via jupyter nbconvert --execute by @falexwolf in #2684
  • πŸ› Delete version family if user wants to retain store by passing storage=False to artifact.delete(), but retain warning by @falexwolf in #2687
  • ✨ Enable curating the index of a dataframe by @falexwolf in #2688
  • βœ… Temp table based authentication (adapt tests) by @Koncopd in #2682
  • πŸ› Fix .using with fine-grained access instances and permissions test by @Koncopd in #2697
  • ⬆️ Fix downloading old ensembl genes by @sunnyosun in #2698
  • ♻️ Allow passing key to save_vitessce_config() by @namsaraeva in #2694
  • ✨ Can save csv artifacts in DataFrameCurator by @sunnyosun in #2696
  • πŸ₯… Do not raise exceptions on problems with copy_or_move_to_cache within Artifact.save by @Koncopd in #2699
  • πŸ› Fix ordered_set in curators by @sunnyosun in #2700
  • ✏️ Fix typo in bio-registry guide by @sunnyosun in #2703
  • ♻️ Avoid non-lazy loads of settings on import of lamindb.models by @Koncopd in #2704
  • ♻️ Refactor annotating with inferred feature sets by @falexwolf in #2690
  • ♻️ Execute curator examples and also show them in the curation guide by @falexwolf in #2706
  • ♻️ Separate legacy curators from new curators by @falexwolf in #2707
  • ♻️ Separate CatManager usage for .cat attribute and as legacy interface by @falexwolf in #2708
  • 🚸 Restore validation error messages, add their fine-grained testing, and prepare var refactor in curators by @falexwolf in #2709
  • ♻️ AnnData: enable explicit transposition in var schema definition by @falexwolf in #2710
  • πŸ₯… Catch and clarify RLS error on Record.save() by @Koncopd in #2715
  • 🚸 Do not annotate with more than n_max_records = 1000 by @falexwolf in #2713
  • ♻️ Clearer naming conventions in the internal curator codebase by @falexwolf in #2717
  • πŸ“ Prettify API reference docs, document base API by @falexwolf in #2719
  • ♻️ Eliminate monkey patching of django.db.models.QuerySet and django.db.models.Manager by @Koncopd in #2637
  • πŸ”Š Fix modules warning in .using by @Koncopd in #2722
  • 🚸 Enable passing the 12-char stem uid to ln.track(), detect renames of notebooks, better experience with nbconvert execution by @falexwolf in #2718
  • ✨ Enable to validate against nested dicts in spatialdata by @falexwolf in #2723
  • 🚸 Fully functional ULabel subtype validation, better syntax for it by @falexwolf in #2726
  • ⬆️ Update bionty by @sunnyosun in #2728
  • ⬆️ Upgrade lamindb-setup by @fredericenard in #2729
  • ♻️ Add using as an arg to the Schema constructor by @falexwolf in #2705
  • 🚚 Rename components keyword argument of Schema() to slots by @falexwolf in #2727
  • 🚸 Prettier Schema.describe() by @sunnyosun in #2731
  • 🎨 Allow pass _skip_validation to ULabel by @sunnyosun in #2732
  • 🚸 Handle schema updates decently by @falexwolf in #2733
  • 🚸 Introduce a submodule for example schemas, further consolidate curation and schema code examples, refactor schema hashing, expand schema tests, reduce schema uid length from 20 to 16 by @falexwolf in #2737
  • ✨ Allow to use polars in Artifact.open() and Collection.open() by @Koncopd in #2730
  • ✨ Add ArtifactQuerySet with .load() and .open() and .mapped() by @Koncopd in #2743
  • 🚸 For artifacts, improve (1) bulk annotation with features + (2) queries by features by @falexwolf in #2740
  • πŸ› Fix curating DataFrame index & 🚸 Automatically pass validation of ensembl gene IDs & ✨ add curator repr by @Zethson in #2742
  • 🎨 Allow pass _aux to ULabel by @sunnyosun in #2744
  • ♻️ Support dictionary-type features in bulk queries, handle clean up of dictionary-type feature values by @falexwolf in #2745

New Contributors

Full Changelog: 1.4.0...1.5.0

Release 1.4.0

15 Apr 16:28
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-4-0-bionty-1-3-0

What's Changed

  • βœ… Test allowing SELECT on space all for jwt role by default by @Koncopd in #2605
  • 🏷️ Fix typing in ULabelProject and PersonProject by @Koncopd in #2607
  • ♻️ Prettify MappedCollection data preparation by @falexwolf in #2610
  • ♻️ Order IsVersioned.versions query set by @falexwolf in #2608
  • βœ… Test RLS for write roles by @Koncopd in #2616
  • ⬆️ Upgrade anndata to 0.11.4 by @Koncopd in #2613
  • ⬆️ Upgrade bionty (rework s3_bionty_assets) by @Koncopd in #2619
  • 🚸 Allow renaming artifacts & transforms within the same version family by @falexwolf in #2614
  • πŸ› Fix organism passing to from_source by @sunnyosun in #2621
  • 🚸 Show link to hub in view_lineage() and render lineage through graphviz also in scripts by @falexwolf in #2622
  • βœ… Test RLS for hubmodule tables, lamindb_space, lamindb_user by @Koncopd in #2624
  • ⬆️ from_source no longer returns None by @sunnyosun in #2628
  • πŸ› Fix SpatialData and MuData check by @Zethson in #2627
  • βœ… Test fine-grained permissions through Team by @Koncopd in #2630
  • ♻️ Add return_graph argument to view_lineage() by @lazappi in #2626
  • ⬆️ Upgrade fsspec packages to 2025.3.2 by @Koncopd in #2631
  • ✨ Support minimal_set, maximal_set, ordered_set in curators by @sunnyosun in #2632
  • 🚸 Add space management to ln.track() by @falexwolf in #2625
  • 🎨 Skip validation if a missing cat feature is not required by @sunnyosun in #2636
  • πŸ“ Improve pytest instructions in contributors guide by @Zethson in #2633
  • ⬇️ Fix numcodecs==0.16.0 incompatibility with zarr v2 by @Koncopd in #2645
  • πŸ› Set db token only on the transaction level by @Koncopd in #2641
  • βœ… Test writing to the default space through team by @Koncopd in #2647
  • ♻️ Organize categorical curation code with CatColumn by @sunnyosun in #2644
  • πŸ› Fix re-validation of var_index by @sunnyosun in #2648
  • ✨ Introduce lamin run with a Modal backend by @falexwolf in #2643
  • ♻️ Remove organism argument on CatManager level by @falexwolf in #2665
  • ♻️ Remove verbosity argument on CatManager level by @falexwolf in #2666
  • πŸ“ Fix conventions for examples in docs by @falexwolf in #2667
  • 🍱 Compare lamindb with pydantic and pandera in an FAQ doc by @falexwolf in #2664
  • 🎨 Eliminate duplicated parsing & record creation during curation by @falexwolf in #2650
  • ✨ Define optional features on a per-schema level & improve schema hash calculation by @sunnyosun in #2635
  • 🚸 Enable to validate & annotate features without passing them to a schema by @falexwolf in #2668
  • 🚸 Add schema as an argument to Artifact.from_X() by @falexwolf in #2672
  • 🚸 No longer throw an error but merely print a warning when updating a schema by @falexwolf in #2673
  • πŸ› Fix describe features by @sunnyosun in #2675
  • 🚸 Enable to query by features & params through Artifact.filter() and Run.filter() by @falexwolf in #2671
  • πŸ“ Add another example to pandera guide by @falexwolf in #2678
  • πŸ“ Document access any ensembl genes by @sunnyosun in #2677

New Contributors

Full Changelog: 1.3.2...1.4.0

Release 1.3.2

27 Mar 13:01
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#bionty-1-2-1-db-1-3-2

What's Changed

  • πŸ› Fix transfer through reticulate when target instances has no schema modules by @falexwolf in #2602

Full Changelog: 1.3.1...1.3.2

Release 1.3.1

26 Mar 16:28
Compare
Choose a tag to compare

See https://docs.lamin.ai/changelog/2025#db-1-3-1

What's Changed

  • πŸ“ Fix faq/key by @Koncopd in #2570
  • πŸ”₯ Move source tests to bionty by @sunnyosun in #2571
  • 🚸 Add uint as a valid dtype, in AnnDataCurator, make 'obs' schema optional and allow 'uns' schema by @falexwolf in #2569
  • ♻️ Refactor default source configuration by @sunnyosun in #2572
  • ✨ Add mute argument to Artifact.cache() and Artifact.load() by @Koncopd in #2575
  • πŸ’š Fix permissions test by @Koncopd in #2577
  • ♻️ Refactor organism in curators by @sunnyosun in #2573
  • πŸ”₯ Remove all local yamls in bionty by @sunnyosun in #2581
  • 🚸 Use the current working directory as default storage during lamin init, drop deprecated --schema arg, refactor conventions for files written during init by @falexwolf in #2587
  • πŸ› More extensive validation for updates to artifact.key and artifact.suffix by @falexwolf in #2589
  • πŸ“ Improve contribution guidelines by @alexras in #2583
  • πŸ› Enable transferring features pointing to multiple labels by @sunnyosun in #2595
  • ⬆️ Upgrade bionty and wetlab by @Zethson in #2586
  • πŸ“Œ Pin pims to patched version by @Zethson in #2597
  • ✨ Enable update existing records to a new ontology by @sunnyosun in #2593
  • 🚸 Avoid requiring coerce_dtype for "int" and "float" in case an integer or float pd.Series.dtype only deviates by numerical precision/range by @falexwolf in #2592
  • βž– Remove pims pin by @Zethson in #2598
  • βœ… Test RLS for space All by @Koncopd in #2596
  • πŸ’š Fix docs by @sunnyosun in #2599
  • ⬆️ Upgrade lamindb-setup and adapt permissions test to laminhub refactor by @Koncopd in #2600

New Contributors

Full Changelog: 1.3.0...1.3.1