Releases: laminlabs/lamindb
Release 2.3a3
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-corewith 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
MappedCollectionby @mojtababahrami in #3446 - ✨ Allow users to specify partially available keys in
MappedCollectionand retrieveraw.Xby @Koncopd in #3582 - 🚸 Re-connect rather than reset Django if no instance is configured in the environment by @falexwolf in #3580
New Contributors
- @mojtababahrami made their first contribution in #3446
Full Changelog: 2.3a2...2.3a3
Release 2.3a2
See https://docs.lamin.ai/changelog/2026#db-2-3-0
What's Changed
- 💚 Do not execute the new block in the
trackguide by @falexwolf in #3559 - ✨ Refresh federated AWS credentials on the
botocorelevel by @Koncopd in #3561 - ⬆️ Bump lamin-utils by @sunnyosun in #3563
- 🐛 Fix hostdb for features getitem by @sunnyosun in #3564
- 🍱 Support CELLxGENE 7.0.0 by @Zethson in #3466
- 📝 Document agent plan tracking also in README and
ln.track()API reference by @falexwolf in #3565 - ⬆️ Upgrade lamindb-setup by @Koncopd in #3566
- 📝 README v5.5: Prettified LaminDB schematic by @falexwolf in #3567
- 🏗️ Add
lamindb-coreto distributelamindbwithout optional dependencies by @falexwolf in #3568 - ⬆️ Upgrade lamindb-setup by @Koncopd in #3569
- 👷 Add an option to install full dependencies to
lamindb-coreby @Koncopd in #3571
Full Changelog: 2.2.1...2.3a2
Release 2.3a1
See https://docs.lamin.ai/changelog/2026#db-2-3a1
What's Changed
- 💚 Do not execute the new block in the
trackguide by @falexwolf in #3559 - ✨ Refresh federated AWS credentials on the
botocorelevel by @Koncopd in #3561 - ⬆️ Bump lamin-utils by @sunnyosun in #3563
- 🐛 Fix hostdb for features getitem by @sunnyosun in #3564
- 🍱 Support CELLxGENE 7.0.0 by @Zethson in #3466
- 📝 Document agent plan tracking also in README and
ln.track()API reference by @falexwolf in #3565 - ⬆️ Upgrade lamindb-setup by @Koncopd in #3566
- 📝 README v5.5: Prettified LaminDB schematic by @falexwolf in #3567
Full Changelog: 2.2.1...2.3a1
Release 2.2.1
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
READMEand Agent Plans section totrackguide by @falexwolf in #3558
Full Changelog: 2.2.0...2.2.1
Release 2.2.0
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 mergecommand, addlamin switch -coption & simplifylamin switchsyntax by @falexwolf in #3532 - ⬆️ Upgrade lamindb-setup by @Koncopd in #3536
- 💄 Prettier display for
dtypeforRecordandULabelsub types inschema.describe()by @falexwolf in #3537 - Extend
lamin describeto more entities by @falexwolf in #3538 - ✨ Add
plantraceability and improveBranchdata 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.mdto and commenting for any entity by @falexwolf in #3541 - 🗃️ Add a
_status_code: intfield toBranchandBaseBlockby @falexwolf in #3542 - 🗃️ Remove unnecessary
BranchArtifactmodel 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 passinginclude = "comments"by @falexwolf in #3548 - ✨ Add
UPath.from_auth(...)by @Koncopd in #3547 - 🏗️ Reconcile
is_lateststate across branches by @falexwolf in #3551 - Relax AnnData version constraint by @Zethson in #3550
- ✨ Introduce Merge Request states on branches and enable
lamin updateto update properties of entities by @falexwolf in #3552
Full Changelog: 2.1.2...2.2.0
Release 2.1.2
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
boto3by default inartifact.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
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 resetcommad to CLI by @Koncopd in #3517 - ✅ Fix cleanup of
permissionstest by @Koncopd in #3518
Full Changelog: 2.1.0...2.1.1
Release 2.1.0
See https://docs.lamin.ai/changelog/2026#db-2-1-0-bionty-2-1-0
What's Changed
- 🐛 Fix
Artifact.from_dataframeto 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
laminhubrefactoring by @fredericenard in #3464 - 📝 Fix
Artifact.from_anndataexample 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=strby @falexwolf in #3456 - 🚸 Return information about deleted objects rather than
Noneupon hard delete by @falexwolf in #3469 - 🍱 Update CellLine default source by @sunnyosun in #3471
- 🚸 Raise canonical
InstanceNotFoundErrorinRegistry.connect()by @falexwolf in #3470 - 🚚 Rename
wetlabtopertdbby @falexwolf in #3472 - ♻️ Efficiently encode uploading information by @falexwolf in #3473
- 📝 Consistently mention backward relationships and type-annotate
ManyToManyfields withQueryManager[T]by @falexwolf in #3474 - 🚸 Enable convenient re-upload of local file after upload failure by @falexwolf in #3079
- ♻️ Rather flag
_storage_ongoingthan_storage_completedby @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 cacheCLI command to belamin settings cache-dir, refactorlamin settings, expandlamin annotate, and overhaul CLI docs by @falexwolf in #3495 - 📝 Document
RelatedManager[T]and fixManyToManytype 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
lightningintegration by @Zethson in #3425 - 🚸 Better error behavior in
lamin saveby @sunnyosun in #3503 - 📝 README v5.3 by @falexwolf in #3504
- ♻️ Fully leverage
Contextto manage the run context of function executions by @falexwolf in #3506 - 🚸 Serialize
Path,UPath, and handleNoneparams 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.modelsby @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
See https://docs.lamin.ai/changelog/2026#db-2-0-1
What's Changed
- 🚸 Backward compatibility for querying features by
dtypeby @falexwolf in #3454
Full Changelog: 2.0.0...2.0.1
Release 2.0.0
See https://docs.lamin.ai/changelog/2026#db-2-0-0
What's Changed
- 📝 Fix docs by @falexwolf in #3385
- ✨ Add
feature.dtype_as_objectby @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.jsonto loaders by @namsaraeva in #3393 - 🔧 Rename
zarrextra tozarr_v2by @Koncopd in #3390 - 🐛 Account for size 0 environments by @falexwolf in #3394
- ♻️ Better re-use Django's
ObjectDoesNotExistandMultipleObjectsReturnedby @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
DbWriteLogrework 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
hstoreinDbWritetriggers to compute diffs on update by @Koncopd in #3404 - ⬆️ Upgrade lamindb-setup by @Koncopd in #3407
- ⬆️ Bump
anndataupper bound by @Koncopd in #3409 - 🚸 Raise a clear error if calling
CanCurateand similar registry class methods on objects by @falexwolf in #3411 - 📝 Improve the
Spacedocument by @falexwolf in #3412 - ⬆️ Bump
fsspecpackages upper bound by @Koncopd in #3413 - 📝 Render return type annotations of
Artifact.open()in docs by @falexwolf in #3414 - 🚚 Rename
rest-hubtobackendby @fredericenard in #3410 - 🔥 Remove tracking from
collection.artifacts.all()by @Koncopd in #3405 - 🏗️ Introduce
Feature._dtype_strto hold a serialization that links object types (Record+ULabel) based on theiruidinstead of theirnameand type hierarchy by @falexwolf in #3416 - 🏗️ Use the new
feature._dtype_strinstead offeature.dtypeby @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
ManyToManyfields for the annotating runs and artifacts of anArtifactby @falexwolf in #3420 - 🚚 Swap accessor names for
SchemaComponentlinks, consistentManyToManyfield names forRecordRecordlinks by @falexwolf in #3421 - 🗃️ Migrate the
FeatureandSchemadatabase tables to LaminDB v2 by @falexwolf in #3422 - 🚚 Rename
Artifact.feature_setstoArtifact.schemasby @falexwolf in #3423 - 🗃️ Rename
SQLRecord._branch_codetoSQLRecord.branch_idand removefeature_ref_is_nameandlabel_ref_is_namefields from link models by @falexwolf in #3424 - 💚 Fix tests setup by @Koncopd in #3426
- 🐛 Fix broken imports from
hubmoduleby @fredericenard in #3428 - ♻️ Refactor require_organism by @sunnyosun in #3429
- ♻️ Refactor data migration from
dtypeto_dtype_strby @falexwolf in #3431 - 🗃️ Rename
Artifact._subsequent_runstoArtifact.recreating_runsandRun._recreated_artifactstoRun.recreated_artifactsby @falexwolf in #3432 - 👷 Ensure
wetlabversion2.0a1is installed by @falexwolf in #3433 - ✅ Restore
check_lamin_dev, add defensiveartifactcleanup by @Koncopd in #3434 - ✨ Allow passing
_key_is_virtualonArtifactcreation by @Koncopd in #3438 - 🗃️ Rename
IsVersioned.versiontoIsVersioned.version_tag,Transform.typetoTransform.kind,FeatureValuetoJsonValue,BaseBlock.typetoBaseBlock.kind, deleteTransform._templateandRun._logfileby @falexwolf in #3435 - 🗃️ Bionty v2 migrations by @sunnyosun in #3430
- ✅ Test
userupdates by @Koncopd in #3437 - 👷 Reflect permission utils refactoring in noxfile by @falexwolf in #3441
- 🚸 Add
descriptionargument toTransform.from_git()by @falexwolf in #3440 - 🗃️ Simplify
Transformby @falexwolf in #3442 - 🗃️ Migrate most auxiliary fields to SQL columns by @falexwolf in #3443
- ♻️ Edits for
noxfileby @Koncopd in #3444 - 🗃️ Refactor
_storage_completedmechanism 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
dtypedata migration to raw SQL to avoid inexistentbranch_idby @falexwolf in #3449 - Fix create from source by @sunnyosun in #3451
- 🗃️ Rename
RootBlocktoBlockwith a columnkeyakin toArtifactandTransformby @falexwolf in #3452 - ⚡️ Squash migrations and re-build SQLite init database by @falexwolf in #3453
Full Changelog: 1.17.0...2.0.0