Skip to content

Releases: laminlabs/lamindb

Release 1.3.0

16 Mar 21:27
Compare
Choose a tag to compare

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

What's Changed

  • ⬆️ Upgrade lamin-cli & bionty & lamin-utils by @Zethson in #2540
  • ✨ Add FeatureManager._add_set_from_spatialdata by @Zethson in #2539
  • ✨ Implement MuDataCurator by @sunnyosun in #2543
  • 🎨 Integrate SDC save_artifact with general save_artifact by @Zethson in #2545
  • πŸ’š Fix permissions test by @Koncopd in #2550
  • ✨ Allow to pass synchronization arguments in Artifact.cache() by @Koncopd in #2553
  • ⬆️ Python 3.13 support by @Zethson in #2384
  • ✨ Add Schema based SpatialDataCurator by @Zethson in #2552
  • 🚸 Refactor organism constraints during validation by @sunnyosun in #2554
  • ♻️ Refactor CellxGeneAnnDataCatManager by @sunnyosun in #2555
  • ✨ Support CELLxGENE schema 5.2.0 by @sunnyosun in #2556
  • ♻️ Refactor PertAnnDataCatManager by @sunnyosun in #2558
  • ⬆️ Upgrade lamind-setup (fine-grained permissions) by @Koncopd in #2559
  • πŸ› Fix organism requirement by @sunnyosun in #2560
  • 🚸 Skip ln.track() when connected in read-only mode by @falexwolf in #2561
  • 🚚 Move non-lamindb docs to lamin-docs by @falexwolf in #2562
  • ✨ Add lamin get for artifacts and lamin load for collections by @falexwolf in #2563
  • πŸ’š Fix uv resolver for spatialdata by @Koncopd in #2564
  • πŸ‘· Move docs from Netlify to Cloudflare by @falexwolf in #2565
  • 🚸 Add more constructor signatures and specific inherited types by @falexwolf in #2566
  • πŸ“ Clean up curators API docs & the main curator guide by @falexwolf in #2567
  • πŸ“ Re-structure curation guides by @falexwolf in #2568

Full Changelog: 1.2.0...1.3.0

Release 1.2.0

09 Mar 16:10
Compare
Choose a tag to compare

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

What's Changed

  • 🚸 Raise NotImplementedError in Artifact.load() if there is no loader by @Koncopd in #2514
  • 🎨 When re-creating an Artifact, link subsequent runs instead of updating .run and linking previous runs by @falexwolf in #2515
  • ✨ Introduce Artifact.from_spatialdata() and re-factor validation of spatialdata stores by @Zethson in #2461
  • πŸ—οΈ Re-structure internal API away from monkey-patching Django models by @falexwolf in #2516
  • βœ… Test fine-grained permissions by @Koncopd in #2512
  • ♻️ Re-export link models by @falexwolf in #2523
  • πŸ”Š Do not show track warning for read-only connections by @Koncopd in #2527
  • 🚸 Ignore Dask legacy DataFrame warning by @Zethson in #2525
  • ♻️ Refactor internals of legacy feature logic in Collection by @falexwolf in #2528
  • ⬆️ Upgrade Bionty by @Zethson in #2518
  • ✨ Enable ln.track(project="My project") to auto-link entities to projects by @falexwolf in #2529
  • 🚸 Introduce .slots in Schema, Curator, and FeatureManager to access schemas and curators by dataset slot by @sunnyosun in #2530
  • 🩹 Do not overwrite ._state_db of models when the current instance is passed to .using by @Koncopd in #2534
  • ✨ Add .load() for artifacts holding SpatialData objects by @Zethson in #2532
  • πŸ› Fix passing a path manually when no path found by nbproject by @Koncopd in #2537
  • ⬆️ Upgrade nbproject by @Koncopd in #2541
  • 🚸 Do not evaluate filter on feature annotations in .df(features=True) by @falexwolf in #2542

Full Changelog: 1.1.1...1.2.0

Release 1.1.1

27 Feb 13:51
Compare
Choose a tag to compare

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

