Releases: laminlabs/lamindb
Release 1.6.1
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
tolamin save
by @falexwolf in #2819
Full Changelog: 1.6.0...1.6.1
Release 1.6.0
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
toDBRecord
by @falexwolf in #2760 - ποΈ Integrate the
Param
into theFeature
registry by @falexwolf in #2763 - β»οΈ Check
central
for registered storages by @Koncopd in #2753 - πΈ Improve
DoesNotExist
error message uponDBRecord.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
toArtifact.get()
andCollection.get()
by @Koncopd in #2771 - πΈ Better error message when user passes manual
uid
totrack()
+ 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
inArtifact.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
toSQLRecord
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
inWriteLog
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
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
toDBRecord
by @falexwolf in #2760 - πΈ Integrate the
Param
into theFeature
registry by @falexwolf in #2763 - β»οΈ Check
central
for registered storages by @Koncopd in #2753 - πΈ Improve
DoesNotExist
error message uponDBRecord.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
toArtifact.get()
andCollection.get()
by @Koncopd in #2771 - πΈ Better error message when user passes manual
uid
totrack()
+ 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
inArtifact.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
toSQLRecord
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
inWriteLog
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
See https://docs.lamin.ai/changelog/2025#db-1-5-3
Full Changelog: 1.5.2...1.5.3
Release 1.5.2
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
See https://docs.lamin.ai/changelog/2025#db-1-5-1
What's Changed
- β¬οΈ Adapt
save_tiledbsoma_experiment
totiledbsoma==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
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
toartifact.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
toartifact.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
tosave_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
withinArtifact.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 invar
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
anddjango.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 withnbconvert
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 theSchema
constructor by @falexwolf in #2705 - π Rename
components
keyword argument ofSchema()
toslots
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
inArtifact.open()
andCollection.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
toULabel
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
- @namsaraeva made their first contribution in #2681
Full Changelog: 1.4.0...1.5.0
Release 1.4.0
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
andPersonProject
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 returnsNone
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 toview_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 withzarr 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 onCatManager
level by @falexwolf in #2665 - β»οΈ Remove
verbosity
argument onCatManager
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 toArtifact.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()
andRun.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
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
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 validdtype
, inAnnDataCurator
, make'obs'
schema optional and allow'uns'
schema by @falexwolf in #2569 - β»οΈ Refactor default source configuration by @sunnyosun in #2572
- β¨ Add
mute
argument toArtifact.cache()
andArtifact.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
andartifact.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 floatpd.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