v5.0.0
What's Changed
This release moves to an new file caching model for OpenNeuro that should allow API clients to load full dataset trees more efficiently. Worker trees are now iterated with pygit2 replacing process calls to git with improved performance. We've switched to using the newer DataCite API and populating additional metadata in OpenNeuro minted DOIs, existing DOIs will be updated in a future release.
Several breaking GraphQL API changes:
- The DatasetFiles key field is removed and the id is used for loading child trees.
- The downloadFiles field is no longer available, use files(recursive: true) to retrieve the equivalent for a given snapshot or draft.
- A new API for advancedDatasetSearch which simplifies the ElasticSearch DSL to an OpenNeuro specific search model allowing for future search improvements without breaking API changes.
Changelog
- feat(server): Change age type from Int to Float in GraphQL schema by @effigies in #3857
- chore(deps): Bump cryptography from 46.0.5 to 46.0.6 in /services/datalad by @dependabot[bot] in #3847
- chore(deps): Bump pygments from 2.19.1 to 2.20.0 in /services/datalad by @dependabot[bot] in #3848
- fix(worker): Use git-annex x-amz-tagging to set access tags by @nellh in #3856
- fix(worker): Presign private URLs only by @nellh in #3858
- fix(app): Handle error states for generating download scripts by @nellh in #3855
- chore(worker): Remove redundant enableremote call with broken argument by @nellh in #3863
- chore(deps): Bump aiohttp from 3.13.3 to 3.13.4 in /services/datalad by @dependabot[bot] in #3860
- chore(deps-dev): Bump vite from 7.1.11 to 7.3.2 by @dependabot[bot] in #3866
- refactor(graphql)!: Unified Redis caching for file trees by @nellh in #3865
- fix(worker): Prevent create_dataset crash when git annex creds directory hasn't been created by @nellh in #3869
- refactor(worker): Use pygit2 and support batching for tree requests by @nellh in #3868
- refactor(server): Revert to v2 S3 signatures and use hash-wasm, batch presigned Redis requests by @nellh in #3871
- deps(server): Migrate @msgpack to msgpackr by @nellh in #3872
- refactor(worker): Implement get_repo_urls with pygit2 by @nellh in #3873
- chore(deps-dev): Bump vite from 7.1.7 to 7.3.2 by @dependabot[bot] in #3867
- refactor(worker): Simpify _read_tree_pygit2 using one entry and allow all files by @nellh in #3874
- fix(server): Misc file tree resolver improvements by @nellh in #3876
- chore(deps): Bump cryptography from 46.0.6 to 46.0.7 in /services/datalad by @dependabot[bot] in #3877
- chore(deps): Bump the datalad group across 1 directory with 9 updates by @dependabot[bot] in #3853
- fix(app): Replace residual Snapshot.downloadFiles by @effigies in #3880
- fix: Inconsistencies and duplications, clearing way for graphql code-generation by @effigies in #3881
- fix(server): Improve reliability of enqueue for data retention checks by @nellh in #3883
- fix(server): Increase data retention checks to 1 per second by @nellh in #3884
- refactor(server): Rework DOI minting to use DataCite JSON schema and endpoint by @nellh in #3885
- chore(deps): Bump follow-redirects from 1.15.6 to 1.16.0 by @dependabot[bot] in #3886
- chore(deps-dev): Bump pytest from 9.0.2 to 9.0.3 in /services/datalad by @dependabot[bot] in #3887
- refactor(graphql)!: Migrate to custom DatasetSearchInput replacing ElasticSearch DSL on the client by @nellh in #3888
- chore(deps): Bump @apollo/server from 4.13.0 to 5.5.0 by @dependabot[bot] in #3845
- fix(app): Allow admin users to request fsck at any time by @nellh in #3891
- feat: Add toggle for holding automated draft deletion by @nellh in #3892
- fix(app): Set canonical URL for dataset pages by @nellh in #3894
Full Changelog: v4.47.7...v5.0.0