Skip to content

Releases: laminlabs/lamindb

Release 2.3a3

06 Mar 16:32

Choose a tag to compare

Release 2.3a3 Pre-release
Pre-release

See https://docs.lamin.ai/changelog/2026#db-2-3-0

What's Changed

  • 🔇 Do not issue track warning on clones by @Koncopd in #3573
  • 💚 Install lamindb-core with deps for CI by @Koncopd in #3574
  • 🐛 Fix feature collisions in lightning integration by @falexwolf in #3576
  • ⚡️ Optimize DB interactions in lightning integration by @falexwolf in #3577
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3578
  • ⚡️ Profile ln.connect() by @falexwolf in #3581
  • ✨ Improve data retrieval in MappedCollection by @mojtababahrami in #3446
  • ✨ Allow users to specify partially available keys in MappedCollection and retrieve raw.X by @Koncopd in #3582
  • 🚸 Re-connect rather than reset Django if no instance is configured in the environment by @falexwolf in #3580

New Contributors

Full Changelog: 2.3a2...2.3a3

Release 2.3a2

04 Mar 18:13

Choose a tag to compare

Release 2.3a2 Pre-release
Pre-release

See https://docs.lamin.ai/changelog/2026#db-2-3-0

What's Changed

Full Changelog: 2.2.1...2.3a2

Release 2.3a1

28 Feb 20:28

Choose a tag to compare

Release 2.3a1 Pre-release
Pre-release

See https://docs.lamin.ai/changelog/2026#db-2-3a1

What's Changed

Full Changelog: 2.2.1...2.3a1

Release 2.2.1

24 Feb 14:12

Choose a tag to compare

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

What's Changed

  • ✅ Add a dedicated test for plan tracking by @falexwolf in #3553
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3555
  • 🚸 Enable defining a feature that restricts to a subset of artifacts by @falexwolf in #3554
  • 🚸 Improve logging during @ln.flow() and @ln.step() by @falexwolf in #3557
  • 📝 Add Change Management section to README and Agent Plans section to track guide by @falexwolf in #3558

Full Changelog: 2.2.0...2.2.1

Release 2.2.0

19 Feb 13:57

Choose a tag to compare

See https://docs.lamin.ai/changelog/2026#db-2-2-0

What's Changed

  • ⚡ Speed-up lamindb import by lazily importing pandas, anndata & pyarrow by @falexwolf in #3525
  • 🚸 Make it easier to query for all output artifacts including recreated ones by @falexwolf in #3526
  • 🚸 Track record_type.to_dataframe() as an input for the current run by @falexwolf in #3527
  • 🐛 Fix DB snapshot sync by @Zethson in #3530
  • 🐛 Scope feature query by schema member types in curator by @Zethson in #3528
  • 🐛 Fix bracket handling of describe by @Zethson in #3531
  • 📝 Add videos to docs, polish typos and wording by @falexwolf in #3529
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3533
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3535
  • 🐛 Fix autocomplete of datasets & curators modules by @Zethson in #3534
  • ✨ Add lamin merge command, add lamin switch -c option & simplify lamin switch syntax by @falexwolf in #3532
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3536
  • 💄 Prettier display for dtype for Record and ULabel sub types in schema.describe() by @falexwolf in #3537
  • Extend lamin describe to more entities by @falexwolf in #3538
  • ✨ Add plan traceability and improve Branch data model by @falexwolf in #3539
  • 🚸 Quality of life improvements for saving via the CLI: saving plans, sync with git, annotating with version tags by @falexwolf in #3540
  • ✨ Enable linking a README.md to and commenting for any entity by @falexwolf in #3541
  • 🗃️ Add a _status_code: int field to Branch and BaseBlock by @falexwolf in #3542
  • 🗃️ Remove unnecessary BranchArtifact model by @falexwolf in #3543
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3545
  • 🚸 Upon a merge event, mark the branch as merged by @falexwolf in #3546
  • 🚸 Include comments in SQLRecord.describe() when passing include = "comments" by @falexwolf in #3548
  • ✨ Add UPath.from_auth(...) by @Koncopd in #3547
  • 🏗️ Reconcile is_latest state across branches by @falexwolf in #3551
  • Relax AnnData version constraint by @Zethson in #3550
  • ✨ Introduce Merge Request states on branches and enable lamin update to update properties of entities by @falexwolf in #3552

