Skip to content

v17.0.0

Choose a tag to compare

@nabijaczleweli nabijaczleweli released this 22 Jul 21:47
v17.0.0
5fdc90c
Stole her heart 'cause my cheeks thick as thieves

BREAKING:
  * ops::get_index_url() -> (String, ...) => (Cow<'static, str>, ...)
    (4283c46bd78c08cd421c9955800694b2a059557e)
  * RegistryTree::Sparse(()) => ::Sparse
    (a501aa7bbe532b72ff3153d493fa8797050aa34a)
  * ops::update_index() takes a sparse registry auth token before the log writer
    (57b56a9aa7d201f2f9797d2246d8d05fe091c4c3)
    (5fdc90cf0ce35fa296035e71237e9c0bc9517993)

New:
  * ops::CargoConfig::sparse_registries: SparseRegistryConfig
  * ops::SparseRegistryConfig
  * ops::SparseRegistryAuthProvider
  * ops::CargoConfigEnvironmentNormalisedString
  * CargoConfig::load() reads
    + ~/.cargo/credentials[.toml] registry.token
                                  registries.*.token
    + ~/.cargo/config[.toml] registry.token
                             registries.*.token
                             registry.global-credential-providers
                             registry.credential-provider
                             credential-alias.*
    + $CARGO_REGISTRY_TOKEN
      $CARGO_REGISTRIES_*_TOKEN
      $CARGO_REGISTRY_CREDENTIAL_PROVIDER
      $CARGO_CREDENTIAL_ALIAS_*
  * ops::SparseRegistryAuthProviderBundle
  * ops::auth_providers() -> SparseRegistryAuthProviderBundle
    to into ops::update_index()
  * ops::SparseRegistryAuthProviderBundle::run()
    will follow the new Cargo auth token provider ladder:
      default cargo:token-but-doesn't-read-environment
      cargo:token
      cargo:wincred                 (Win32)
      cargo:macos-keychain          (Apple)
      cargo:libsecret               (non-Apple UNIX, dlopen("libsecret-1.so.0"))
      cargo:token-from-stdout
      unprefixed provider protocol  ("cache", "expiration",
                                     "operation_independent" ignored;
                                     "headers" not provided)
    and yield the first valid token
    (57b56a9aa7d201f2f9797d2246d8d05fe091c4c3)
    (38acd65da40e17c78f802d637781460b5b968250)
    (8796ea160409bac286d8333f925b32e958cf6cac)
    (66553abbfa2cbd29f65435265010695169932472)
    (63f60589b34cf03913a4eb419761b2e2982acbb4)
    (e9d1c8fd99a3a31470126a4cdad29a9f27d7dfc2)
    (a429d06ac971136181a63ea52ab1bde012e0b43d)
    (5fdc90cf0ce35fa296035e71237e9c0bc9517993)
    (#300) (#301) (@punkeel)
  * @punkeel in authors list
    (28db0b73f9df579584a78ddf64048e8f0cc57656)

Fixed:
  * Needless path.exists() -> path.open() => path.open() { ok | error } TOCTTOU
  * If a regular file is found in place of a git repository's clone directory,
    remove it instead of failing to remove it as a directory
    (1b8f6c418b260f9f7cae79b2e411cb68f9a6b156)
    (81c4a625363c8e749b7e92e0168c92dacc173abb)

Internal:
  * More bitrot cleanup
    (c97f337e0a91ad813d21e4bb347d2f6657d42f83)
    (a22a042fe60b114fc13343ddc0fed5d68294c7c5)
  * json_deserializer => serde_json
    (73070a35e6f14a2c7887f4acc3584d7cdd2ff9a9)