Skip to content

Stabilize flags for doctest cross compilation #137096

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

Merged
merged 7 commits into from
Apr 25, 2025

Conversation

ehuss
Copy link
Contributor

@ehuss ehuss commented Feb 15, 2025

This makes the following changes in preparation for supporting doctest cross-compiling in cargo:

  • Renames --runtool and --runtool-arg to --test-runtool and --test-runtool-arg to maintain consistency with other --test-* arguments.
  • Stabilizes the --test-runtool and --test-runtool-arg. These are needed in order to support cargo's target.runner option which specifies a runner to execute a cross-compiled doctest (for example, qemu).
  • Stabilizes the --enable-per-target-ignores flag by removing it and making it unconditionally enabled. This makes it possible to disable a doctest on a per-target basis, which I think will be helpful for rolling out this feature.

These changes were suggested in https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/stabilizing.20doctest.20xcompile/near/409281127

The intent is to stabilize the doctest-xcompile feature in cargo. This will help ensure that for projects that do cross-compile testing that their doctests are also covered. Currently there is a somewhat surprising behavior that they are ignored.

Closes #64245

try-job: x86_64-msvc-1

@rustbot
Copy link
Collaborator

rustbot commented Feb 15, 2025

r? @fmease

rustbot has assigned @fmease.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Feb 15, 2025
@fmease fmease added the needs-fcp This change is insta-stable, so needs a completed FCP to proceed. label Feb 15, 2025
@rust-log-analyzer

This comment has been minimized.

@ehuss ehuss force-pushed the stabilize-doctest-xcompile branch from ab9d4c8 to a676b04 Compare February 15, 2025 20:58
@rustbot rustbot added the A-run-make Area: port run-make Makefiles to rmake.rs label Feb 15, 2025
@rustbot
Copy link
Collaborator

rustbot commented Feb 15, 2025

This PR modifies tests/run-make/. If this PR is trying to port a Makefile
run-make test to use rmake.rs, please update the
run-make port tracking issue
so we can track our progress. You can either modify the tracking issue
directly, or you can comment on the tracking issue and link this PR.

cc @jieyouxu

The Miri subtree was changed

cc @rust-lang/miri

@rust-log-analyzer

This comment has been minimized.

@ehuss ehuss force-pushed the stabilize-doctest-xcompile branch from a676b04 to 8aaa90b Compare February 15, 2025 22:01
@bors
Copy link
Collaborator

bors commented Mar 22, 2025

☔ The latest upstream changes (presumably #138830) made this pull request unmergeable. Please resolve the merge conflicts.

@ehuss ehuss force-pushed the stabilize-doctest-xcompile branch 2 times, most recently from a0799de to ddc6525 Compare March 22, 2025 23:04
@ehuss
Copy link
Contributor Author

ehuss commented Mar 23, 2025

@fmease @GuillaumeGomez Just checking if this can be put on the team's radar?

@GuillaumeGomez
Copy link
Member

On my review list now. :)

@GuillaumeGomez
Copy link
Member

I think they've been around for enough time. Let's start an FCP then.

@rfcbot fcp merge

@rfcbot
Copy link
Collaborator

rfcbot commented Mar 23, 2025

Team member @GuillaumeGomez has proposed to merge this. The next step is review by the rest of the tagged team members:

Concerns:

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for info about what commands tagged team members can give me.

@rfcbot rfcbot added proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. labels Mar 23, 2025
@ehuss
Copy link
Contributor Author

ehuss commented Mar 28, 2025

In playing around with this, I noticed a slight annoyance when using --edition=2024 and mergeable tests. It always prints:

WARNING: No rustdoc doctest environment variable provided so doctests will be run in the same process

I'm wondering if it would make sense to somehow silence that warning when using --test-runtool?

I'm also wondering if it is the right choice to run in the same process. I could see arguments either way. Let me know if you have any opinion on that.

@rust-log-analyzer

This comment has been minimized.

ehuss added 4 commits March 27, 2025 19:04
This renames `--runtool` and `--runtool-arg` to `--test-runtool` and
`--test-runtool-arg` to maintain consistency with other `--test-*`
arguments.
This removes the `--enable-per-target-ignores` and enables it
unconditionally.
@notriddle
Copy link
Contributor

https://rust-lang.zulipchat.com/#narrow/channel/393423-t-rustdoc.2Fmeetings/topic/2025-04-14/near/512154144

In the meeting, we agreed that the shell-like lexing is bad, and so is splitting on spaces. --test-args ought to be deprecated in favor of --test-arg, and --doctest-compilation-args should be replaced with --doctest-compilation-arg.

@fmease
Copy link
Member

fmease commented Apr 14, 2025

