1.0.0.b2 (second 1.0 preview release)
Pre-release💫 Enhancements and new features
-
CredentialManager
-
The Credential Manager gained a new helper,
obtain()
, that supports a credential selection by name/ID, falls back to querying with a set of properties, and would finally resort to an interact
ive credential query from the user. (#216 by @mih) -
All optional arguments of the CredentialManager are now keyword-argument-only (#230 by @mih)
-
Users no longer need to provide type hints for legacy credentials in "provider" configurations (#247 by @mih)
-
Credential reporting supports a
cred_type
annotation (#257 by @mih) -
Credential errors for Github-like remotes were improved to hint users how to update or set new credentials (#235 by @mih)
-
-
UrlOperations
-
Parameter validation
-
A new
validate_defaults
parameter ofEnsureCommandParameterization
allows opt-in parameter validation, which causes processing of any specified parameter's default. (#227 by @mih) -
A new base class
ConstraintError
can communicate parameter validation errors and can associate constraint violations with a particular context.CommandParametrizationError
uses it to communicate violations for a full command parameterization at once and is used in an improvedEnsureCommandParametrization
constraint. Callers can now also decide whether to perform an exhaustive parameter validation, or fail on first error. (#234 by @mih) -
A new
ConstraintWithPassthrough
constraint exposesEnsureParameterConstraint
's pass-through feature (#244 by @mih) -
EnsureCommandParameterization
learned atailor_for_dataset()
parameter that can be used to identify which parameters' constraints should be tailored for which dataset. This allows tailoring constraints for particular datasets (#260 by @mih) -
EnsurePath
can be tailored to dataset instances to resolve paths against a given Dataset (#271 by @mih) -
The
EnsureDataset
constraint learned an optional check for a valid dataset ID (#279 by @adswa) -
A
WithDescription
meta constraints paves the way for custom docs for parameters: If given, it replaces the original parameter documentation, and can be used to tailor descriptions for specific use cases. (#294 by @mih) -
Parameter violations gained structured error reporting and customized rendering of parameter violations (#306 by @mih)
-
EnsureGeneratorFromFileLike
became more suitable for batch mode use by learning to yield instead of raise internal exceptions, if configured by the caller (#278 by @mih)
-
🐛 Bug Fixes
-
Previously, the last used credential matching a
realm
was used unconditionally. Now, credentials without secrets are excluded. (#248 by @mih) -
AND
andOR
compounds for Constraints do not modify Constraints in place anymore, but return a new instance. (#292 by @mih) -
Even though the
EnsureDataset
constraint returnsDatasetParameter
objects,_execute_command
that would patch up DataLad commands wasn't able to work with them (#269 by @adswa)
🪓 Deprecations and removals
-
The URL operation
sniff
was renamed tostat
. (#231 by @adswa) -
serve_path_via_webdav()
that came with 0.2 was deprecated in favor of thewebdav_server
fixture (#301 by @mih)
📝 Documentation
-
A dedicated Developer Guide section of the docs was introduced (#304 by @adswa)
-
The README mentions the
uncurl
special remote, and the documentation now provide installation information
🏠 Internal
-
Misc. code reorganization:
-
The DataLad runner performance patch and all patches to clone
functionality were removed as they are included in datalad-0.18.1; The dependency was adjusted accordingly. (#218 by @mih) -
Compound constraints got a comprehensive
__repr__
to improve debugging (#276 by @mih)
🛡 Tests
-
Automatic CI builds were disabled for changes constrained to the following files and directories:
.github/
,CHANGELOG.md
,CITATION.cff
,CONTRIBUTORS
,LICENSE
,Makefile
,README.md
,readthedocs.yml
-
Coverage reports for the uncurl special remote (#220 by @mih)
-
GitHub actions use the
datalad-installer
to install git-annex (#239 by @mih) -
A bug in DataLad's test setup causes configuration managers to leak across datasets (datalad/datalad#7297). Next implemented test isolation for keyring and config as a fix (#263 by @mih)
-
A number of new pytest fixtures were introduced:
-
100% coverage for constraints (#259)