{"id":16353465,"url":"https://github.com/mwrites/cargo-publish-workspace","last_synced_at":"2025-03-23T01:31:03.602Z","repository":{"id":151252801,"uuid":"623987371","full_name":"mwrites/cargo-publish-workspace","owner":"mwrites","description":"Cargo command to publish a workspace","archived":false,"fork":false,"pushed_at":"2024-05-16T21:57:45.000Z","size":24,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-18T16:13:58.319Z","etag":null,"topics":["cargo","cargo-subcommand","crates","publish","rust"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/cargo-publish-workspace-v2","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/mwrites.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":"2023-04-05T14:02:56.000Z","updated_at":"2024-11-06T03:34:16.000Z","dependencies_parsed_at":"2024-10-28T15:20:54.168Z","dependency_job_id":null,"html_url":"https://github.com/mwrites/cargo-publish-workspace","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwrites%2Fcargo-publish-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwrites%2Fcargo-publish-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwrites%2Fcargo-publish-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mwrites%2Fcargo-publish-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mwrites","download_url":"https://codeload.github.com/mwrites/cargo-publish-workspace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245043890,"owners_count":20551845,"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":["cargo","cargo-subcommand","crates","publish","rust"],"created_at":"2024-10-11T01:29:39.677Z","updated_at":"2025-03-23T01:31:03.596Z","avatar_url":"https://github.com/mwrites.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cargo publish-workspace\n\nThis tool extends Cargo to allow you to publish a workspace, a rust mono repo.\n\n## Installation\n\nEnsure that you have a fairly recent version of rust/cargo installed. On Ubuntu you would also need to install `libssl-dev` and `pkg-config` packages.\n\n```console,ignore\n$ cargo install cargo-publish-workspace-v2\n```\n\n## Usage\n```console\n$ cargo publish-workspace --help\nUsage: cargo publish-workspace [OPTIONS] --crate-prefix \u003cCRATE_PREFIX\u003e [-- \u003ccargo-publish-args\u003e...]\n\nArguments:\n  [cargo-publish-args]...  Additional arguments to pass to 'cargo publish'\n\nOptions:\n  -p, --crate-prefix \u003cCRATE_PREFIX\u003e                    The prefix of the crates to publish, e.g. 'my-repo-crate-'\n      --dry-run                                        Run without publishing, same as --show-order\n      --show-order                                     Only display the order of crates to be published\n      --target-version \u003cTARGET_VERSION\u003e                Specify the version to use instead of CI_TAG environment variable\n      --aligned-versions-only                          Verify that every Cargo.toml version are aligned with the version to publish\n      --token \u003cTOKEN\u003e                                  Specify the token to use instead of CARGO_REGISTRY_TOKEN environment variable\n      --exclude \u003cEXCLUDE\u003e                              Crates to exclude and not modify (arg can be supplied multiple times)\n      --verify-upload-retries \u003cVERIFY_UPLOAD_RETRIES\u003e  The number of retries to attempt when verifying the upload of a crate [default: 30]\n  -h, --help                                           Print help\n  -V, --version                                        Print version\n```\n\n## Examples\n\nPublish\n```console\n$ cd my-mono-repo\n$ cargo publish-workspace --target-version 1.0.0 --token CARGO_REGISTRY_TOKEN --crate-prefix PREFIX\n```\n\nDry run and show order of crates to be published\n```console\n$ cd my-mono-repo\n$ cargo publish-workspace --crate-prefix mat-clockwork --show-order\n```\n```console\n    Finished show dependencies order\n0. mat-clockwork-utils\n1. mat-clockwork-cron\n2. mat-clockwork-thread-program-v1\n3. mat-clockwork-network-program\n```\n\nExcluding a crate from being published\n```console\ncargo publish-workspace --target-version 1.0.0 --token CARGO_REGISTRY_TOKEN --crate-prefix PREFIX --exclude crate-1 --exclude crate-2\n```\n\u003e You can also set `publish = false` in the crate Cargo.toml\n\n## Publishing From GitHub Action\nThis tool has been made to work with a CI such as GitHub Action.\nMake sure to setup the GitHub secrets variable for `CARGO_REGISTRY_TOKEN` with the appropriate value.\n- Version will be inferred from the $CI_TAG environment variable\n- Token will be inferred from the $CARGO_REGISTRY_TOKEN environment variable\n```console\ncargo publish-workspace --crate-prefix PREFIX\n```\n\n## License\n\nApache-2.0/MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwrites%2Fcargo-publish-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmwrites%2Fcargo-publish-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmwrites%2Fcargo-publish-workspace/lists"}