Allow git+version dependency to be published.#7237
Conversation
|
r? @nrc (rust_highfive has picked a reviewer for you, use r? to override) |
|
Sounds reasonable to me! This is an expansion of stable behavior, so I'd like to check in with other folks as well @rfcbot fcp merge |
|
Team member @alexcrichton has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
|
☔ The latest upstream changes (presumably #7239) made this pull request unmergeable. Please resolve the merge conflicts. |
da8aef4 to
df639b9
Compare
|
Once this is merged, I would be able to publish MesaLink on crates.io. This would benefit alexcrichton/curl-rust#280, too. |
|
🔔 This is now entering its final comment period, as per the review above. 🔔 |
|
Is this going to be merged soon? |
|
@bors r=alexcrichton |
|
📌 Commit df639b9a563d49d8036b764f8211c662eaa9fb70 has been approved by |
|
⌛ Testing commit df639b9a563d49d8036b764f8211c662eaa9fb70 with merge d565c1e0340aa70f12c212d16826e60233bf72a5... |
|
💔 Test failed - checks-azure |
df639b9 to
d682439
Compare
|
@bors r=alexcrichton |
|
📌 Commit d682439 has been approved by |
Allow git+version dependency to be published. This allows you to publish a dependency that specifies both `git` and `version`. The `git` value will be stripped out, just like a `path` dependency. My original intent was to improve the error message, which was very confusing. I figured I might as well make `git` behave the same as `path`. I can change this PR to just reword the error instead of changing behavior if the new behavior isn't desired. Closes #6738
|
☀️ Test successful - checks-azure |
|
I am using the latest version of cargo error: all dependencies must have a version specified when publishing.
dependency `shell` does not specify a version
Note: The published dependency will use the version from crates.io,
the `git` specification will be removed from the dependency declaration.Is there an additional option for cargo to publish with git repositories? |
Pkgsrc changes:
* Remove patch which no longer applies (but what about RPATH?)
* Adapt a few patches to changed files upstream.
Upstream changes:
Version 1.39.0 (2019-11-07)
===========================
Language
--------
- [You can now create `async` functions and blocks with `async fn`,
`async move {}`, and `async {}` respectively, and you can now call
`.await` on async expressions.][63209]
- [You can now use certain attributes on function, closure, and function
pointer parameters.][64010] These attributes include `cfg`, `cfg_attr`,
`allow`, `warn`, `deny`, `forbid` as well as inert helper attributes used
by procedural macro attributes applied to items. e.g.
```rust
fn len(
#[cfg(windows)] slice: &[u16],
#[cfg(not(windows))] slice: &[u8],
) -> usize {
slice.len()
}
```
- [You can now take shared references to bind-by-move patterns in the
`if` guards of `match` arms.][63118] e.g.
```rust
fn main() {
let array: Box<[u8; 4]> = Box::new([1, 2, 3, 4]);
match array {
nums
// ---- `nums` is bound by move.
if nums.iter().sum::<u8>() == 10
// ^------ `.iter()` implicitly takes a reference to `nums`.
=> {
drop(nums);
// ----------- Legal as `nums` was bound by move and so we have ownership.
}
_ => unreachable!(),
}
}
```
Compiler
--------
- [Added tier 3\* support for the `i686-unknown-uefi` target.][64334]
- [Added tier 3 support for the `sparc64-unknown-openbsd` target.][63595]
- [rustc will now trim code snippets in diagnostics to fit in your terminal.]
[63402] **Note** Cargo currently doesn't use this feature. Refer to
[cargo#7315][cargo/7315] to track this feature's progress.
- [You can now pass `--show-output` argument to test binaries to print the
output of successful tests.][62600]
\* Refer to Rust's [platform support page][forge-platform-support] for more
information on Rust's tiered platform support.
Libraries
---------
- [`Vec::new` and `String::new` are now `const` functions.][64028]
- [`LinkedList::new` is now a `const` function.][63684]
- [`str::len`, `[T]::len` and `str::as_bytes` are now `const` functions.][63770]
- [The `abs`, `wrapping_abs`, and `overflowing_abs` numeric functions are
now `const`.][63786]
Stabilized APIs
---------------
- [`Pin::into_inner`]
- [`Instant::checked_duration_since`]
- [`Instant::saturating_duration_since`]
Cargo
-----
- [You can now publish git dependencies if supplied with a `version`.]
[cargo/7237]
- [The `--all` flag has been renamed to `--workspace`.][cargo/7241] Using
`--all` is now deprecated.
Misc
----
- [You can now pass `-Clinker` to rustdoc to control the linker used
for compiling doctests.][63834]
Compatibility Notes
-------------------
- [Code that was previously accepted by the old borrow checker, but rejected by
the NLL borrow checker is now a hard error in Rust 2018.][63565] This was
previously a warning, and will also become a hard error in the Rust 2015
edition in the 1.40.0 release.
- [`rustdoc` now requires `rustc` to be installed and in the same directory to
run tests.][63827] This should improve performance when running a large
amount of doctests.
- [The `try!` macro will now issue a deprecation warning.][62672] It is
recommended to use the `?` operator instead.
- [`asinh(-0.0)` now correctly returns `-0.0`.][63698] Previously this
returned `0.0`.
[62600]: rust-lang/rust#62600
[62672]: rust-lang/rust#62672
[63118]: rust-lang/rust#63118
[63209]: rust-lang/rust#63209
[63402]: rust-lang/rust#63402
[63565]: rust-lang/rust#63565
[63595]: rust-lang/rust#63595
[63684]: rust-lang/rust#63684
[63698]: rust-lang/rust#63698
[63770]: rust-lang/rust#63770
[63786]: rust-lang/rust#63786
[63827]: rust-lang/rust#63827
[63834]: rust-lang/rust#63834
[63927]: rust-lang/rust#63927
[63933]: rust-lang/rust#63933
[63934]: rust-lang/rust#63934
[63938]: rust-lang/rust#63938
[63940]: rust-lang/rust#63940
[63941]: rust-lang/rust#63941
[63945]: rust-lang/rust#63945
[64010]: rust-lang/rust#64010
[64028]: rust-lang/rust#64028
[64334]: rust-lang/rust#64334
[cargo/7237]: rust-lang/cargo#7237
[cargo/7241]: rust-lang/cargo#7241
[cargo/7315]: rust-lang/cargo#7315
[`Pin::into_inner`]: https://doc.rust-lang.org/std/pin/struct.Pin.html#method.into_inner
[`Instant::checked_duration_since`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.checked_duration_since
[`Instant::saturating_duration_since`]: https://doc.rust-lang.org/std/time/struct.Instant.html#method.saturating_duration_since
When running "cargo publish --dry-run" an error is reported due to the lack of the "bindings" crate in the package registry. error: all dependencies must have a version specified when publishing. dependency `bindings` does not specify a version Note: The published dependency will use the version from crates.io, the `path` specification will be removed from the dependency declaration. Refer to: rust-lang/cargo#7237
This allows you to publish a dependency that specifies both
gitandversion. Thegitvalue will be stripped out, just like apathdependency.My original intent was to improve the error message, which was very confusing. I figured I might as well make
gitbehave the same aspath. I can change this PR to just reword the error instead of changing behavior if the new behavior isn't desired.Closes #6738