Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ci/sembr/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ static REGEX_IGNORE_END: LazyLock<Regex> =
static REGEX_IGNORE_LINK_TARGETS: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^\[.+\]: ").unwrap());
static REGEX_SPLIT: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"([^\.\d\-\*]\.|[^r]\?|;|!)\s").unwrap());
LazyLock::new(|| Regex::new(r"([^\.\d\-\*]\.|[^r]\?|!)\s").unwrap());
// list elements, numbered (1.) or not (- and *)
static REGEX_LIST_ENTRY: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^\s*(\d\.|\-|\*)\s+").unwrap());
Expand Down Expand Up @@ -196,7 +196,7 @@ fn lengthen_lines(content: &str, limit: usize) -> String {
fn test_sembr() {
let original = "
# some. heading
must! be; split?
must! be. split?
1. ignore a dot after number. but no further
ignore | tables
ignore e.g. and
Expand All @@ -214,7 +214,7 @@ git log main.. compiler
let expected = "
# some. heading
must!
be;
be.
split?
1. ignore a dot after number.
but no further
Expand Down
50 changes: 26 additions & 24 deletions src/tests/crater.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,45 @@
# Crater

[Crater](https://github.com/rust-lang/crater) is a tool for compiling and
running tests for _every_ crate on [crates.io](https://crates.io) (and a few on
GitHub). It is mainly used for checking the extent of breakage when implementing
running tests for _every_ crate on [crates.io](https://crates.io) (and a few on GitHub).
It is mainly used for checking the extent of breakage when implementing
potentially breaking changes and ensuring lack of breakage by running beta vs
stable compiler versions.

## When to run Crater

You should request a Crater run if your PR makes large changes to the compiler
or could cause breakage. If you are unsure, feel free to ask your PR's reviewer.
or could cause breakage.
If you are unsure, feel free to ask your PR's reviewer.

## Requesting Crater Runs

The Rust team maintains a few machines that can be used for Crater runs
on the changes introduced by a PR. If your PR needs a Crater run, leave a
comment for the triage team in the PR thread. Please inform the team whether you
require a "check-only" Crater run, a "build only" Crater run, or a
"build-and-test" Crater run. The difference is primarily in time;
if you're not sure, go for the build-and-test run. If
making changes that will only have an effect at compile-time (e.g., implementing
a new trait), then you only need a check run.

Your PR will be enqueued by the triage team and the results will be posted when
they are ready. Check runs will take around ~3-4 days, and the other two taking
5-6 days on average.

While Crater is really useful, it is also important to be aware of a few
caveats:

- Not all code is on crates.io! There is a lot of code in repos on GitHub and
elsewhere. Also, companies may not wish to publish their code. Thus, a
successful Crater run does not mean there will be no
on the changes introduced by a PR.
If your PR needs a Crater run, leave a comment for the triage team in the PR thread.
Please inform the team whether you
require a "check-only" Crater run, a "build only" Crater run, or a "build-and-test" Crater run.
The difference is primarily in time;
if you're not sure, go for the build-and-test run.
If making changes that will only have an effect at compile-time
(e.g., implementing a new trait), then you only need a check run.

Your PR will be enqueued by the triage team and the results will be posted when they are ready.
Check runs will take around ~3-4 days, and the other two taking 5-6 days on average.

While Crater is really useful, it is also important to be aware of a few caveats:

- Not all code is on crates.io!
There is a lot of code in repos on GitHub and elsewhere.
Also, companies may not wish to publish their code.
Thus, a successful Crater run does not mean there will be no
breakage; you still need to be careful.

- Crater only runs Linux builds on x86_64. Thus, other architectures and
platforms are not tested. Critically, this includes Windows.
- Crater only runs Linux builds on x86_64. Thus, other architectures and platforms are not tested.
Critically, this includes Windows.

- Many crates are not tested. This could be for a lot of reasons, including that
- Many crates are not tested.
This could be for a lot of reasons, including that
the crate doesn't compile any more (e.g. used old nightly features), has
broken or flaky tests, requires network access, or other reasons.

Expand Down
Loading