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

Remove Docopt hack to avoid silent breaking change #21

Closed
epage opened this issue Jan 1, 2018 · 8 comments
Closed

Remove Docopt hack to avoid silent breaking change #21

epage opened this issue Jan 1, 2018 · 8 comments

Comments

@epage
Copy link

epage commented Jan 1, 2018

Travis must have dumped my caches because it tried to rebuild and failed with 0.0.6.

I then went to install 0.0.7 but it failed in a similar manner:

error[E0277]: the trait bound `for<'de> Flags: serde::Deserialize<'de>` is not satisfied
   --> /home/epage/.cargo/registry/src/github.com-1ecc6299db9ec823/cargo-0.22.0/src/cargo/lib.rs:123:24
    |
123 |     let flags = docopt.deserialize().map_err(|e| {
    |                        ^^^^^^^^^^^ the trait `for<'de> serde::Deserialize<'de>` is not implemented for `Flags`
    |
    = help: consider adding a `where for<'de> Flags: serde::Deserialize<'de>` bound
    = note: required because of the requirements on the impl of `serde::de::DeserializeOwned` for `Flags`

error: aborting due to previous error

error: failed to compile `cargo-travis v0.0.7`, intermediate artifacts can be found at `/tmp/cargo-install.IOT9kQ0LNqB9`

For versions used:

   Updating registry `https:/rust-
Downloading cargo-travis v0.0.7               
 Installing cargo-travis v0.0.7               
Downloading serde v1.0.27                     
Downloading log v0.3.9                        
Downloading serde_derive v1.0.27              
Downloading cargo v0.22.0                     
Downloading regex v0.2.5                      
Downloading log v0.4.1                        
Downloading regex-syntax v0.4.2               
Downloading serde_derive_internals v0.19.0    
Downloading libgit2-sys v0.6.18               
Downloading jobserver v0.1.8                  
Downloading git2 v0.6.10                      
Downloading num_cpus v1.8.0                   
Downloading tar v0.4.14                       
Downloading serde_json v1.0.9                 
Downloading docopt v0.8.2                     
Downloading crates-io v0.11.0                 
Downloading home v0.3.0                       
Downloading cmake v0.1.29                     
Downloading openssl v0.9.23                   
Downloading openssl-sys v0.9.23               
Downloading openssl-probe v0.1.2              
Downloading foreign-types v0.3.2              
Downloading foreign-types-shared v0.1.1       
  Compiling semver-parser v0.7.0              
  Compiling termcolor v0.3.3                  
  Compiling percent-encoding v1.0.1           
  Compiling void v1.0.2                       
  Compiling openssl-probe v0.1.2              
  Compiling home v0.3.0                       
  Compiling bitflags v0.9.1                   
  Compiling scoped-tls v0.1.0                 
  Compiling lazy_static v1.0.0                
  Compiling quote v0.3.15                     
  Compiling lazy_static v0.2.11               
  Compiling pkg-config v0.3.9                 
  Compiling matches v0.1.6                    
  Compiling unicode-xid v0.0.4                
  Compiling openssl v0.9.23                   
  Compiling same-file v0.1.3                  
  Compiling utf8-ranges v1.0.0                
  Compiling dtoa v0.4.2                       
  Compiling regex-syntax v0.4.2               
  Compiling libc v0.2.34                      
  Compiling shell-escape v0.1.3               
  Compiling crossbeam v0.2.10                 
  Compiling glob v0.2.11                      
  Compiling serde v1.0.27                     
  Compiling fnv v1.0.6                        
  Compiling hex v0.2.0                        
  Compiling strsim v0.6.0                     
  Compiling cfg-if v0.1.2                     
  Compiling rustc-demangle v0.1.5             
  Compiling num-traits v0.1.41                
  Compiling cc v1.0.3                         
  Compiling foreign-types-shared v0.1.1       
  Compiling unicode-normalization v0.1.5      
  Compiling itoa v0.3.4                       
  Compiling unreachable v1.0.0                
  Compiling unicode-bidi v0.3.4               
  Compiling synom v0.11.3                     
  Compiling walkdir v1.0.7                    
  Compiling fs2 v0.4.2                        
  Compiling memchr v2.0.1                     
  Compiling atty v0.2.6                       
  Compiling rand v0.3.19                      
  Compiling num_cpus v1.8.0                   
  Compiling memchr v1.0.2                     
  Compiling jobserver v0.1.8                  
  Compiling log v0.4.1                        
  Compiling filetime v0.1.14                  
  Compiling socket2 v0.2.4                    
  Compiling foreign-types v0.3.2              
  Compiling semver v0.7.0                     
  Compiling serde_ignored v0.0.3              
  Compiling toml v0.4.5                       
  Compiling serde_json v1.0.9                 
  Compiling thread_local v0.3.5               
  Compiling curl-sys v0.3.15                  
  Compiling backtrace-sys v0.1.16             
  Compiling cmake v0.1.29                     
  Compiling openssl-sys v0.9.23               
  Compiling libz-sys v1.0.18                  
  Compiling miniz-sys v0.1.10                 
  Compiling syn v0.11.11                      
  Compiling aho-corasick v0.6.4               
  Compiling idna v0.1.4                       
  Compiling tempdir v0.3.5                    
  Compiling log v0.3.9                        
  Compiling tar v0.4.14                       
  Compiling libssh2-sys v0.2.6                
  Compiling libgit2-sys v0.6.18               
  Compiling regex v0.2.5                      
  Compiling url v1.6.0                        
  Compiling serde_derive_internals v0.19.0    
  Compiling flate2 v0.2.20                    
  Compiling serde_derive v1.0.27              
  Compiling env_logger v0.4.3                 
  Compiling globset v0.2.1                    
  Compiling curl v0.4.8                       
  Compiling ignore v0.2.2                     
  Compiling docopt v0.8.2                     
  Compiling backtrace v0.3.4                  
  Compiling error-chain v0.11.0               
  Compiling crates-io v0.11.0                 
  Compiling git2 v0.6.10                      
  Compiling git2-curl v0.7.0                  
  Compiling cargo v0.22.0                     
@roblabla
Copy link
Owner

roblabla commented Jan 1, 2018

Wait wat ? Did serde get a breaking change or something ? 🤔

@roblabla
Copy link
Owner

roblabla commented Jan 1, 2018

It builds correctly with this cargo.lock. Now to figure out what dependency broke everything.

@roblabla
Copy link
Owner

roblabla commented Jan 2, 2018

Docopt 0.8.2 is the culprit ! If I force it at 0.8.1, it all builds fine and good. I'll push an update that forces that version, and make an issue at docopt.

@roblabla
Copy link
Owner

roblabla commented Jan 2, 2018

docopt/docopt.rs#235

@roblabla
Copy link
Owner

roblabla commented Jan 2, 2018

Published 0.0.8, which forces docopt 0.8.1.

Might need to investigate how to avoid such issues in the future. The Cargo.lock is already in the repository, maybe I can make people compile clone and build the master branch ?

@roblabla roblabla changed the title Fails to build Remove Docopt hack to avoid silent breaking change Jan 2, 2018
@epage
Copy link
Author

epage commented Jan 2, 2018

Thanks for looking into this and getting it resolved!

Might need to investigate how to avoid such issues in the future. The Cargo.lock is already in the repository, maybe I can make people compile clone and build the master branch ?

An unintentional breaking change is rare enough that it might not matter too much.

Having pre-built binaries of cargo-travis at minimum (don't care as much about kcov) would be a help (#11)

@CAD97
Copy link
Collaborator

CAD97 commented Jan 16, 2018

Note that cargo install not respecting Cargo.lock is a known issue: rust-lang/cargo#2263

@roblabla
Copy link
Owner

Removing the docopt hack was done ages ago.

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

3 participants