Skip to content

Conversation

@weihanglo
Copy link
Member

What does this PR try to resolve?

Clarify how git submodules are handled in Cargo for git dependencies.

See #4247 (comment)

@weihanglo weihanglo added the A-git Area: anything dealing with git label Aug 17, 2025
@rustbot
Copy link
Collaborator

rustbot commented Aug 17, 2025

r? @ehuss

rustbot has assigned @ehuss.
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 A-documenting-cargo-itself Area: Cargo's documentation S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 17, 2025
Copy link
Contributor

@ehuss ehuss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ehuss ehuss added this pull request to the merge queue Aug 18, 2025
Comment on lines +310 to +314
To skip updates for a specific submodule,
Cargo respects the [`submodule.<name>.update`] setting in `.gitmodules`.
Setting it to `none` disables updates for that submodule if it isn't needed for the build.
This is usually set in the repository itself,
so changes require access to the dependency's repo.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first paragraph talks in terms of behavior (fetch) while the second paragraph talks in terms of a git submodule specific term (update) that I worry may confuse users.

What do you think of:

Suggested change
To skip updates for a specific submodule,
Cargo respects the [`submodule.<name>.update`] setting in `.gitmodules`.
Setting it to `none` disables updates for that submodule if it isn't needed for the build.
This is usually set in the repository itself,
so changes require access to the dependency's repo.
To skip fetching submodules unrelated to the build, you can set [`submodule.<name>.update = none`] in the dependency repo's `.gitmodules`.
This requires write access to the repo and will disable submodule updates more generally.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems a bit more concise and understandable!

Merged via the queue into rust-lang:master with commit 62537dd Aug 18, 2025
23 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 18, 2025
@weihanglo weihanglo deleted the git-submodules branch August 18, 2025 15:53
github-merge-queue bot pushed a commit that referenced this pull request Aug 18, 2025
bors added a commit to rust-lang/rust that referenced this pull request Aug 23, 2025
Update cargo submodule

12 commits in 71eb84f21aef43c07580c6aed6f806a6299f5042..623d536836b4cde09ce38609232a024d5b25da81
2025-08-17 17:18:56 +0000 to 2025-08-22 19:05:52 +0000
- test(frontmatter): Match test updates in rustc (rust-lang/cargo#15878)
- chore: fix some typos in comment (rust-lang/cargo#15877)
- Add Arm64 Windows CI jobs (rust-lang/cargo#15790)
- suggest workspace hints for boolean dependencies (rust-lang/cargo#15507)
- make `UnitGenerator` public in cargo-as-a-library (rust-lang/cargo#15873)
- Linting system (rust-lang/cargo#15865)
- Switch to using native mdbook fragment redirects (rust-lang/cargo#15861)
- docs(profile): revert wrong statement of lto options' optimization (rust-lang/cargo#15855)
- docs: avoid ambiguity between update and fetch (rust-lang/cargo#15860)
- docs: mention how Cargo fetch git submodules (rust-lang/cargo#15853)
- feat(unstable): Added `-Zbuild-dir-new-layout` unstable feature (rust-lang/cargo#15848)
- Implement `host`-target substitution (rust-lang/cargo#15838)

r? ghost
@rustbot rustbot added this to the 1.91.0 milestone Aug 23, 2025
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Aug 24, 2025
Update cargo submodule

12 commits in 71eb84f21aef43c07580c6aed6f806a6299f5042..623d536836b4cde09ce38609232a024d5b25da81
2025-08-17 17:18:56 +0000 to 2025-08-22 19:05:52 +0000
- test(frontmatter): Match test updates in rustc (rust-lang/cargo#15878)
- chore: fix some typos in comment (rust-lang/cargo#15877)
- Add Arm64 Windows CI jobs (rust-lang/cargo#15790)
- suggest workspace hints for boolean dependencies (rust-lang/cargo#15507)
- make `UnitGenerator` public in cargo-as-a-library (rust-lang/cargo#15873)
- Linting system (rust-lang/cargo#15865)
- Switch to using native mdbook fragment redirects (rust-lang/cargo#15861)
- docs(profile): revert wrong statement of lto options' optimization (rust-lang/cargo#15855)
- docs: avoid ambiguity between update and fetch (rust-lang/cargo#15860)
- docs: mention how Cargo fetch git submodules (rust-lang/cargo#15853)
- feat(unstable): Added `-Zbuild-dir-new-layout` unstable feature (rust-lang/cargo#15848)
- Implement `host`-target substitution (rust-lang/cargo#15838)

r? ghost
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Aug 25, 2025
Update cargo submodule

12 commits in 71eb84f21aef43c07580c6aed6f806a6299f5042..623d536836b4cde09ce38609232a024d5b25da81
2025-08-17 17:18:56 +0000 to 2025-08-22 19:05:52 +0000
- test(frontmatter): Match test updates in rustc (rust-lang/cargo#15878)
- chore: fix some typos in comment (rust-lang/cargo#15877)
- Add Arm64 Windows CI jobs (rust-lang/cargo#15790)
- suggest workspace hints for boolean dependencies (rust-lang/cargo#15507)
- make `UnitGenerator` public in cargo-as-a-library (rust-lang/cargo#15873)
- Linting system (rust-lang/cargo#15865)
- Switch to using native mdbook fragment redirects (rust-lang/cargo#15861)
- docs(profile): revert wrong statement of lto options' optimization (rust-lang/cargo#15855)
- docs: avoid ambiguity between update and fetch (rust-lang/cargo#15860)
- docs: mention how Cargo fetch git submodules (rust-lang/cargo#15853)
- feat(unstable): Added `-Zbuild-dir-new-layout` unstable feature (rust-lang/cargo#15848)
- Implement `host`-target substitution (rust-lang/cargo#15838)

r? ghost
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-documenting-cargo-itself Area: Cargo's documentation A-git Area: anything dealing with git

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants