Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation does not build on Rust 1.29.0 #1792

Closed
1 of 2 tasks
nabijaczleweli opened this issue Jul 19, 2018 · 6 comments
Closed
1 of 2 tasks

Documentation does not build on Rust 1.29.0 #1792

nabijaczleweli opened this issue Jul 19, 2018 · 6 comments

Comments

@nabijaczleweli
Copy link

Setup

Versions

  • Rust: rustc 1.29.0-nightly (12ed235ad 2018-07-18)
  • Diesel: both latest release (1.3.2), as well as latest master ( 765b782f7f94932cf129bc603dc5909d7155e9fe)
  • Database: N/A
  • Operating System: Windows, Linux (though probably all are affected)

Feature Flags

  • diesel: both none (default), as well as ["32-column-tables", "sqlite", "chrono", "r2d2"] (though probably all are affected)

Problem Description

When building the documentation, cargo doc produces warnings, which, due to deny(warnings), cause an error – meaning you can not build diesel docs on current nightly.

What are you trying to accomplish?

Build documentation for my project (and, transitively, diesel).

What is the expected output?

[...]
Documenting diesel v1.3.2
[...]
Documenting sudoku-backend v0.1.0
[...]
Finished release [optimized] target(s) in Xm Ys

What is the actual output?

A multitude of errors, ending with

note: lint level defined here
   --> /home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/diesel-1.3.2/src/lib.rs:131:9
    |
131 | #![deny(warnings, missing_debug_implementations, missing_copy_implementations, missing_docs)]
    |         ^^^^^^^^
    = note: #[deny(intra_doc_link_resolution_failure)] implied by #[deny(warnings)]
    = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
error: Could not document `diesel`.

Are you seeing any additional errors?

No.

Steps to reproduce

Run cargo doc on current nightly on this crate (be it directly or transitively).

Steps to fix

One could either (a) fix the documentation errors, or (b) replace, as mentioned previously, src/lib.rs#L131. with

#![cfg_attr(feature = "dox", deny(warnings, missing_debug_implementations, missing_copy_implementations, missing_docs))]

Checklist

  • I have already looked over the issue tracker for similar issues.
  • This issue can be reproduced on Rust's stable channel. (Your issue will be closed if this is not the case) — however, it will be too late to fix this once current nightly hits stable (I am not submitting this with a light heart, having not met the checkbox, but close me if you've got to).
@kennytm
Copy link

kennytm commented Jul 19, 2018

A dependency currently breaks downstream crates because rustdoc has not stabilized --cap-lints yet, which prevents Cargo from utilizing it. Stabilization is underway (rust-lang/rust#52354) but it will likely take several days.

cc rust-lang/rust#51468.

@sgrif
Copy link
Member

sgrif commented Jul 25, 2018

Please re-open if this is still an issue once it hits beta.

@sgrif sgrif closed this as completed Jul 25, 2018
@jesskfullwood
Copy link

I assume this is the reason that the 'latest release' docs (linked in the README) on docs.rs are broken - https://docs.rs/diesel/1.3.2/diesel/ - because as I recall docs.rs uses nightly for its builds

@sgrif
Copy link
Member

sgrif commented Sep 6, 2018

Actually, it's because the nightly that docs.rs uses is super old and has bugs that have since been fixed.

@theduke
Copy link
Contributor

theduke commented Oct 10, 2018

FYI, building with current nightly fails again at the moment for me.

Enabled features: ["sqlite", "r2d2", "chrono"].

Error:

error[E0275]: overflow evaluating the requirement `<&_ as insertable::Insertable<_>>::Values`
  |                                                                         
  = help: consider adding a `#![recursion_limit="512"]` attribute to your crate
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&_, &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&(_, _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&(_, _, _), &_, &_)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `&((_, _, _), _, _)`
  = note: required because of the requirements on the impl of `insertable::Insertable<_>` for `(&((_, _, _), _, _), &_, &_)`
.....
.......

@weiznich
Copy link
Member

@theduke That seems to be an issue with rustdoc. I've already reported that against rustc, see rust-lang/rust#54524.
Unfortunately I've no clue what exactly is causing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants