This is the first major release update since the initial release, mainly due to breaking changes in the command line interface.
Most of the changes were included in datalad#309, summarised as:
- update API to entrypoint per command:
create
,add
,validate
,serve
,get
,set
,remove
,translate
,workflow
- introduce
datalad-next
dependency, at first for constraint system but in future for whatever functionality is useful - refactor most of the code related to the main commands
Some of the important changes to take note of:
- Validation is now done according to the schema of a specific catalog (now located at
path-to-catalog/schema/*
), where previously validation was always done according to the latest schema of the installed package version (which is now the fallback). - Metadata can be passed to any catalog command that takes it as in argument, in different formats: json lines from STDIN, JSON-serialized string, and a file with JSON lines.
- pytest fixtures are now located in
tests/fixtures.py
and exposed to all tests catalog-get|set
provides an extensible set of commands for configuring a catalog and reporting its properties- the handling of config files is refactored:
- The main changes relate to how/when a config file is provided.
- Previously, config files were specified during instantiation of the WebCatalog class, and a whole lot of obscure code was necessary to determine how this config applies to the catalog or dataset level.
- The refactored code receives the config file via the Create() and Add() commands or via the WebCatalog.create() or Node.add_attributes() python methods.
- Now, WebCatalog can be instantiated with location alone (no 'action' necessary anymore, and no config_file)
- Now, config is set on WebCatalog or Node instances after/during running their respective create() methods and not during instantiation
- Translation functionality is refactored, and requires updated to existing translators:
- With the new catalog argument, translation occurs to the specific schema version of the catalog (if supported by an available translator); if the catalog argument is not supplied, the expected schema version is the latest supported by the package installation.
- The translator matching process is streamlined by keeping track of previously matched and instantiated translators
- Functionality to get the supported schema version, source name, and source version have been moved to the translator base class in order to support the abovementioned changes. This means existing and new translators will have to override these functions.
-
Something is now better than before, e.g.
test
. #pr (by @jsheunis) -
ENH: add a "request access" button for a dataset. PR #235 (by @jsheunis)
-
NF: Adds metadata translation functionality in dedicated class. PR #246 (by @jsheunis)
-
ENH: don't install jq dependency on windows. PR #248 (by @jsheunis)
-
ENH: refactoring config, extractors_used. PR #237 (by @jsheunis)
-
ENH+BUG: Improving translators and catalog generation. PR #269 (by @jsheunis)
-
ENH+NF: add javascript customization options via config. PR #283 (by @jsheunis)
-
UX: improve user experience when browsing. PR #289 (by @jsheunis)
-
Bids translator - fix name & license reporting. PR #286 (by @mslw)
-
RF: move from single entrypoint API to entrypoint per command. PR #309 (by @jsheunis)
- BUG/ENH/UX: lots of JS tweaks. PR #299 (by @jsheunis)
- [BF] Small fixes to latest cli commands. PR #333 (by @jsheunis)
- Fix datacite_gin publication doi translation. PR #325 (by @mslw)
- DOC: update pipeline docs to agree with latest version of meta-conduct use. PR #258 (by @jsheunis)
- ENH: adds acknowledgements to readme and docs. PR #308 (by @jsheunis)
- Switch MacOS Appveyor builds to Monterey. PR #242 (by @mslw)
- codespell: typo fixes, config, workflow. PR #257 (by @yarikoptic)
- Add a readthedocs configuration file. PR #336 (by @jsheunis)
- depend on
datalad-next 1.0.0b3
. PR #336 (by @jsheunis)
- Major refactoring of tests in relation to PR #309 (by @jsheunis)
- Update datalad.tests.utils imports. PR #320 (by @jwodder)
- John T Wodder (@jwodder)
- Michał Szczepanik (@jsheunis)
- Stephan Heunis (@jsheunis)
- Yaroslav Halchenko (@yarikoptic)
- Start using a
maint
branch for releases
- Don't install
jq
dependency on Windows, don't collect and run workflow tests on windows. Issue #256, Commit 25dd1e7 (by @jsheunis)
- Stephan Heunis (@jsheunis)
- UX: Make dataset page keyword search case insensitive. PR #202 (by @jsheunis)
- UX: Make subdataset tags clickable. PR #202 (by @jsheunis)
- UX: Improve handling and display of unavailable subdatasets in dataset page file browser. PR #205 (by @jsheunis)
- UX: Display 'View on GIN' button for gin-hosted datasets, format ssh URLs as https to allow in-browser linking. PR #228 (by @jsheunis)
- Schema: Add icon field to additional display property in dataset schema, which allows users to specify an icon that they want to be displayed in the additional tab. PR #207 (by @jsheunis)
- Schema: Render a human-readable json schema definition + resolve local schemas via
$ref
and$id
properties (see: https://datalad.github.io/datalad-catalog/display_schema.html). PR #216 + PR #217 (by @jsheunis) - Schema: Automatically render form from schema (currently disabled). PR #225 (by @jsheunis)
- Schema: Add titles to all object properties in schemas. PR #231 (by @jsheunis)
- Adds simplistic demo for metadata entry (see: https://datalad.github.io/datalad-catalog/metadata-entry.html). PR #210 (by @jsheunis)
- Include info on workflow functionality in README. PR #202 (by @jsheunis)
- Fix README typo. PR #209 (by @Remi-Gau)
- Add information about the human-readable jsonschema of the catalog to docs. PR #218 (by @jsheunis)
- Update README badges. PR #227 (by @jsheunis)
- Remove unused pages from docs. PR #227 (by @jsheunis, @loj)
- Enable CI on appveyor for pull requests and pushes to the
main
branch, and re-enable crippled filesystem test workflow with gh-actions. PR #213 + PR #223 (by @jsheunis, @yarikoptic, @mih)
- Substantial refactoring of html and javascript code of the Vue application, splitting up distinct JS functionality into separate files, and moving Vue component templates into separate files with async loading. PR #215 (by @jsheunis)
- Laura Waite (@loj)
- Michael Hanke (@mih)
- Remi Gau (@Remi-Gau)
- Stephan Heunis (@jsheunis)
- Yaroslav Halchenko (@yarikoptic)
- Adds test data to package_data to ensure availability when installing from pip with extras #199 (by @jsheunis)
- Stephan Heunis (@jsheunis)
- Adds automated workflow for PyPI release. #197 (by @jsheunis)
- Adds CHANGELOG. #197 (by @jsheunis)
- Updates appveyor setup to run tests with
pytest
#197 (by @jsheunis)
- Stephan Heunis (@jsheunis)
- First release of the
datalad-catalog
package on PyPI
- Adina Wagner (@adswa)
- Alex Waite (@aqw)
- Benjamin Poldrack (@bpoldrack)
- Christian Mönch (@christian-monch)
- Julian Kosciessa (@jkosciessa)
- Laura Waite (@loj)
- Leonardo Muller-Rodriguez (@Manukapp)
- Michael Hanke (@mih)
- Michał Szczepanik (@mslw)
- Stephan Heunis (@jsheunis)
- Yaroslav Halchenko (@yarikoptic)