You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 45e43e3
Browse filesBrowse the repository at this point in the historyBrowse files
Fixes surfaced by large-scale crawls (e.g. ENA umbrella projects like
PRJNA9506 that fan out to thousands of child projects):
- Discovery is run-driven, so a project/study with no runs discovered
nothing — not even itself — and persisted an empty database. Discovery.withRoot
seeds the root into the bucket its prefix implies (PRJ... -> BioProject,
SRP/ERP/DRP... -> Study) so the root record always persists.
- Add a Started crawl event emitted before discovery, so the first log
line identifies the root accession instead of only learning it at 'done'.
- Make Sql.withTransaction reentrant (a nested call joins the active
transaction rather than throwing — SQLite has no nested transactions) and
wrap the crawler's whole insert pass in one transaction, collapsing one
commit per record into a single commit. disableForeignKeys stays outside it.
Adds regression tests for root seeding, childless-project persistence,
Started-first ordering, and the reentrant-transaction contract.
Copy file name to clipboardExpand all lines: RELEASE_NOTES.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,11 @@
1
+
### 0.2.1 (2026-07-09)
2
+
3
+
Crawler fixes surfaced by large-scale crawls (incl. ENA umbrella projects such as `PRJNA9506`, which fans out to thousands of child projects).
4
+
5
+
-**BioFSharp.INSDC.Crawler** — a project/study with no sequencing runs now persists its own record: discovery is run-driven, so a childless root previously discovered nothing (not even itself). `Discovery.withRoot` seeds the root into the bucket its accession prefix implies (`PRJ…` → BioProject, `SRP`/`ERP`/`DRP…` → Study).
6
+
-**BioFSharp.INSDC.Crawler** — new `Started` crawl event, emitted before discovery, so the first log line identifies the root accession rather than only learning it at `done —`.
7
+
-**BioFSharp.INSDC.SQLite / Crawler** — bulk insert: `Sql.withTransaction` is now reentrant (a nested call joins the active transaction rather than throwing, since SQLite has no nested transactions), letting the crawler persist an entire crawl in a single transaction instead of one commit per record — the difference between a trickle and a bulk load on crawls of hundreds of thousands of runs.
8
+
1
9
### 0.2.0 (2026-07-09)
2
10
3
11
Expands the suite from two packages to five: `BioFSharp.FileFormats.INSDC` and
0 commit comments