killercup / killercup/cargo-edit

Merge cargo-upgrade into cargo

Open
#685 8 comments 5 reactions 0 assignees View on GitHub
cargo-upgrade
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.