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

Deprecate more in-tree libs for crates.io #19820

Merged
merged 1 commit into from
Dec 17, 2014

Conversation

alexcrichton
Copy link
Member

This commit deprecates a few more in-tree libs for their crates.io counterparts.
Note that this commit does not make use of the #[deprecated] tag to prevent
warnings from being generated for in-tree usage. Once #[unstable] warnings are
turned on then all external users will be warned to move.

These crates have all been duplicated in rust-lang/$crate repositories so
development can happen independently of the in-tree copies. We can explore at a
later date replacing the in-tree copies with the external copies, but at this
time the libraries have changed very little over the past few months so it's
unlikely for changes to be sent to both repos.

cc #19260

This commit deprecates a few more in-tree libs for their crates.io counterparts.
Note that this commit does not make use of the #[deprecated] tag to prevent
warnings from being generated for in-tree usage. Once #[unstable] warnings are
turned on then all external users will be warned to move.

These crates have all been duplicated in rust-lang/$crate repositories so
development can happen independently of the in-tree copies. We can explore at a
later date replacing the in-tree copies with the external copies, but at this
time the libraries have changed very little over the past few months so it's
unlikely for changes to be sent to both repos.

cc rust-lang#19260
@Gankra
Copy link
Contributor

Gankra commented Dec 13, 2014

Was the decision/discussion for these recorded anywhere?

@liigo
Copy link
Contributor

liigo commented Dec 14, 2014

This is not an rfc, reviewers will make decision.
2014年12月14日 上午7:36于 "Alexis Beingessner" notifications@github.com写道:

Was the decision/discussion for these recorded anywhere?


Reply to this email directly or view it on GitHub
#19820 (comment).

@alexcrichton
Copy link
Member Author

@gankro I haven't been able to dig up any notes just yet, but in general we're not willing to commit to any library in-tree at this time other than the standard library. As a result we have a large number of useful crates in-tree (such as all of these) which we would still like to provide. By providing these crates in crates.io we get a number of benefits:

  • All crates can be rapidly iterated on as necessary because development happens independently of the compiler.
  • Each crate can be used on the stable channel of Rust.
  • Distribution on crates.io means you don't have to wait for the next release of Rust to get bug fixes or new features from these libraries.

Note that this is not just removing these crates. We plan to continue officially supporting them in the rust-lang organization and fix bugs etc. When we have time to scrutinize their APIs we may be able to fast-forward them to 1.0 as well, and possibly even bring it back in tree, but until that time we need a way to retain all of this functionality in the stable channel of Rust at 1.0.

@Gankra
Copy link
Contributor

Gankra commented Dec 14, 2014

👍

@thestinger
Copy link
Contributor

The regex crate is used by the test crate and exposed in the public API. What is the plan for handling that?

@alexcrichton
Copy link
Member Author

The story of the test crate is one of the open questions of the stabilization bug, and I would like to leave that question to later. At worst we must freeze our regular expression syntax implemented today for filtering tests, where at best we remove the dependency altogether in favor of simply substring matching.

@sfackler
Copy link
Member

I'm running into a lot of warnings trying to use the out-of-tree versions of these crates. What's the plan for dealing with them? Everything works fine, but it's really noisy.

   Compiling postgres v0.2.0 (file:///home/sfackler/rust/rust-postgres)
warning: using multiple versions of crate `regex`
tests/test.rs:4:1: 4:23 note: used here
tests/test.rs:4 extern crate postgres;
                ^~~~~~~~~~~~~~~~~~~~~~
note: crate name: regex
tests/test.rs:4:1: 4:23 note: used here
tests/test.rs:4 extern crate postgres;
                ^~~~~~~~~~~~~~~~~~~~~~
note: crate name: regex
warning: using multiple versions of crate `log`
tests/test.rs:4:1: 4:23 note: used here
tests/test.rs:4 extern crate postgres;
                ^~~~~~~~~~~~~~~~~~~~~~
note: crate name: log
tests/test.rs:4:1: 4:23 note: used here
tests/test.rs:4 extern crate postgres;
                ^~~~~~~~~~~~~~~~~~~~~~
note: crate name: log

@alexcrichton
Copy link
Member Author

@sfackler are you sure the entire dependency tree is using libregex/liblog from crates.io? We're cutting down the size of the standard distribution to just one crate (the standard library), so you in general shouldn't be receiving those warnings as all crates migrate to crates.io.

@sfackler
Copy link
Member

Ah, it's probably coming in through libserialize

@brson
Copy link
Contributor

brson commented Dec 16, 2014

I'm ok with this strategy.

bors added a commit that referenced this pull request Dec 17, 2014
Deprecate more in-tree libs for crates.io

Reviewed-by: aturon
bors referenced this pull request Dec 17, 2014
Using a type alias for iterator implementations is fragile since this
exposes the implementation to users of the iterator, and any changes
could break existing code.

This commit changes the iterators of `VecMap` to use
proper new types, rather than type aliases.  However, since it is
fair-game to treat a type-alias as the aliased type, this is a:

[breaking-change].
alexcrichton added a commit to alexcrichton/rust that referenced this pull request Dec 17, 2014
This commit deprecates a few more in-tree libs for their crates.io counterparts.
Note that this commit does not make use of the #[deprecated] tag to prevent
warnings from being generated for in-tree usage. Once #[unstable] warnings are
turned on then all external users will be warned to move.

These crates have all been duplicated in rust-lang/$crate repositories so
development can happen independently of the in-tree copies. We can explore at a
later date replacing the in-tree copies with the external copies, but at this
time the libraries have changed very little over the past few months so it's
unlikely for changes to be sent to both repos.

cc rust-lang#19260
@bors bors merged commit 8abe784 into rust-lang:master Dec 17, 2014
@alexcrichton alexcrichton deleted the deprecate-some-more-libs branch December 17, 2014 23:48
cyderize added a commit to cyderize/mime.rs that referenced this pull request Dec 24, 2014
The log crate should be coming from crates.io in the future.
See the PR [here](rust-lang/rust#19820).
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

Successfully merging this pull request may close these issues.

8 participants