killercup / killercup/cargo-edit
Merge cargo-upgrade into cargo
- Dominant language
- Rust
- Stars
- 3.5k
- Forks
- 166
- PR merge metrics
- No merged PRs in 30d
Description
A scratchpad for https://github.com/rust-lang/cargo/issues/12425
Merge plan
- [ ] Resolve #737
- [ ] Resolve #751
- [ ] Create `merge-upgrade` branch
- [ ] Refactor to match cargo's directory structure
- [ ] Refactor out of `cargo`s `ops/cargo_add/manifest.rs` into a place for reuse
- Possibilities: `ops/cargo_edit` or `edit` and make it public
- [ ] Port to cargo's internals
- [ ] Merge the command (like in rust-lang/cargo#10472)
- [ ] Update documentation (like in rust-lang/cargo#10578)
- [ ] Update completions (like in rust-lang/cargo#10577)
- [ ] Update https://github.com/rust-lang/rust/issues/44663 to include
- cargo-upgrade selecting a safe version (#445)
- for suggesting the user bump major (#144)
- [ ] Transfer to cargo repo:
- #513
- #410
Open questions
- How do we represent "fail if manifest will change" and "upgrade using lock file"
- Currently "fail if manifest will change" is `--locked` and "upgrade using lock file" is `--to-lockfile`
- Alt: if you squint `--locked` could also mean "upgrade using lock file"
- Prompt the user for each upgrade by default but also accept `--choice `
Contributor guide
Research direction
Start with the cargo-upgrade merge plan and the referenced issues #737, #751, #445, and #144, then compare cargo-edit's ops/cargo_add/manifest.rs with Cargo's directory structure. The open questions about --locked, --to-lockfile, and --choice require design decisions before implementation. Done means the command is ported into Cargo, with documentation, completions, and the listed issue transfers addressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100