README: add note on version bumps

Since these packages are a bit "special", the way they should be
bumped is now specified in the README. I hope the explanation is clear
enough.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2024-11-11 11:14:48 +01:00
parent c7aab1b9b7
commit 8a35f2e4d5

View File

@ -11,3 +11,31 @@ NOTE: You may need to adapt the perl version number in this path:
``` ```
Then just restart pvedaemon/pveproxy after running `make pve`. Then just restart pvedaemon/pveproxy after running `make pve`.
# Version Bumps
## TL;DR
- Common *code* changes -> bump the *products*, *not* the common package.
- Common *package list* changes -> bump common AND products
(That's the `$(PERLMOD_PACKAGES)` list in `common/pkg/Makefile`)
- On breaking changes to the common code, both PVE and PMG should be bumped along with the common
package which should declare its `Depends`/`Breaks` accordingly.
## The `common` package.
This package only provides the "list" of packages the common code contains, but does not by itself
provide a *library*. In other words, this only provides a bunch of `.pm` files which cause whichever
product-specific library is available to be loaded.
The rust code in the common directory is compiled as part of the product libraries. Those libraries
actually provide both the product specific as well as the common perl "packages" via the library.
## The product packages.
These are the actual libraries. Their source code both "include" the `common` rust code by way of a
symlink (but when a source package is created, that symlink is replaced by a *copy* of the common
dir), so building them locally with `cargo build` should use the `common` code from git.
These provide the actual *functionality* the `common` package declares to exist (via its `.pm`
files), in addition to the product specific parts.