{"id":26983791,"url":"https://github.com/vivax3794/cargo_bounds","last_synced_at":"2025-04-03T17:04:47.792Z","repository":{"id":284768834,"uuid":"956009914","full_name":"vivax3794/cargo_bounds","owner":"vivax3794","description":"Checking that your dependency requirements are sound","archived":false,"fork":false,"pushed_at":"2025-03-27T14:56:50.000Z","size":0,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T15:50:22.598Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vivax3794.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-27T14:54:17.000Z","updated_at":"2025-03-27T15:48:48.000Z","dependencies_parsed_at":"2025-03-27T15:50:26.915Z","dependency_job_id":"c2f6fb44-48e6-40ca-87a0-c44ff288441b","html_url":"https://github.com/vivax3794/cargo_bounds","commit_stats":null,"previous_names":["vivax3794/cargo_bounds"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivax3794%2Fcargo_bounds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivax3794%2Fcargo_bounds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivax3794%2Fcargo_bounds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vivax3794%2Fcargo_bounds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vivax3794","download_url":"https://codeload.github.com/vivax3794/cargo_bounds/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247043339,"owners_count":20874086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-03T17:03:02.959Z","updated_at":"2025-04-03T17:04:47.781Z","avatar_url":"https://github.com/vivax3794.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Cargo-Bounds 🎉\n\n**Cargo-Bounds** is an awesome tool designed to help you verify and optimize your dependency ranges in Rust! It lets you specify bounds across major versions with ease and even finds the most flexible constraints, ensuring your project only uses compatible features. Perfect for catching those sneaky cases where a feature might be used from a dependency that doesn’t support it in every version! 😍🚀\n\n---\n\n## Installation\n\nInstall Cargo-Bounds with a single command:\n```bash\ncargo install cargo-bounds\n```\n\n---\n\n## Disclaimer ⚠️\n\n- **Test Reliance:**  \n  Cargo-Bounds uses `cargo check` (or a custom test command you provide) to verify if a version works. This means it depends on your test **suite** catching any issues. While `cargo bounds minimize` is super helpful, consider its recommendation only down to the previous minor version because subtle changes might slip through! ✨\n\n- **Corner Cases:**  \n  In some rare cases, Cargo-Bounds might flag a version as incompatible because Rust won’t let you duplicate a crate version—even if the bound isn’t actually an issue. This still indicates that you might want to raise the minimum bound on that dependency. Always run your full test suite after updating! 💖\n\n---\n\n## Usage\n\n### Testing Dependency Ranges 🧪\n\nTo test every major version in your dependency bounds, simply run:\n```bash\ncargo bounds test\n```\n*Example output:*\n```\ntoml_edit - ^0.22.10\n  0.22.10 FAILED\n  0.22.24 OK\nError: 1 deps have failing versions in their bounds. (1 versions failed in total)\n```\n\nFor another example:\n```\nowo-colors - \u003e=1.0.0, \u003c5\n  1.0.0 OK\n  2.0.0 OK\n  3.0.0 OK\n  4.0.0 OK\n  4.2.0 OK\n```\n\nNeed to run your unit tests for extra confidence? Use a custom check command:\n```bash\ncargo bounds test --command \"cargo test\"\n```\nFor more options, check out:\n```bash\ncargo bounds test --help\n```\nIsn’t that neat? 😎\n\n---\n\n### Minimizing Dependency Bounds ✂️\n\nTo minimize the bounds for all dependencies:\n```bash\ncargo bounds minimize\n```\nSince that might produce a bit of output chaos, it’s often better to minimize one dependency at a time:\n```bash\ncargo bounds minimize your_dependency\n```\n*Note:* This command always uses `cargo check`. So, it’s a great idea to run:\n```bash\ncargo bounds test --command \"...\"\n```\nafter updating to verify that everything still works perfectly! 🌟\n\n#### Sanity Check 🔍\n\nCargo-Bounds uses a binary search across major versions. For example, it might find a bound like `\u003e=0.9, \u003c=0.19` as the most flexible—even if your code fails on versions like `0.15.0` or `0.16.0` (a real scenario I’ve encountered!). While running `cargo bounds test` should catch these issues, Cargo-Bounds also performs a quick sanity check across all minor versions in the found bound. If needed, you can skip this check using the `--skip-sanity` flag.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivax3794%2Fcargo_bounds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvivax3794%2Fcargo_bounds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvivax3794%2Fcargo_bounds/lists"}