Kixunil / Kixunil/RIT

Cargo sysdeps

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Implement and document `cargo-sysdeps` command which can traverse dependency graph and read all `Cargo.toml` metadata of this format:

```toml
[package.metadata.sysdeps.debian.11]
package = "librocksdb-dev"
version = "> 6.11.4, < 7"
# optional
type = "dev" # can be dev, build, runtime
# optional, true means the library is not strictly necessary
vendored = true

# optional
[package.metadata.sysdeps.debian.11.repository]
# if this is present BOTH fields are MANDATORY
location = "" # URI with other things like components, distro...
key = "PGP fingerprint here"
```

Obviously should support multiple OSes/distributions. macOS should probably use something like `macos-brew`.

Commands:

* `cargo sysdeps install [--dev]` - installs all (non-dev without `--dev` flag) packages found **from system repositories**, MUST NOT install additional repositories, but should inform the user about them if required
* `cargo sysdeps list [--system ...] [--sys-version ...] [--dev] [--]`
* `cargo sysdeps install-repository location [--this-is-definitely-ci-im-not-crazy-blindly-installing-repositories]` installs given repository with its key. The process is interactive and asks the user to type in "I give root permissions on my system", the long flag can be used in CI to turn off interactivity. In that cas `all` is also accepted instead of location.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no implementation files or tests. Start by defining the Cargo metadata format and the supported command and repository behaviors, then identify the project's CLI entry point and test structure. Done means dependency metadata can be traversed and the install, list, and repository commands meet the stated safety requirements.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.