Skip to content

1.0.0.b2 (second 1.0 preview release)

Pre-release
Pre-release
Compare
Choose a tag to compare
@mih mih released this 17 Mar 17:14
· 858 commits to main since this release
1.0.0b2
155e6f4

💫 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

    • The URL handler can now load configurations from config files (#222 by @mih)

    • Improved messaging within URLOperationsRemoteError (#308 by @mih)

  • Parameter validation

    • A new validate_defaults parameter of EnsureCommandParameterization 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 improved EnsureCommandParametrization 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 exposes EnsureParameterConstraint's pass-through feature (#244 by @mih)

    • EnsureCommandParameterization learned a tailor_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 and OR compounds for Constraints do not modify Constraints in place anymore, but return a new instance. (#292 by @mih)

  • Even though the EnsureDataset constraint returns DatasetParameter 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 to stat. (#231 by @adswa)

  • serve_path_via_webdav() that came with 0.2 was deprecated in favor of the webdav_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

  • CONTRIBUTING.md was updated on patching (#262 by @mih)

🏠 Internal

  • Package dependencies were made explicit (#212 by @mih)
    229

  • Misc. code reorganization:

    • The CredentialManager was elevated to a toplevel module (#229 by @mih)

    • Dataset-lookup behavior of the credentials command became identical to downlad (#256 by @mih)

  • 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)

  • discontinue legacy code (#300 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)

  • Tests will not fail if coverage uploads fail (#241 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)