X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=README.rst;h=2288f797a9cff260a04a909f1f249717520fe55c;hb=6eed8ed992852947000496c8dd1f3684b29ed2d0;hp=297b82a673c33493839fb47663b092656ccabb63;hpb=485ed1a2a2430c238141d41d6c133a3a7732715a;p=proxmox.git diff --git a/README.rst b/README.rst index 297b82a6..2288f797 100644 --- a/README.rst +++ b/README.rst @@ -14,12 +14,11 @@ the dependency needs to point directly to a path or git source. Steps for Releases ================== -- Cargo.toml updates: - - Bump all modified crate versions. - - Update all the other crates' Cargo.toml to depend on the new versions if - required, then bump their version as well if not already done. -- Update debian/changelog files in all the crates updated above. +- Run ./bump.sh [patch|minor|major|] +-- Fill out changelog +-- Confirm bump commit - Build packages with `make deb`. +-- Don't forget to commit updated d/control! Adding Crates ============= @@ -34,5 +33,48 @@ Adding Crates license.workspace = true edition.workspace = true exclude.workspace = true + repository.workspace = true - Add a meaningful ``description`` - Copy ``debian/copyright`` and ``debian/debcargo.toml`` from another subcrate. + +Adding a new Dependency +======================= + +1) At the top level: + - Add it to ``[workspace.dependencies]`` specifying the version and any + features that should be enabled throughout the workspace + +2) In each member's ``Cargo.toml``: + - Add it to the desired dependencies section with ``workspace = true`` and no + version specified. + - If this member requires additional features, add only the extra features to + the member dependency. + +Updating a Dependency's Version +=============================== + +1) At the top level: + - Bump the version in ``[workspace.dependencies]`` as desired. + - Check for deprecations or breakage throughout the workspace. + +Notes on Workspace Inheritance +============================== + +Common metadata (like authors, license, ..) are inherited throughout the +workspace. If new fields are added that are identical for all crates, they +should be defined in the top-level ``Cargo.toml`` file's +``[workspace.package]`` section, and inherited in all members explicitly by +setting ``FIELD.workspace = true`` in the member's ``[package]`` section. + +Dependency information is also inherited throughout the workspace, allowing a +single dependency specification in the top-level Cargo.toml file to be used by +all members. + +Some restrictions apply: +- features can only be added in members, never removed (this includes + ``default_features = false``!) + - the base feature set at the workspace level should be the minimum (possibly + empty!) set required by all members +- workspace dependency specifications cannot include ``optional`` + - if needed, the ``optional`` flag needs to be set at the member level when + using a workspace dependency