Full Changelog: 2.1.2...2.2.0

Release 2.1.2

09 Feb 16:00

Choose a tag to compare

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

What's Changed

  • ✨ Enable curation against Features with Union dtypes by @Zethson in #3516
  • ⚡️ Download large single files from s3 with boto3 by default in artifact.cache() by @Koncopd in #3519
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3521
  • 📝 README v5.5: re-write the why? section by @falexwolf in #3520
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3523
  • 🐛 Fix initializing an instance with db passed by @Koncopd in #3524

Full Changelog: 2.1.1...2.1.2

Release 2.1.1

04 Feb 08:19

Choose a tag to compare

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

What's Changed

  • 🚸 Better detection of read-only connections for write errors and tracking by @Koncopd in #3515
  • ✨ Add lamin settings cache-dir reset commad to CLI by @Koncopd in #3517
  • ✅ Fix cleanup of permissions test by @Koncopd in #3518

Full Changelog: 2.1.0...2.1.1

Release 2.1.0

02 Feb 09:02

Choose a tag to compare

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

What's Changed

  • 🐛 Fix Artifact.from_dataframe to support path input by @Zethson in #3455
  • 🐛 Fix str behavior of Artifact.from_dataframe() by @Zethson in #3457
  • ⬆️ Update standard ontology by @sunnyosun in #3461
  • 👽️ Fix broken setup due to laminhub refactoring by @fredericenard in #3464
  • 📝 Fix Artifact.from_anndata example by @Zethson in #3463
  • 🔒️ Introduce safe-guards in updating the space of artifacts by @Koncopd in #3458
  • ⬆️ New Gene Organism sources by @sunnyosun in #3467
  • 🚸 Unify validating features with and without the presence of a schema, fix parsing ISO-format strings as datetime if mapped on a feature with dtype=str by @falexwolf in #3456
  • 🚸 Return information about deleted objects rather than None upon hard delete by @falexwolf in #3469
  • 🍱 Update CellLine default source by @sunnyosun in #3471
  • 🚸 Raise canonical InstanceNotFoundError in Registry.connect() by @falexwolf in #3470
  • 🚚 Rename wetlab to pertdb by @falexwolf in #3472
  • ♻️ Efficiently encode uploading information by @falexwolf in #3473
  • 📝 Consistently mention backward relationships and type-annotate ManyToMany fields with QueryManager[T] by @falexwolf in #3474
  • 🚸 Enable convenient re-upload of local file after upload failure by @falexwolf in #3079
  • ♻️ Rather flag _storage_ongoing than _storage_completed by @falexwolf in #3475
  • ⚡ Start monitoring performance profiling by @falexwolf in #3477
  • 📝 README v5.1 by @falexwolf in #3478
  • ⬆️ Update lamin-utils by @sunnyosun in #3479
  • ⬆️ Released bionty 2.1.0 by @sunnyosun in #3482
  • 📝 Better return typing of feature.__getitem__ by @sunnyosun in #3481
  • 🚸 Improve error message for running a script or notebook outside the development directory by @falexwolf in #3484
  • 📝 README v5.2 by @falexwolf in #3486
  • 💚 Fix white-space formatting in tests for new Rich behavior by @Zethson in #3489
  • 💚 Fix curator tests by @Zethson in #3490
  • 🚸 Check local path existence on artifact.save() by @Koncopd in #3487
  • 📝 Improve the Artifact.open() docs by @falexwolf in #3415
  • 🚸 Default to creating a global run context in ln.flow() by @falexwolf in #3492
  • ♻️ Enable memorizing the global run context of a flow by @falexwolf in #3493
  • 🐛 Refactor & fix feature-based queries for records and expand tests by @falexwolf in #3494
  • 🚚 Move lamin cache CLI command to be lamin settings cache-dir, refactor lamin settings, expand lamin annotate, and overhaul CLI docs by @falexwolf in #3495
  • 📝 Document RelatedManager[T] and fix ManyToMany type annotations by @falexwolf in #3496
  • 👷 Refactor performance profiling by @falexwolf in #3497
  • 📝 Move lazy upload out of arrays guide and into from_lazy() docstring + unit tests by @falexwolf in #3499
  • 🚸 Allow users to pass ids of foreign keys in Artifact() constructor by @Koncopd in #3498
  • 🐛 Fix PyYAML serialization of NotebookNode by @Zethson in #3488
  • 📝 Convert guides to markdown format by @falexwolf in #3501
  • 🐛 Fix standardize ignoring passed source by @Zethson in #3500
  • 👷 Simplify test/docs CI setup by @falexwolf in #3502
  • 🚸 Overhaul the pytorch lightning integration by @Zethson in #3425
  • 🚸 Better error behavior in lamin save by @sunnyosun in #3503
  • 📝 README v5.3 by @falexwolf in #3504
  • ♻️ Fully leverage Context to manage the run context of function executions by @falexwolf in #3506
  • 🚸 Serialize Path, UPath, and handle None params by @falexwolf in #3507
  • 🚸 Recognize packaged python source code across track(), @flow(), and @step() by @falexwolf in #3508
  • ⚡️ Much faster permanent run & transform deletion by @falexwolf in #3509
  • 📝 README v5.4: properly document workflows by @falexwolf in #3510
  • 📝 Legible API reference for lamindb.models by @falexwolf in #3511
  • 🚸 Save CLI tool in transform description by @falexwolf in #3512