@rfcbot resolve forwarding-multi-args-mechanism

I'll be creating a separate PR for these flags.

@rfcbot rfcbot added final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. and removed proposed-final-comment-period Proposed to merge/close by relevant subteam, see T-<team> label. Will enter FCP once signed off. labels Apr 14, 2025
@rfcbot
Copy link
Collaborator

rfcbot commented Apr 14, 2025

🔔 This is now entering its final comment period, as per the review above. 🔔

@rfcbot rfcbot added finished-final-comment-period The final comment period is finished for this PR / Issue. to-announce Announce this issue on triage meeting and removed final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. labels Apr 24, 2025
@rfcbot
Copy link
Collaborator

rfcbot commented Apr 24, 2025

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

This will be merged soon.

@fmease
Copy link
Member

fmease commented Apr 24, 2025

Thanks everyone! @bors r+ rollup

@bors
Copy link
Collaborator

bors commented Apr 24, 2025

📌 Commit 115341f has been approved by fmease

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-team Status: Awaiting decision from the relevant subteam (see the T-<team> label). labels Apr 24, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 25, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#137096 (Stabilize flags for doctest cross compilation)
 - rust-lang#140148 (CI: use aws codebuild for job dist-arm-linux)
 - rust-lang#140187 ([AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test)
 - rust-lang#140196 (Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`))
 - rust-lang#140210 (Work around cygwin issue on condvar timeout)
 - rust-lang#140213 (mention about `x.py setup` in `INSTALL.md`)
 - rust-lang#140229 (`DelimArgs` tweaks)
 - rust-lang#140248 (Fix impl block items indent)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 25, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#137096 (Stabilize flags for doctest cross compilation)
 - rust-lang#140148 (CI: use aws codebuild for job dist-arm-linux)
 - rust-lang#140187 ([AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test)
 - rust-lang#140196 (Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`))
 - rust-lang#140210 (Work around cygwin issue on condvar timeout)
 - rust-lang#140213 (mention about `x.py setup` in `INSTALL.md`)
 - rust-lang#140229 (`DelimArgs` tweaks)
 - rust-lang#140248 (Fix impl block items indent)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 610ed82 into rust-lang:master Apr 25, 2025
6 checks passed
@rustbot rustbot added this to the 1.88.0 milestone Apr 25, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 25, 2025
Rollup merge of rust-lang#137096 - ehuss:stabilize-doctest-xcompile, r=fmease

Stabilize flags for doctest cross compilation

This makes the following changes in preparation for supporting doctest cross-compiling in cargo:

- Renames `--runtool` and `--runtool-arg` to `--test-runtool` and `--test-runtool-arg` to maintain consistency with other `--test-*` arguments.
- Stabilizes the `--test-runtool` and `--test-runtool-arg`. These are needed in order to support cargo's `target.runner` option which specifies a runner to execute a cross-compiled doctest (for example, qemu).
- Stabilizes the `--enable-per-target-ignores` flag by removing it and making it unconditionally enabled. This makes it possible to disable a doctest on a per-target basis, which I think will be helpful for rolling out this feature.

These changes were suggested in https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/stabilizing.20doctest.20xcompile/near/409281127

The intent is to stabilize the doctest-xcompile feature in cargo. This will help ensure that for projects that do cross-compile testing that their doctests are also covered. Currently there is a somewhat surprising behavior that they are ignored.

Closes rust-lang#64245

try-job: x86_64-msvc-1
ehuss added a commit to ehuss/cargo that referenced this pull request Apr 25, 2025
This updates the flags used for doctest xcompile to match the upstream
changes in rust-lang/rust#137096 which renamed
the flag.
ehuss added a commit to ehuss/cargo that referenced this pull request Apr 25, 2025
This updates the flags used for doctest xcompile to match the upstream
changes in rust-lang/rust#137096 which renamed
and stabilized the flags.
ehuss added a commit to ehuss/cargo that referenced this pull request Apr 26, 2025
This updates the flags used for doctest xcompile to match the upstream
changes in rust-lang/rust#137096 which renamed
and stabilized the flags.
github-merge-queue bot pushed a commit to rust-lang/cargo that referenced this pull request Apr 26, 2025
This updates the flags used for doctest xcompile to match the upstream
changes in rust-lang/rust#137096 which renamed
and stabilized the flags.

This cannot be merged until after nightly is published tonight.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-run-make Area: port run-make Makefiles to rmake.rs disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. finished-final-comment-period The final comment period is finished for this PR / Issue. needs-fcp This change is insta-stable, so needs a completed FCP to proceed. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. to-announce Announce this issue on triage meeting
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tracking Issue for Cross Compiling Doctests
8 participants