What's Changed

  • πŸ’š Fix docs build by @falexwolf in #2481
  • πŸ› Fix related model field check in .filter by @Koncopd in #2482
  • ✨ Write Artifact.n_observations in Artifact.from_df() by @Koncopd in #2484
  • ✨ Allow to specify fsspec upload options in Artifact.save by @Koncopd in #2486
  • πŸ› Automatically add missing columns upon .standardize() if nullable is True by @falexwolf in #2485
  • πŸ“ Add endpoint_url option to docs by @Koncopd in #2487
  • πŸ› Fix notebook re-run with same hash by @falexwolf in #2489
  • πŸ› Do not resolve http links when registering by @Koncopd in #2491
  • fix typo by @Zethson in #2492
  • ⬆️ Upgrade bionty by @Zethson in #2494
  • πŸ› Run pip freeze with current python interpreter by @ap-- in #2495
  • ⬆️ Update submodules by @sunnyosun in #2498
  • πŸ’š Fix prettier pre-commit hook by @Koncopd in #2499
  • 🚸 Raise consistency error if a source path suffix doesn't match the artifact key suffix by @falexwolf in #2490
  • ✨ Allow to use Artifact.open() and Artifact.load() for .gz files by @Koncopd in #2506
  • ♻️ Small corrections by @Koncopd in #2509
  • 🩹 Force no compression in Collection.mapped even for files with .gz extension by @Koncopd in #2510
  • 🚸 Better error message upon re-creation of schema with same name and different hash by @falexwolf in #2511
  • 🚸 Make the obs and var DataFrameCurator objects accessible via AnnDataCurator.slots by @sunnyosun in #2505

Full Changelog: 1.1.0...1.1.1

Release 1.1.0

18 Feb 12:41
Compare
Choose a tag to compare

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

What's Changed

  • πŸ§‘β€πŸ’» Enable mypy again by @Zethson in #2382
  • πŸ› Fix SpatialDataCurator import by @Zethson in #2387
  • ✨ Check for corrupted cache in Artifact.load by @Koncopd in #2386
  • πŸ› Sample level metadata is now optional in SpatialDataCurator & UX improvements by @Zethson in #2391
  • ✨ Check for corrupted cache in Artifact.open by @Koncopd in #2395
  • ⬆️ Upgrade lamindb-setup (check instance modules on import) by @Koncopd in #2393
  • ✨ Lamin-cli ruff by @Zethson in #2398
  • ✨ Require keyword parameters for Artifact.from_x methods by @Zethson in #2401
  • ✨ Schema-based curators: DataFrameCurator by @falexwolf in #2388
  • ♻️ Squash migrations by @falexwolf in #2367
  • 🚸 Validate existing records in the DB irrespective of whether an ontology source is passed or not by @sunnyosun in #2370
  • 🚸 Improved error message for saving via CLI by @Zethson in #2379
  • ✨ Infer n_observations in Artifact.from_anndata by @Koncopd in #2404
  • ⬆️ Remove the bound on storage3 by @Koncopd in #2405
  • 🚚 Move CellxGene Curator from cellxgene-lamin here by @falexwolf in #2403
  • 🚸 Fix warning about artifacts in trash by @ap-- in #2406
  • πŸ“ Clarify Collection.append by @Koncopd in #2407
  • ⚑️ Safer resolve in check_path_is_child_of_root by @Koncopd in #2409
  • 🚸 Better user feedback during keyword validation in Record constructor by @Zethson in #2402
  • πŸ› Fix NaN in categorical columns for MappedCollection by @Koncopd in #2411
  • 🚚 Move PertCurator from wetlab here and add CellxGene Curator test by @falexwolf in #2408
  • 🎨 Self-contained definition of CellxGene schema by @falexwolf in #2412
  • 🚚 Bulk-rename old-style curators to CatCurator by @falexwolf in #2413
  • πŸ”₯ Eliminate all logic related to using_key in curators by @falexwolf in #2414
  • ♻️ Refactor organism handling in curators by @falexwolf in #2415
  • ♻️ Re-purpose BaseCurator as Curator and introduce CatCurator by @falexwolf in #2416
  • 🎨 Let Curator.validate() throw an error by @falexwolf in #2417
  • ✨ Schema-based curators: AnnDataCurator by @falexwolf in #2418
  • ✨ A first version of a tracked() function decorator by @falexwolf in #2422
  • ✨ Support s3-compatible endpoint urls by @Koncopd in #2420
  • 🚸 Improve ln.tracked() user experience by @falexwolf in #2426
  • ♻️ Explicitly import lamindb in current_run by @Koncopd in #2427
  • ⬆️ Upgrade fsspec packages (s3fs, gcsfs, universal_pathlib) by @Koncopd in #2428
  • πŸ› Fix var_index standardization of SpatialDataCurator by @Zethson in #2433
  • ✨ Add Artifact.from_tiledbsoma with n_observations by @Koncopd in #2438
  • πŸ› Allow filtering on np.nan in obs_filter of MappedCollection by @Koncopd in #2443
  • πŸ› Robuster var_index curation of SpatialDataCurator by @Zethson in #2444
  • πŸ› Fix Feature with description idempotency and 🚸 improve filter and get error behavior by @Zethson in #2442
  • ✨ Allow passing artifact to Curator by @sunnyosun in #2441
  • ⬆️ Upgrade lamindb-setup (explicitly set version_aware and use_listings_cache) by @Koncopd in #2445
  • ⬆️ Update lamindb-setup by @Zethson in #2449
  • πŸ› Fix dangling folders on upload failures by @Koncopd in #2448
  • 🚸 Full guarantee of avoiding duplicating Transform, Artifact & Collection in concurrent runs by @falexwolf in #2432
  • 🚸 Fix RemovedInDjango60Warning: CheckConstraint.check is deprecated by @Zethson in #2446
  • πŸ› Fix caching logic in Artifact.open() by @Koncopd in #2454
  • 🚚 Restore .feature_sets as a ManyToManyField by @falexwolf in #2453
  • ⬆️ Upgrade lamindb-setup by @Koncopd in #2460
  • ♻️ Squash migrations by @falexwolf in #2457
  • ✨ Add Collection.open() that returns pyarrow dataset by @Koncopd in #2462
  • ⬆️ Test purged migrations by @falexwolf in #2464
  • 🚸 Better error for malformed categorical dtype by @falexwolf in #2465
  • ♻️ Prettify AnnDataCurator implementation by @falexwolf in #2466
  • 🚚 Rename CatCurator to CatManager by @falexwolf in #2467
  • ♻️ Mark Schema fields as non-editable by @falexwolf in #2468
  • ✨ In features, enable (1) default values and (2) filters on valid categories by @falexwolf in #2469
  • ✨ Add auxiliary field nullable to Feature by @falexwolf in #2471
  • πŸ“ Show ln.Collection.open() in arrays.ipynb by @Koncopd in #2472
  • 🚸 Make new version upon passing existing key to Collection by @falexwolf in #2474
  • ✨ Support endpoint_url in operations with tiledbsoma by @Koncopd in #2476
  • 🎨 A ManyToMany between Schema.components and .composites by @falexwolf in #2473
  • βž• Add pyyaml to dependencies by @Koncopd in #2477
  • πŸ› Fix save_tiledbsoma_experiment for paths with endpoints by @Koncopd in #2478
  • 🩹 Ensure backward compat availability of lamindb.core.exceptions by @falexwolf in #2479