Full Changelog: 2.0.1...2.1.0

Release 2.0.1

11 Jan 16:57

Choose a tag to compare

See https://docs.lamin.ai/changelog/2026#db-2-0-1

What's Changed

  • 🚸 Backward compatibility for querying features by dtype by @falexwolf in #3454

Full Changelog: 2.0.0...2.0.1

Release 2.0.0

11 Jan 05:51

Choose a tag to compare

See https://docs.lamin.ai/changelog/2026#db-2-0-0

What's Changed

  • 📝 Fix docs by @falexwolf in #3385
  • ✨ Add feature.dtype_as_object by @sunnyosun in #3386
  • 📝 README v5.2 by @falexwolf in #3387
  • ✅ Test connecting without a default instance by @Koncopd in #3388
  • ✅ Test db token expiartion by @Koncopd in #3391
  • 🎨 Also accept array when evaluating list values by @sunnyosun in #3392
  • 🔧 Add .vitessce.json to loaders by @namsaraeva in #3393
  • 🔧 Rename zarr extra to zarr_v2 by @Koncopd in #3390
  • 🐛 Account for size 0 environments by @falexwolf in #3394
  • ♻️ Better re-use Django's ObjectDoesNotExist and MultipleObjectsReturned by @falexwolf in #3396
  • 💄 Sort features in describe() by @falexwolf in #3397
  • 📝 Improve the Artifact.replace() docs by @falexwolf in #3398
  • 📝 Polish FAQ doc on trashing and archiving by @falexwolf in #3400
  • ✅ Test DbWriteLog rework by @Koncopd in #3399
  • 🚚 Deprecate @ln.tracked() in favor of @ln.step() by @falexwolf in #3401
  • ✨ Enable managing workflows via @ln.flow() and @ln.step() by @falexwolf in #3402
  • ✨ Track shell scripts by @falexwolf in #3403
  • ✅ Test use hstore in DbWrite triggers to compute diffs on update by @Koncopd in #3404
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #3407
  • ⬆️ Bump anndata upper bound by @Koncopd in #3409
  • 🚸 Raise a clear error if calling CanCurate and similar registry class methods on objects by @falexwolf in #3411
  • 📝 Improve the Space document by @falexwolf in #3412
  • ⬆️ Bump fsspec packages upper bound by @Koncopd in #3413
  • 📝 Render return type annotations of Artifact.open() in docs by @falexwolf in #3414
  • 🚚 Rename rest-hub to backend by @fredericenard in #3410
  • 🔥 Remove tracking from collection.artifacts.all() by @Koncopd in #3405
  • 🏗️ Introduce Feature._dtype_str to hold a serialization that links object types (Record + ULabel) based on their uid instead of their name and type hierarchy by @falexwolf in #3416
  • 🏗️ Use the new feature._dtype_str instead of feature.dtype by @falexwolf in #3418
  • 🔥 Remove the API components that were deprecated upon transitioning from LaminDB v0 to v1 by @falexwolf in #3419
  • 🚚 Better names for the ManyToMany fields for the annotating runs and artifacts of an Artifact by @falexwolf in #3420
  • 🚚 Swap accessor names for SchemaComponent links, consistent ManyToMany field names for RecordRecord links by @falexwolf in #3421
  • 🗃️ Migrate the Feature and Schema database tables to LaminDB v2 by @falexwolf in #3422
  • 🚚 Rename Artifact.feature_sets to Artifact.schemas by @falexwolf in #3423
  • 🗃️ Rename SQLRecord._branch_code to SQLRecord.branch_id and remove feature_ref_is_name and label_ref_is_name fields from link models by @falexwolf in #3424
  • 💚 Fix tests setup by @Koncopd in #3426
  • 🐛 Fix broken imports from hubmodule by @fredericenard in #3428
  • ♻️ Refactor require_organism by @sunnyosun in #3429
  • ♻️ Refactor data migration from dtype to _dtype_str by @falexwolf in #3431
  • 🗃️ Rename Artifact._subsequent_runs to Artifact.recreating_runs and Run._recreated_artifacts to Run.recreated_artifacts by @falexwolf in #3432
  • 👷 Ensure wetlab version 2.0a1 is installed by @falexwolf in #3433
  • ✅ Restore check_lamin_dev, add defensive artifact cleanup by @Koncopd in #3434
  • ✨ Allow passing _key_is_virtual on Artifact creation by @Koncopd in #3438
  • 🗃️ Rename IsVersioned.version to IsVersioned.version_tag, Transform.type to Transform.kind, FeatureValue to JsonValue, BaseBlock.type to BaseBlock.kind, delete Transform._template and Run._logfile by @falexwolf in #3435
  • 🗃️ Bionty v2 migrations by @sunnyosun in #3430
  • ✅ Test user updates by @Koncopd in #3437
  • 👷 Reflect permission utils refactoring in noxfile by @falexwolf in #3441
  • 🚸 Add description argument to Transform.from_git() by @falexwolf in #3440
  • 🗃️ Simplify Transform by @falexwolf in #3442
  • 🗃️ Migrate most auxiliary fields to SQL columns by @falexwolf in #3443
  • ♻️ Edits for noxfile by @Koncopd in #3444
  • 🗃️ Refactor _storage_completed mechanism and remove unique constraints on type names by @falexwolf in #3445
  • 🚸 More release preparations: backward compat for artifact queries by feature_sets, defensive migration by @falexwolf in #3448
  • 🎨 Re-encode biorecord uid to 14 chars by @sunnyosun in #3450
  • ♻️ Refactor dtype data migration to raw SQL to avoid inexistent branch_id by @falexwolf in #3449
  • Fix create from source by @sunnyosun in #3451
  • 🗃️ Rename RootBlock to Block with a column key akin to Artifact and Transform by @falexwolf in #3452
  • ⚡️ Squash migrations and re-build SQLite init database by @falexwolf in #3453

Full Changelog: 1.17.0...2.0.0