Changelog 2026
¶
Note
Get notified by watching releases for git repositories: lamindb · laminhub · laminr · nf-lamin · bionty
2026-05-10 hub 1.34.0¶
2026-05-07 hub 1.33.0¶
🚸 Enforce name requirement for new record dialog PR @chaichontat
🚸 Clear search on folder navigation in bucket table PR @chaichontat
🐛 Fix space selector in sheet creation PR @chaichontat
2026-05-06 hub 1.32.0¶
🚸 Clean up project detail page PR @chaichontat
🚸 Experiment page launch improvements PR @chaichontat
🐛 Fix sorting and pagination in access management pages PR @chaichontat
2026-05-05 docs¶
📝 New guide: Organize datasets PR @falexwolf
2026-05-04 hub 1.31.0¶
🚸 Launch workflows from records with auto-completed metadata PR @chaichontat
🚸 Add a dedicated project page PR @falexwolf
🚸 Enable ordering and hiding tabs on the instance navbar PR @chaichontat @falexwolf
🚸 Prevent password managers from autocompleting fields PR @chaichontat
🚸 Support more data types in the feature creation modal PR @chaichontat @falexwolf
🚸 Show download button for problematic HTMLs PR @chaichontat
🚸 Add
nf-laminplugin detection and alert in launch form PR @chaichontat🐛 Enhance Nextflow schema validation and parsing logic PR @chaichontat
2026-04-27 db 2.4.2¶
🚸 Support
dtypeURL PR @falexwolf
2026-04-27 hub 1.30.1¶
🚸 Transform link inheritance PR @chaichontat
🐛 Fix audit log rendering PR @chaichontat
🐛 Fix double scroll bars in the transform page PR @chaichontat
2026-04-25 hub 1.30.0¶
✨ Support the bool
dtypefor CSV upload PR @chaichontat🚸 Improve sheet keyboard handling PR @chaichontat
🚸 Standardize instance settings and org collab settings PR @chaichontat
🚸 Canonical run URLs PR @falexwolf
2026-04-24 nf 0.6.2¶
2026-04-23 blog¶
📝 How I managed thousands of datasets to build the scPRINT family of scRNA-seq foundation models PR @falexwolf
2026-04-23 bionty 2.4.0¶
⚠️ Run bionty.core.sync_public_sources()
This will update the Source registry with the new organisms of Protein.
🍱 9 new organisms from
Uniprot,v2026-01PR @sunnyosun @ishitajain9717🍱 Update
Uniprottov2026-01for organismshuman&mousePR @sunnyosun
2026-04-23 db 2.4.1¶
🔒️ Obfuscate user secrets in params and source code PR @falexwolf
🚸 Detect
project,space&branchargs in@ln.flow()and detectLAMIN_INITIATED_BY_RUN_UIDinln.track()PR @falexwolf🚸 Validated transfer of artifacts to other storage locations PR @Koncopd
🐛 Fix cleanup of internal files on instance init failures PR @Koncopd
2026-04-21 hub 1.29.2¶
🚸 Sheets: bulk row addition and CSV template download PR @chaichontat
🐛 Fix projects page highlighting and pagination PR @chaichontat
2026-04-20 db 2.4.0¶
⚠️ Run lamin migrate deploy
🗃️ Add
branchandcreated_onfields toBaseBlockand the_auxfield toBranchPR @falexwolf🗃️ Make
featurenullable onRunRecordPR @falexwolf
All instances connected to LaminHub have been migrated and there is no need to act.
If you are an admin of a self-managed instance, please migrate your database with lamin migrate deploy.
For details see the Compatibility Matrix and the source code.
Highlights:
✨ Allow users to transfer artifacts between storage locations PR @Koncopd
✨ Add
Record.from_dataframe()and bulk saving of records PR @falexwolf✨ Saving markdown notes as records PR @falexwolf
UX:
🚸 Enable
lamin connect --hereto scope instance to a development directory parallel to git PR @falexwolf🚸 Scope a
lamindbconnection to a development directory PR @falexwolf🚸 Skip hash lookup on empty files when creating an
artifactPR @Koncopd🚸 Remove duplicated logging in
ln.connect()if already connected PR @falexwolf🚸 Allow users to pass kwargs to
write_h5adandwrite_zarrinArtifact.from_anndata(...)PR @Koncopd🚸 Warn if working with a non-latest version of an artifact PR @Koncopd
🚸 Do not error, only warn if running outside
dev-dirPR @falexwolf
Integrations:
🚸 Overhaul the
lightningintegration (v3) PR @jorenretel
Bugs:
🐛 Invoke original signal handlers in
LogStreamTracker.cleanup()PR @Koncopd🐛 Except only specific import error in
with_package_objandwith_packagePR @Koncopd🐛 Fix single file directory upload when saving an
artifactPR @Koncopd🐛 Fix
record.to_artifact()export in casemaximal_setisTrueand record names are not populated PR @falexwolf
Dependencies:
⬆️ Upgrade s3fs PR @danplischke
⬇️ Upper bound
s3fsby 2026.1.0 due to a bug with connection refresh PR @Koncopd
Refactors:
♻️ In the
lamidb.core.storagemodule, lazily import heavy dependencies likeanndataPR @jorenretel♻️ Avoid unnecessary
pandasandanndataimports onArtifactinitialization PR @Koncopd♻️ Also save README as block, prepare transitioning away from README artifacts PR @falexwolf
♻️ Do not show instance settings content on validation error PR @Koncopd
♻️ Enable
to_dataframe(include='features')also forRunPR @falexwolf
Docs:
📝 Recommend
FeatureManager.set_values()and warn thatFeatureManager.add_values()can invalidate thedtypeof categorical feature annotations under certain circumstances PR @ishitajain9717📝 Document dtype
booland improve documentation ofDtypeStrPR @falexwolf📝 Prettify and simplify spatialdata schema creation script PR @falexwolf
📝 Improve documentation for
Artifact.from_anndata(...)PR @Koncopd📝 README v5.6: Added new features of lamindb 2.4 + clean ups PR @falexwolf
2026-04-20 hub 1.29.0¶
✨ Support GitHub-flavored markdown PR @chaichontat
🐛 Fix faceted filter narrowing in projects and reference PR @chaichontat
2026-04-19 hub 1.28.0¶
🚸 Default sheets to card view PR @chaichontat
⚡️ Faster sheet saving PR @chaichontat
⬆️ Upgrade lamindb to 2.4 PR @falexwolf
2026-04-16 hub 1.27.0¶
✨ Query records by features PR @chaichontat
✨ Feature-based record linking workflow PR @chaichontat
🚸 Add the delete action to the records dropdown menu PR @chaichontat
🚸 Improve robustness of organization management pages PR @chaichontat
2026-04-15 blog¶
2026-04-12 hub 1.26.0¶
🚸 Rename Merge Requests to Change Requests and polish design PR @keller-mark
🐛 Fix space information in new sheet workflow PR @chaichontat
🐛 Fix overflow behavior in main navigation tabs PR @chaichontat
2026-04-10 hub 1.25.0¶
✨ Card view for sheets PR @chaichontat
✨ Record page: transform links PR @chaichontat
✨ Drag-and-drop reordering for sidebar records PR @chaichontat
🚸 Simplify record creation modal, advocate “Type” also for notes pages PR @falexwolf
🚸 Move the
ULabelspage under theFeaturestab PR @falexwolf🚸 Inline title/description editing PR @chaichontat
🐛 Fix display of record type / page descriptions PR @falexwolf
2026-04-08 hub 1.24.0¶
🚸 Redesign the run cards and add a tabular view indexed by params and features PR @chaichontat
💄 Move records number and schema info to the right and do not display ‘Root’ in breadcrumbs PR @falexwolf
🐛 Fix data fetch error on
collectionpage PR @falexwolf
2026-04-06 hub 1.23.1¶
🐛 Fix request for
spaceonUserin sheet edit mode PR @falexwolf
2026-04-06 hub 1.23.0¶
✨ General support for managing access with spaces in the UI PR @chaichontat
✨ Make runs searchable PR @chaichontat
✨ Add support for R source code highlighting PR @falexwolf
🛂 Enable linking objects in a protected space for users who have read access to them PR @Koncopd
🚸 Mention
lamin savein notebook preview PR @falexwolf💄 Harmonize markdown font size PR @chaichontat
2026-04-02 blog¶
📝 An introduction to LaminR PR @falexwolf
2026-03-31 hub 1.22.0¶
✨ Add a simple feature detail page PR @chaichontat @falexwolf
⚡️ Eliminate a multi-second p100 for multiple REST endpoints PR @fredericenard
🚸 Add option to show non-zero status code runs for data lineage PR @chaichontat
🚸 Separate markdown editing from data editing PR @chaichontat
🚸 Improve responsiveness of nav bar PR @chaichontat
🚸 Unnamed records are marked as unnamed PR @chaichontat
🐛 Fix
record.to_artifact()export in casemaximal_setisTrueand record names are not populated PR @falexwolf🐛 Fix duplicated features in artifact detail PR @chaichontat
🐛 Fix admin self-assignments in access pages PR @chaichontat
Experimental beta:
✨ Initial space support in the UI PR @chaichontat
2026-03-27 nf 0.6.0¶
✨ This release adds support for spaces and branches, configurable artifact keys, and manual path tracking. @rcannood
Space & Branch support: New
space_uidandbranch_uidtop-level config options to scope transforms, runs, and artifacts into a specific space and branch (PR).lamin { space_uid = "abcdef1234" branch_uid = "abcdef1234" }
Configurable artifact keys: New
keyoption onoutput_artifacts,input_artifacts, and individual rules to control how artifact keys are derived. Accepts a string template, a closure, or a[relativize: ...]map shorthand (PR, PR).lamin { output_artifacts { key = [relativize: params.outdir] } }
Manual path tracking: New
include_pathssetting oninput_artifacts,output_artifacts, and individual rules to explicitly specify files that should be tracked — useful for files consumed in Groovy that are invisible to the task listener (PR).lamin { input_artifacts { include_paths = { params.input } } }
Name-based references: UID fields (
project_uids,ulabel_uids,space_uid,branch_uid) now accept prefixed names (?name,!name,+name) for convenience and cross-environment testing (PR). Note that this is experimental and may be subject to change in future releases.
Bug fixes.
Fixed key relativization to work uniformly across
file://,s3://,gs://, andaz://paths usingURI.relativize()PR @rcannoodFixed assets directory detection for users with custom
NXF_HOMEorNXF_ASSETSby usingnextflow.Const.DEFAULT_ROOTinstead of a hardcoded path PR @rcannood
Breaking changes.
project_uidsinsiderun {},transform {}, and artifact rules is removed. Use the top-level field only PR @rcannood
Others.
2026-03-20 bionty 2.3.1¶
🐛 Fix duplicates in Ensembl prefixes for organisms PR @falexwolf
2026-03-20 db 2.3.1¶
🐛 Fix incorrect read-only warning for
ln.DB(...)PR @Koncopd📝 Coin the term “sync” instead of “transfer” for syncing data between databases PR @falexwolf
2026-03-18 bionty 2.3.0¶
Bionty now depends on lamindb-core instead of lamindb.
2026-03-18 db 2.3.0¶
Architecture:
🏗️ Create
lamindb-coreto distributelamindbwithout optional dependencies PR @ap– @falexwolf
UX improvements:
🚸 Improve
ln.connect()performance and robustness PR @falexwolf🚸 Enable feature-based query expressions PR @falexwolf
🚸 Allow semantic queries by run & branch status PR @falexwolf
🚸
FeatureManager.add_values(),set_values(), andremove_values()accept feature objects, not just feature name strings PR @falexwolf🚸 Enable configuring env modules PR @falexwolf
🚸 Refresh federated AWS credentials on the
botocorelevel PR @Koncopd🚸 Add informative
record.describe()PR @falexwolf🚸 Print warning if truncating a query result PR @falexwolf
🚸 Refactor agent plan saving to strip TODOs from description PR @falexwolf
🚸 Treat composite suffixes with
.zarrat the end differently from other unspecified composite suffixes PR @Koncopd🚸 Allow users to enforce ignoring local aws credentials via
system.envPR @Koncopd🚸 Optimize DB interactions in
lightningintegration PR @falexwolf🚸 Warn when connecting the default database to a non-writable connection PR @Koncopd
Database:
🗃️ Make
feature_idonTransformRecordlink model nullable PR @falexwolf
Bug fixes:
🐛 Fix model field tracking via
_populate_tracked_fieldsfor deferred fields PR @Koncopd🐛 Fix synchronization of directory artifacts when the destination directory exists but is empty PR @Koncopd
🐛 Fix feature collisions in lightning integration PR @falexwolf
🐛 Account for host database in
FeatureManager.__getitem__PR @sunnyosun
MappedCollection:
🚸 Improve data retrieval in
MappedCollectionPR @mojtababahrami🚸 Allow users to specify partially available keys in
MappedCollectionand retrieveraw.XPR @Koncopd
Ontologies:
Docs:
📝 Improve the
lamindb.recorddocument PR @falexwolf📝 Document refresh behavior of federated s3 credentials for
tiledbsomaPR @Koncopd
2026-03-16 hub 1.21.0¶
✨ Enable linking transforms to a record PR @chaichontat
🚸 Enhance artifact and transform cards on record page with pagination and filtering PR @chaichontat
🚸 Enable searching for
str-dtype features in sheets PR @falexwolf🚸 Set default sorting to
updated_atdescending for artifacts PR @chaichontat🐛 Resolve
ULabeltypes in sheets’dtypedisplay and enforce these types during edit mode PR @chaichontat🐛 Disambiguate categorical values in CSV parser PR @chaichontat
💄 Remove root element from typed sidebars for records, ulabels, features & schemas PR @falexwolf
💄 Do not display schema names on records sidebar PR @falexwolf
2026-03-13 R 1.3.0¶
🚸 Simplify connecting to an instance PR @lazappi
Connecting via the main module object now works with lamindb>=2.3:
ln <- laminr::import_module("lamindb")
ln$connect("<owner>/<instance>")
Other changes:
2026-03-12 hub 1.20.0¶
✨ Show features in records list PR @chaichontat
✨ Link artifacts to records PR @chaichontat
🐛 New features default to being nullable as in
lamindbPR @chaichontat
2026-03-05 hub 1.19.0¶
✨ Add sheet column filtering PR @chaichontat
🐛 Fix truncated run counts PR @chaichontat
2026-03-02 blog¶
2026-03-04 hub 1.18.0¶
✨ A more detailed record page PR @chaichontat @cydneyn @sunnyosun
✨ Display README on the Artifact, Collection, Transform, and Schema detail page PR @sunnyosun
2026-03-03 hub 1.17.0¶
Features & major design improvements:
✨ Merge Requests v0.1 under new Changes tab includes Database Writes log PR @keller-mark
✨ Overhaul the design of the Records page PR @cydneyn @sunnyosun @chaichontat
GUI polish:
💄 Improve nested scrolling behavior PR @chaichontat
💄 Increase artifact dialog size PR @chaichontat
💄 Simplify Team page PR @falexwolf
Frontend routes:
🚚 Rename the
write-logs/route todbwrites/PR @falexwolf
Bug fixes:
🐛 Fix instance deletion in on-prem infra due to missing permissions PR @Koncopd
🐛 Improve pagination in artifact tables PR @chaichontat
🐛 Invalidate instance README display cache on artifact upload PR @chaichontat
🐛 Fix instance deletion in on-prem infra due to missing permissions PR @falexwolf
2026-03-02 blog¶
📝 Interactive visualization of multimodal and spatial data with Vitessce PR @keller-mark
2026-02-27 blog¶
📝 Symbolic memory for biological R&D PR @falexwolf
2026-02-26 hub 1.16.5¶
🐛 Fix allowed suffixes in launch input selection PR @sunnyosun
2026-02-25 hub 1.16.4¶
🚸 Respect Nextflow MIME suffix behavior in Launch page inputs form PR @sunnyosun
💄 Account for recreated artifacts and recreated collections in lineage explorer PR @falexwolf
💄 Display run entrypoints in transform, run, and lineage views PR @falexwolf
💄 Pricing page v2 PR @falexwolf
2026-02-24 db 2.2.1¶
🚸 Add backward compat for
lamin switch --branchPR @falexwolf🚸 Improve logging during
@ln.flow()and@ln.step()PR @falexwolf🚸 Enable defining a feature that restricts to a subset of artifacts PR @falexwolf
🚸 Better handling of problematic access token refreshes PR @Koncopd
2026-02-19 bionty 2.2.0¶
🗃️ Add
created_onfield for LaminDB v2.2 PR @falexwolf⚡️ Lazily import pandas PR @falexwolf
2026-02-19 db 2.2.0¶
⚠️ Run lamin migrate deploy
🗃️ Add a
_status_code: intfield toBranchandBaseBlockPR @falexwolf
All instances connected to LaminHub have been migrated and there is no need to act.
If you are an admin of a self-managed instance, please migrate your database with lamin migrate deploy.
For details see the Compatibility Matrix and the source code.
Examples: Change management with branching, merging, and Merge Requests
To create a contribution branch and switch to it, run:
lamin switch -c my_branch
To merge a contribution branch into main, run:
lamin switch main # switch to the main branch
lamin merge my_branch # merge contribution branch into main
To see the current branch along with other information, run:
lamin info
To annotate the current branch with a README.md, run:
lamin annotate branch --readme README.md
To comment on the current branch, run:
lamin annotate branch --comment "I think we should revisit this, tomorrow, WDYT?"
To describe the current branch (optionally include comments), run:
lamin describe branch --include comments
To trace on which branch a SQLRecord object was created, run:
sqlrecord.created_on.describe()
To open a Merge Request for a branch:
lamin update branch --status draft # for current branch
lamin update branch --name my_branch --status review # for any branch
Just like Pull Requests on GitHub, branches are never deleted so that the provenance of a change stays traceable.
For more info, see: docs.lamin.ai/lamindb.branch
Examples: Agent plan traceability
Saving an agent plan automatically tags with artifact.kind = "plan" and infers a key starting with .plans/:
lamin save /path/to/.cursor/plans/my_task.plan.md
lamin save /path/to/.claude/plans/my_task.md
Link an agent plan against a run:
ln.track(plan=".plans/my-agent-plan.md")
This will link the plan artifact to a run in the same way in which transform, an initiating run (initiated_by_run) and report/environment artifacts are linked to the run.
While the transform acts as the deterministic source code for the run and initiated_by_run enables higher-level runs in workflow orchestration, the agent plan complements these two by allowing the linkage of plan that steers a non-deterministic agent.
Highlights:
✨ Add
lamin mergecommand, addlamin switch -coption & simplifylamin switchsyntax PR @falexwolf✨ Add agent plan traceability PR @falexwolf
✨ Enable linking a
README.mdto and commenting for any entity PR @falexwolf✨ Introduce Merge Request states on branches PR @falexwolf
✨ Add
lamin updateand homogenizelamin getwith other commands PR @falexwolf
UX:
🚸 Quality of life improvements for saving via the CLI: saving plans, sync with git, annotating with version tags PR @falexwolf
🚸 Extend
lamin describeto more entities PR @falexwolf🚸 Prettier display for
dtypeforRecordandULabelsub types inschema.describe()PR @falexwolf🚸 Track
record_type.to_dataframe()as an input for the current run PR @falexwolf🚸 Make it easier to query for all output artifacts including recreated ones PR @falexwolf
🚸 Include comments in
SQLRecord.describe()when passinginclude = "comments"PR @falexwolf🚸 Include comments in
lamin describeupon--include commentsPR @falexwolf🚸 Re-raise
InvalidArgumentinlamin annotateasClickExceptionPR @falexwolf🚸 Nicer error for
lamin switchto non-existing branch PR @falexwolf
Performance:
⚡ Speed-up lamindb import by lazily importing pandas, anndata & pyarrow PR @falexwolf @Zethson @Koncopd
Architecture:
🏗️ Reconcile
is_lateststate across branches PR @falexwolf
Bux fixes:
Docs:
📝 Add videos to docs, polish typos and wording PR @falexwolf
Security:
Dependencies:
2026-02-19 hub 1.16.3¶
🐛 Fix between-page sidebar type navigation PR @chaichontat
🐛 Fix pagination bar position in sheets PR @sunnyosun
🐛 Run metadata settings includes the dtype sheet when a feature has the same dtype PR @chaichontat
2026-02-18 hub 1.16.2¶
⬆️ Upgrade to LaminDB v2.2a3 PR @falexwolf
2026-02-17 hub 1.16.1¶
🚸 Fix clunky UX in left sidebar of typed entities PR @chaichontat
💄 Simplify features header in artifact detail page, should be “Values” not “Categories / Values” PR @falexwolf
2026-02-15 hub 1.16.0¶
⬆️ Enable compatibility with lamindb 2.2
💄 Do not show
pertdblink tables PR @sunnyosun💄 Fix text truncation in list cells of sheets PR @sunnyosun
💄 Fix badge for recreated output artifacts PR @sunnyosun
2026-02-12 hub 1.15.2¶
🚸 Support more path types from nextflow schema PR @sunnyosun
🐛 Fix
pertdbcopy button content PR @sunnyosun
2026-02-11 hub 1.15.1¶
🐛 Fix
Projectfeature link PR @sunnyosun
2026-02-11 nf 0.5.1¶
2026-02-10 hub 1.15.0¶
High-level organization of the top navbar:
💄 Move
Recordstab to the left ofFeaturesPR @sunnyosun💄 Move
ULabelsunderRecordstab PR @sunnyosun💄 Fix string truncation display in sheets PR @sunnyosun
2026-02-09 db 2.1.2¶
UX:
Performance:
Bug fixes:
2026-02-09 hub 1.14.0¶
🚸 Better experience saving markdown notes PR @chaichontat
🐛 Fix text overflow for sheet names on
Launchpage PR @chaichontat🐛 Fix the count & filtering for recreated artifacts in the run input/output panes PR @sunnyosun
🐛 More robust error handling for account handle suggestions PR @chaichontat
🐛 Properly show a 404 response for artifacts when non-existent PR @chaichontat
💄 Polish the
Overviewpage PR @ninhja01 @chaichontat💄 Display run params PR @falexwolf
💄 Add the story to the About page PR @falexwolf @chaichontat
2026-02-02 db 2.1.1¶
UX:
🚸 Better detection of read-only connections for write errors and tracking PR @Koncopd
🚸 A
lamin settings cache-dir resetCLI command for resetting the cache directory to the default path PR @Koncopd🚸 A
S3QueryPath.is_bucket_versioned()method to check if the bucket in an s3 path is versioned PR @Koncopd
Bug fixes:
2026-02-03 nf 0.5.0¶
This release revamps the configuration (nextflow.config) for more control over which artifacts are registered and which metadata is attached (kind, projects, ulabels). Here is an example Nextflow config:
lamin {
instance = "laminlabs/lamindata"
api_key = secrets.LAMIN_API_KEY
output_artifacts {
rules {
output {
pattern = ".*"
order = 1
type = "include"
project_uids = ["AbCdEfGhIjKl"]
ulabel_uids = ["AbCd0123"]
}
// don't publish state.yaml files
yaml {
pattern = ".*\\.state\\.yaml"
type = "exclude"
order = 10
}
}
}
}
New functionality:
✨ Control which files are registered as artifacts using pattern-based rules PR @rcannood
✨ Link projects and ulabels to transforms, runs, and artifacts with new
runandtransformconfig sections for granular control PR @rcannood✨ New
apisection for connection settings replaces root-level fields PR @rcannood
UX:
Bug fixes:
Deprecations: The following API components are now deprecated and are scheduled for removal in v0.6
Type |
Deprecated |
Replacement |
|---|---|---|
Config |
|
|
Config |
|
|
Function |
|
|
2026-02-02 db 2.1.0 | bionty 2.1.0¶
MLOps:
🚸 Overhaul the pytorch
lightningintegration PR @Zethson @jorenretel
Notebooks, scripts, workflows:
🚸 Recognize packaged python source code across
track(),@flow(), and@step()PR @falexwolf🚸 Default to creating a global run context in
ln.flow()PR @falexwolf🚸 Serialize
Path,UPath, and handleNonein transformparamsPR @falexwolf🚸 Reflect user CLI calls in transform description PR @falexwolf
🚸 Improve error message for running a script or notebook outside the development directory PR @falexwolf
Validation:
🚸 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=strPR @falexwolf
CLI:
🚸 Delete records via CLI PR @falexwolf
🚸 Better error behavior in
lamin savewhen transform is on a different branch PR @sunnyosun
General UX:
🚸 Enable convenient re-upload of local file after upload failure PR @falexwolf
🚸 Return information about deleted objects rather than
Noneupon hard delete PR @falexwolf🚸 Introduce safe-guards in updating the space of artifacts PR @Koncopd
🚸 Switch on SQL logging if
ln.settings.verbosityis"debug"PR @sunnyosun🚸 Raise canonical
InstanceNotFoundErrorinRegistry.connect()PR @falexwolf🚸 Allow users to pass ids of foreign keys in
Artifact()constructor PR @Koncopd
Performance:
⚡️ Much faster permanent run & transform deletion PR @falexwolf
⚡️ 1 sec speed-up for basic CLI calls through optimized
lamindb_setupimport time PR @falexwolf
Ontology updates in bionty:
🚸 Default the
CellLinesource tocellosaurusPR @sunnyosun🚸 More robust
add_sourcePR @sunnyosun🚸 Allow users to set
biontyroot dir viaBIONTY_ROOT_DIRenv variable PR @Koncopd🍱 New ontology version: Gene, release-114 PR PR @sunnyosun @Zethson
🍱 New ontology version: Gene, release-113 PR @sunnyosun
🍱 New ontology version: Organism PR @sunnyosun
🍱 Update standard ontologies PR @sunnyosun
Better conventions in CLI (backward compatible):
🚚 Support
key-based deletion inlamin deletePR @falexwolf🚚
lamin cacheis nowlamin settings cache-dir, refactor settings managemennt PR @falexwolf🚚 More consistent
lamin switchandlamin createcommands PR @falexwolf
The wetlab plugin was renamed to pertdb (backward compatible):
🚚 Rename
wetlabtopertdbPR @falexwolf
Bugs:
🐛 Refactor & fix feature-based queries for records PR @falexwolf
🐛 Fix
Artifact.from_dataframe()to support path input PR @Zethson
Docs:
📝 Convert guides to markdown format PR @falexwolf
📝 Legible API reference for
lamindb.modelsPR @falexwolf📝 Consistent reference to Python/R alternative for all CLI commands, expand
lamin annotatePR @falexwolf📝 Document backward relationships and add
RelatedManager[T]toManyToManytype annotations PR PR @falexwolf📝 README improvements PR @falexwolf
Refactoring:
♻️ Rather flag
_storage_ongoingthan_storage_completedPR @falexwolf♻️ Efficiently encode uploading information PR @falexwolf
♻️ Fully leverage
Contextto manage the run context of function executions PR @falexwolf
2026-01-31 hub 1.13.0¶
⚡ Update JWT signing from HS256 to ES256 for better performance PR @fredericenard
💄 Display output and input records on run detail page PR @falexwolf
2026-01-27 hub 1.12.1¶
🐛 Fix an issue in the Seqera Launch connector PR @chaichontat
2026-01-26 hub 1.12.0¶
✨ Configurable default Seqera workspace and compute environment PR @chaichontat
✨ Two new endpoints to help users authenticate and interact with instances through the API PR @fredericenard
🐛 Fix attaching a space to an instance in case an org admin isn’t a collaborator of that space PR @fredericenard
🐛 Prevent empty results when searching Artifacts PR @chaichontat
💄 Landing page: re-format taglines and update schematic PR @chaichontat
2026-01-21 nf 0.4.0¶
✨ This release allows for the automatic tracking of input artifacts by discovering their remote URIs, using functionality implemented in Nextflow 25.10. Hence, it requires Nextflow >=25.10.0 PR @rcannood
export NXF_VER=25.10.2
nextflow run <pipeline> \
--input "https://raw.githubusercontent.com/..." \
-with-report report.html
2026-01-20 hub 1.11.0¶
✨ Beta: A Logs page with
DbWriteevents PR - frontend: @chaichontat backend: @Koncopd✨ Support children type in record registration PR @chaichontat
🚸 Handle suggestions when adding users PR @chaichontat
🐛 Fix run metadata selection state PR @chaichontat
💄 Show records on the overview page PR @falexwolf
2026-01-14 hub 1.10.0¶
✨ Add
/artifacts/by-pathendpoint PR @fredericenard🐛 Write run annotations on the Launch page into the
RunRecordregistry PR @falexwolf📝 Improve landing page - metadata and lakehouse sections PR @falexwolf
2026-01-13 hub 1.9.1¶
🐛 More strictly enforce schema during UI-based record creation PR @chaichontat
🐛 Broaden database server access permissions to include shared database servers PR @fredericenard
📝 Improve landing page - introduce tags and improve language PR @falexwolf
2026-01-13 R 1.2.2¶
⬆️ Update minimal
lamindbversion to 2.0.0 PR @falexwolf PR @lazappi
2026-01-12 nf 0.3.0¶
2026-01-12 hub 1.9.0¶
✨ Transform search bar also understands run names and UIDs PR @chaichontat
🚸 Default to not listing inferred schemas without names PR @chaichontat
🐛 Fix the broken “New schema” button on the records page due to
lamindbv2 PR @chaichontat🐛 Fix the broken pipeline
Launchbutton due tolamindbv2 PR @sunnyosun
2026-01-11 db 2.0.1¶
🚸 Backward compatibility for querying features by
dtypePR @falexwolf
2026-01-11 db 2.0.0¶
This release makes the database schema fully consistent and thereby improves UX, integrity, and enables long-term stability.
⚠️ With the exception of previous deprecations, your code continues to run as is, but you will receive new warnings about renamed API components.
Main changes:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
Function tracking |
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
Private fields that are now public:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
|
|
|
✗ |
|
|
|
✗ |
|
|
|
✗ |
|
|
|
✗ |
Changes to auxiliary (JSON) fields:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✓ |
|
|
|
✗ |
On link models with labels:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
|
|
removed |
✗ |
|
|
removed |
✗ |
For completeness, changes in recently introduced unused API components:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
|
|
|
✗ |
|
|
|
✗ |
|
|
|
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
Changes in the bionty and wetlab modules:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
|
|
|
|
* uids are re-encoded to 14 chars with the first X chars conserved.
Changes in the wetlab module:
What |
Before |
After |
Backward compatible |
|---|---|---|---|
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
removed |
✗ |
|
|
|
✗ |
|
|
removed |
✗ |
|
|
✓ |
If you have data in removed registries you’ll see a warning that your data gets exported to parquet files. You can import these parquet files into the Record registry under an Experiment type without losing of functionality.
⚠️ After migrating databases to v2 via lamin migrate deploy lamindb package installations with v1 will raise errors. This is the last planned database migration that breaks older clients.
All instances connected to LaminHub have been migrated and there is no need to act.
If you are an admin of a self-managed instance, please migrate your database with lamin migrate deploy.
For details see the Compatibility Matrix and the source code.
⚠️ For laminr and nf-lamin users
For laminr users with an auto-managed reticulate environment, please run this:
reticulate::py_require("lamindb>=2.0.1") # DO THIS FIRST
ln <- laminr::import_module("lamindb")
For nf-lamin users, please upgrade to 0.3.0.
Removals:
🔥 Remove deprecated v1 API components PR @falexwolf
Features:
✨ Track shell scripts PR @falexwolf
✨ Enable managing workflows by decorating functions with
@ln.flow()and@ln.step()and deprecate@ln.tracked()PR @falexwolf
Architecture:
🏗️ For more robustness and to convey the field’s special nature in the API and the database schema, replace
Feature.dtypewithFeature._dtype_strto now hold a serialization that links object types (Record+ULabel) based on theiruidinstead of theirnameand type hierarchy PR @falexwolf
UX:
🚸 Add
feature.dtype_as_objectPR @sunnyosun🚸 Add
descriptionargument toTransform.from_git()PR @falexwolf🚸 Allow passing
_key_is_virtualonArtifactcreation PR @Koncopd🚸 Raise
SystemExituponInstanceNotFoundonly from CLI PR @falexwolf🚸 Raise error for init or import issues in
lamin io snapshotPR @Zethson🚸 Do not track inputs when calling
collection.artifacts.all()PR @Koncopd🚸 Raise a clear error if calling
CanCurateand similar registry class methods on objects PR @falexwolf🚸 Sort features in
describe()PR @falexwolf
Database-level changes:
🗃️ Rename
RootBlocktoBlockwith a columnkeyakin toArtifactandTransformPR @falexwolf🗃️ Refactor
_storage_completedmechanism and remove unique constraints on type names PR @falexwolf🗃️ Migrate most auxiliary fields to SQL columns PR @falexwolf
🗃️ Simplify
TransformPR @falexwolf🗃️ Rename
IsVersioned.versiontoIsVersioned.version_tag,Transform.typetoTransform.kind,FeatureValuetoJsonValue,BaseBlock.typetoBaseBlock.kind, deleteTransform._templateandRun._logfilePR @falexwolf🗃️ Rename
Artifact._subsequent_runstoArtifact.recreating_runsandRun._recreated_artifactstoRun.recreated_artifactsPR @falexwolf🗃️ Rename
SQLRecord._branch_codetoSQLRecord.branch_idand removefeature_ref_is_nameandlabel_ref_is_namefields from link models PR @falexwolf🗃️ Rename
Artifact.feature_setstoArtifact.schemasPR @falexwolf🗃️ Migrate the
FeatureandSchemadatabase tables to LaminDB v2 PR @falexwolf🗃️ Swap accessor names for
SchemaComponentlinks, consistentManyToManyfield names forRecordRecordlinks PR @falexwolf🗃️ Better names for the
ManyToManyfields for the annotating runs and artifacts of anArtifactPR @falexwolf
Bug fixes:
🐛 Account for size 0 environments PR @falexwolf
Bionty:
🎨 Re-encode BioRecord uid to 14 chars PR @sunnyosun
🗃️ Migrations for bionty v2 PR @sunnyosun
♻️ Refactor require_organism PR @sunnyosun
🗃️ Migrations for LaminDB v2 PR @falexwolf
🔥 Remove deprecated
display_available_sourcesPR @falexwolf
Wetlab:
🗃️ Migrations for wetlab v2 PR @sunnyosun
🗃️ Migrations for LaminDB v2 PR @falexwolf
🗃️ Create a composite index for
artifact,perturbationtargetfields inArtifactPerturbationTargetPR @Koncopd🗃️ Create a composite index for
artifact,geneticperturbationfields inArtifactGeneticPerturbationPR @Koncopd
Docs:
📝 Improve the
Spacedocument PR @falexwolf📝 Improve the
Artifact.replace()docs PR @falexwolf📝 Improve FAQ doc on trashing and archiving PR @falexwolf
📝 Render return type annotations of
Artifact.open()in docs PR @falexwolf
Config:
🔧 Introduce
InstanceSettings.is_managed_by_hubPR @falexwolf🔧 Add
.vitessce.jsonto loaders PR @namsaraeva
Refactoring:
♻️ Refactor
require_organismPR @sunnyosun♻️ Better re-use Django’s
ObjectDoesNotExistandMultipleObjectsReturnedPR @falexwolf♻️ Return file size in
hash_file()PR @falexwolf♻️ Squash migrations and re-build SQLite init database PR @falexwolf
♻️ More verbose migration integrity check PR @falexwolf
♻️ Call
lamin migrate deployeven if initializing from pre-built sqlite file PR @falexwolf
Dependencies:
2026-01-11 hub 1.8.0¶
🐛 Fix special character handling in filters PR @chaichontat
🐛 Fix filtering state leakage across different pages PR @chaichontat
🐛 Fix feature hover card not functioning correctly PR @chaichontat
2026-01-03 hub 1.7.0¶
🚸 Infinite scroll for transform list PR @chaichontat
📝 Update data validation video PR @namsaraeva
📝 Improve language on landing page PR @falexwolf