Full Changelog: 1.0.5...1.1.0

Release 0.77.4

29 Jan 05:34
Compare
Choose a tag to compare

See #2399

Full Changelog: 0.77.3...0.77.4

Release 1.0.5

24 Jan 13:29
Compare
Choose a tag to compare

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

What's Changed

  • πŸ‘· Adjust coverage calculation if a job isn't run and prettify build.yml by @falexwolf in #2361
  • πŸ› Fix init (when the instance exists) and connect with migration for cloud sqlite instances by @Koncopd in #2373
  • βœ… Update and test replace for folder artifacts by @Koncopd in #2374
  • 🚸 No longer throw a NotebookNotSaved error in ln.finish() but wait for the user or gracefully exit by @falexwolf in #2375
  • 🚸 Enable users to re-run ln.finish() and better resolve multiple users attempting to edit the same notebook draft by @falexwolf in #2376
  • πŸ› Further fixes and tests for Artifact.replace by @Koncopd in #2377
  • 🚸 In ln.finish() enhance experience of waiting for editor flush (attempt 2) by @falexwolf in #2380
  • βœ… Test folder replacement correctly by @Koncopd in #2381

Full Changelog: 1.0.4...1.0.5

Release 1.0.4

21 Jan 17:19
Compare
Choose a tag to compare

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

What's Changed

  • 🚚 Revert Collection.description back to unlimited length TextField by @falexwolf in #2369

Full Changelog: 1.0.3...1.0.4

Release 1.0.3

21 Jan 12:07
Compare
Choose a tag to compare

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

What's Changed

  • πŸ’š Fix docs build by dropping SpatialData type annotations on central Curator class by @falexwolf in #2364
  • 🚸 In ln.track(), do not update transform description if it is None and improve logging in RStudio sessions by @falexwolf in #2365

Full Changelog: 1.0.2...1.0.3

Release 1.0.2

20 Jan 06:00
Compare
Choose a tag to compare

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

What's Changed

Full Changelog: 1.0.1...1.0.2

Release 1.0.1

18 Jan 15:11
Compare
Choose a tag to compare

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

What's Changed

  • πŸ› Block non-admin users from integrating lnschema-core by @falexwolf in #2362

Full Changelog: 1.0.0...1.0.1