Skip to content

Release 0.12.0 - #107

Merged
nsheff merged 32 commits into
masterfrom
dev
Aug 7, 2026
Merged

Release 0.12.0#107
nsheff merged 32 commits into
masterfrom
dev

Conversation

@nsheff

@nsheff nsheff commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Release 0.12.0 from dev.

What's in this release

seqcolapi moved into the refget package. The API server code now lives at refget/seqcolapi/ and ships in the wheel, so you can run it straight from a pip install (uvicorn refget.seqcolapi.main:store_app). The old top-level seqcolapi/ directory remains as a compatibility shim, so existing deployments keep working.

New app factory. refget.seqcolapi.create_seqcol_app() builds a complete, mountable seqcol API app from a RefgetStore. The refget store serve command and the Docker deployments now use this same factory, so they all serve identical routes (including /service-info).

Lighter install. The base pip install refget no longer pulls in database or web-server packages. Optional extras cover the rest: refget[seqcolapi] for the store-backed web service (fastapi + uvicorn only), refget[db] for the PostgreSQL layer, and refget[seqcolapi-db] for both. Missing extras now produce a clear error telling you what to install.

Store CLI improvements. store add reports what each run actually imported (new collections, sequences written, sequences deduplicated), tracking the renamed gtars stats keys.

Frontend fixes. Collection aliases shown in the store overview, fixed blank Name column in the collections explorer, plus dependency updates (react 19.2.8, react-router-dom 7.18.2, eslint 10.8.0).

Version bumped to 0.12.0.

nsheff and others added 30 commits July 25, 2026 17:44
fetchAliases returns { rows, partial, totalSize }, but Explorer treated
the return value as an array and called .forEach on it directly. That
threw a TypeError on the first namespace, which the surrounding bare
catch swallowed. Since setAliasMap() runs inside that try after the
loop, it never executed, so aliasMap stayed empty and every collection
rendered "-" in the Name column.

Read aliases.rows instead, matching how ExplorerAliases consumes the
same value.
gtars renamed the two RAM-residency fields on StoreStats
(n_sequences_loaded -> n_sequences_in_memory, n_collections_loaded ->
n_collections_in_memory) and now returns an ImportReport from
add_sequence_collections_from_fastas instead of a bare list. The old
names read as per-run ingest counters but were nothing of the kind: a
build that ingested 74 collections reported `n_sequences_loaded: 0`,
which looked like silent data loss.

Update the bulk `store add` path to read report.collections, and emit
the real per-run counters — n_sequences_written, n_sequences_deduped,
n_collections_new — alongside the existing results/count. These are
what a build report should quote; the `store stats` numbers describe
current RAM residency and say nothing about what a run added.

Fix the `store stats` docstring, which listed only three of the five
keys and showed an example output missing one of them.

Requires gtars with ImportReport (unreleased).
Collections have no name -- SequenceCollectionMetadata carries only
digests and n_sequences -- so a "Name" column asserted a property that
does not exist. Rename it to "Alias", which is what the data actually
is and what the API, store layout, and aliases page already call it.

Extract the alias lookup into services/aliases.js and reuse it in
StoreOverview, which previously showed bare digests with no label at
all. Where a collection carries aliases in several namespaces, prefer
one by namespace instead of concatenating them: vgp, for example, has
five, which rendered as an unreadable comma-joined cell. The priority
order mirrors the probe list in vrs/vrsWorker.js. Remaining aliases
stay available as a title tooltip.

Namespaces are pure convention -- gtars treats one as the opaque stem
of an aliases/collections/*.tsv filename -- so the ordering is a UI
preference, not a spec.
add_sequence_collections_from_fastas returns an ImportReport rather than a list
of (metadata, was_new) pairs, and PyImportReport defines neither __iter__ nor
__getitem__, so iterating it and calling len() on it both raised TypeError.

Read .collections for the per-file results, and surface the report's per-run
ingest counters in the JSON output. Also update the stats docstring, which still
advertised n_collections_loaded: that key is now n_collections_in_memory, and
the docstring now says what those gauges actually measure -- RAM residency at
the moment stats() is called, typically 0 for a disk-backed store -- so they
stop being read as ingest counts.
…#106)

Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 7.18.0 to 7.18.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.2/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.2/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-version: 7.18.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom) from 19.2.7 to 19.2.8.
- [Release notes](https://github.com/react/react/releases)
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/react/react/commits/v19.2.8/packages/react-dom)

---
updated-dependencies:
- dependency-name: react-dom
  dependency-version: 19.2.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [globals](https://github.com/sindresorhus/globals) from 17.7.0 to 17.8.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v17.7.0...v17.8.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 17.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.8.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v10.5.0...v10.8.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@nsheff
nsheff merged commit 9f2e35d into master Aug 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant