Skip to content

Commit

Permalink
Explanation about crate version upgrades.
Browse files Browse the repository at this point in the history
  • Loading branch information
peter-lyons-kehl committed Jan 3, 2025
1 parent b352356 commit cbf4a78
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions CRATE_POLICY.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,31 @@ The playground selects a number of root crates to include:
- The top 100 crates based on [all time downloads][]
- Crates from the [Rust cookbook][]

The latest stable version of these crates are available, as well as
whatever dependencies these crates require.
The latest stable version of these crates are available, as well as whatever dependencies these
crates require. However, the selected versions of direct or transient dependencies may be **other**
than current stable (or most recent unstable) versions, because they have to be versions specified
by their dependent crates. (See also [a comment on issue
#780](https://github.com/rust-lang/rust-playground/issues/780#issuecomment-1047942472) and [another
comment on the same
issue](https://github.com/rust-lang/rust-playground/issues/780#issuecomment-1048140676).)

## Version updates

- We usually upgrade all the crates at once, since we have to rebuild it from scratch if even one
crate changes. (See also [a comment on issue
#568](https://github.com/rust-lang/rust-playground/pull/568#issuecomment-577273010).)
- As a rule of thumb, we upgrade the crates about twice a year.

Yes, some crates (especially unstable ones) may progress faster. However, regardless of how
frequently we upgrade the crates, there will be either breaking changes for existing playgrounds
(gists), or new functionality that is not available in the playground yet.

Either way, increasing upgrade frequency for its own sake doesn't fix this problem, and it would
only increase the amount of work for the maintainers.
- Unless you've created a pull request about version upgrades in the past and it was accepted,
please don't. Manually editing `Cargo.toml` is not appropriate. For example, this change does not
update `crate-information.json`. (See [a comment on issue
#1076](https://github.com/rust-lang/rust-playground/pull/1076#issuecomment-2260701610).)

## Why is there a policy?

Expand Down

0 comments on commit cbf4a78

Please sign in to comment.