about summary refs log tree commit diff
path: root/src/bootstrap/metadata.rs
AgeCommit message (Collapse)AuthorLines
2020-02-03bootstrap: fix clippy warningsMatthias Krüger-1/+0
2019-12-22Format the worldMark Rousskov-13/+12
2019-06-13Delete unused fields on Crate structMark Rousskov-6/+0
2019-05-09remove unneeded `extern crate`s from build toolsAndy Russell-0/+1
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-10bootstrap: fix editionljedrz-2/+2
2018-07-16Calculate the exact capacity for 2 HashMapsljedrz-1/+1
2018-06-08rustbuild: generate full list of dependencies for metadataest31-23/+31
Previously, we didn't send --features to our cargo metadata invocations, and thus missed some dependencies that we enable through the --features mechanism.
2017-08-15use field init shorthand EVERYWHEREZack M. Davis-2/+2
Like #43008 (f668999), but _much more aggressive_.
2017-07-20Remove deserializeAidan Hobson Sayers-9/+10
2017-07-20Utilize interning to allow Copy/Clone stepsMark Simulacrum-4/+5
2017-07-20Update to toml 0.4Mark Simulacrum-6/+6
2017-07-04Clarify meaning of Build.cargo, Build.rustc.Mark Simulacrum-1/+1
Rename Build.{cargo, rustc} to {initial_cargo, initial_rustc}.
2017-04-25Pass `--format-version 1` to `cargo metadata`.kennytm-0/+1
Suppress warning introduced by rust-lang/cargo#3841.
2017-03-03rustbuild: Add support for compiling CargoAlex Crichton-0/+2
This commit adds support to rustbuild for compiling Cargo as part of the release process. Previously rustbuild would simply download a Cargo snapshot and repackage it. With this change we should be able to turn off artifacts from the rust-lang/cargo repository and purely rely on the artifacts Cargo produces here. The infrastructure added here is intended to be extensible to other components, such as the RLS. It won't exactly be a one-line addition, but the addition of Cargo didn't require too much hooplah anyway. The process for release Cargo will now look like: * The rust-lang/rust repository has a Cargo submodule which is used to build a Cargo to pair with the rust-lang/rust release * Periodically we'll update the cargo submodule as necessary on rust-lang/rust's master branch * When branching beta we'll create a new branch of Cargo (as we do today), and the first commit to the beta branch will be to update the Cargo submodule to this exact revision. * When branching stable, we'll ensure that the Cargo submodule is updated and then make a stable release. Backports to Cargo will look like: * Send a PR to cargo's master branch * Send a PR to cargo's release branch (e.g. rust-1.16.0) * Send a PR to rust-lang/rust's beta branch updating the submodule * Eventually send a PR to rust-lang/rust's master branch updating the submodule For reference, the process to add a new component to the rust-lang/rust release would look like: * Add `$foo` as a submodule in `src/tools` * Add a `tool-$foo` step which compiles `$foo` with the specified compiler, likely mirroring what Cargo does. * Add a `dist-$foo` step which uses `src/tools/$foo` and the `tool-$foo` output to create a rust-installer package for `$foo` likely mirroring what Cargo does. * Update the `dist-extended` step with a new dependency on `dist-$foo` * Update `src/tools/build-manifest` for the new component.
2017-02-21test: Verify all sysroot crates are unstableAlex Crichton-2/+2
As we continue to add more crates to the compiler and use them to implement various features we want to be sure we're not accidentally expanding the API surface area of the compiler! To that end this commit adds a new `run-make` test which will attempt to `extern crate foo` all crates in the sysroot, verifying that they're all unstable. This commit discovered that the `std_shim` and `test_shim` crates were accidentally stable and fixes the situation by deleting those shims. The shims are no longer necessary due to changes in Cargo that have happened since they were originally incepted.
2016-11-25rustbuild: Add bench subcommandUlrik Sverdrup-0/+1
Add command `./x.py bench`; use `./x.py bench --help -v` to list all available benchmark targets.
2016-11-02rustbuild: Rewrite user-facing interfaceAlex Crichton-0/+95
This commit is a rewrite of the user-facing interface to the rustbuild build system. The intention here is to make it much easier to compile/test the project without having to remember weird rule names and such. An overall view of the new interface is: # build everything ./x.py build # document everyting ./x.py doc # test everything ./x.py test # test libstd ./x.py test src/libstd # build libcore stage0 ./x.py build src/libcore --stage 0 # run stage1 run-pass tests ./x.py test src/test/run-pass --stage 1 The `src/bootstrap/bootstrap.py` script is now aliased as a top-level `x.py` script. This `x` was chosen to be both short and easily tab-completable (no collisions in that namespace!). The build system now accepts a "subcommand" of what to do next, the main ones being build/doc/test. Each subcommand then receives an optional list of arguments. These arguments are paths in the source repo of what to work with. That is, if you want to test a directory, you just pass that directory as an argument. The purpose of this rewrite is to do away with all of the arcane renames like "rpass" is the "run-pass" suite, "cfail" is the "compile-fail" suite, etc. By simply working with directories and files it's much more intuitive of how to run a test (just pass it as an argument). The rustbuild step/dependency management was also rewritten along the way to make this easy to work with and define, but that's largely just a refactoring of what was there before. The *intention* is that this support is extended for arbitrary files (e.g. `src/test/run-pass/my-test-case.rs`), but that isn't quite implemented just yet. Instead directories work for now but we can follow up with stricter path filtering logic to plumb through all the arguments.