diff mbox series

dev-manual/packages.rst: pr server: fix and explain why r0.X increment on srcrev change

Message ID 20260120-pr-server-increment-details-v1-1-fa5d288def24@bootlin.com
State New
Headers show
Series dev-manual/packages.rst: pr server: fix and explain why r0.X increment on srcrev change | expand

Commit Message

Antonin Godard Jan. 20, 2026, 2:39 p.m. UTC
The current example of the SRCREV change triggering a gitX bump is
wrong, as both gitX and r0.X get incremented.

Why this is happening is explained in bug 15729, which I copy here:

> +gitX+ is indeed related to changes in the source code.
>
> r0.X is bumped each time the checksum of the do_package task of the
> simple-hello-world-git recipe changes. This happens here:
> https://git.openembedded.org/openembedded-core/tree/meta/classes-global/package.bbclass?id=235e6d49e5888ad04416219e10b6df91a738661a#n306
>
> This line sets the value of PRAUTO and represents the number X found in
> r0.X. It will in the end make it into EXTENDPRAUTO, which itself makes
> to PKGR == r0.X.
>
> This line calls getPR(version, pkgarch, checksum). Between test case 5
> and 6, only the checksum changes. This checksum is the checksum of the
> do_package task (gotten from get_do_package_hash() above).
>
> Now, let's dump what changed with regards to this task between two
> consecutive runs, using the sigdata file in build/tmp/stamps/:
>
> ```
> [...]
> Variable fetcher_hashes_dummyfunc value changed from '2650ad6714c3f3248abfe9d3daf1196f307ed494' to '4af682a50174f5deb0397847da97d7cdba4ad067'
> ```
>
> The last line shows that the value of fetcher_hashes_dummyfunc changed
> from '2650ad6714c3f3248abfe9d3daf1196f307ed494' to
> '4af682a50174f5deb0397847da97d7cdba4ad067'. Those are the commit hashes
> in the git history of the simple-hello-world-git repository.
>
> Now you can see why this 0.X gets bumped, is because of the SRCREV change.

Fix the example, and detail what gets changed and why.

[YOCTO #15729]

Cc: Robert Berger <pokylinux@reliableembeddedsystems.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/dev-manual/packages.rst | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)


---
base-commit: b8a56b8b2e8c0417b2f7204f80c79b05d95e9ce4
change-id: 20260120-pr-server-increment-details-3aa4ec0f6038

Comments

Quentin Schulz Jan. 20, 2026, 4:59 p.m. UTC | #1
Hi Antonin,

On 1/20/26 3:39 PM, Antonin Godard via lists.yoctoproject.org wrote:
> The current example of the SRCREV change triggering a gitX bump is
> wrong, as both gitX and r0.X get incremented.
> 
> Why this is happening is explained in bug 15729, which I copy here:
> 
>> +gitX+ is indeed related to changes in the source code.
>>
>> r0.X is bumped each time the checksum of the do_package task of the
>> simple-hello-world-git recipe changes. This happens here:
>> https://git.openembedded.org/openembedded-core/tree/meta/classes-global/package.bbclass?id=235e6d49e5888ad04416219e10b6df91a738661a#n306
>>
>> This line sets the value of PRAUTO and represents the number X found in
>> r0.X. It will in the end make it into EXTENDPRAUTO, which itself makes
>> to PKGR == r0.X.
>>
>> This line calls getPR(version, pkgarch, checksum). Between test case 5
>> and 6, only the checksum changes. This checksum is the checksum of the
>> do_package task (gotten from get_do_package_hash() above).
>>
>> Now, let's dump what changed with regards to this task between two
>> consecutive runs, using the sigdata file in build/tmp/stamps/:
>>
>> ```
>> [...]
>> Variable fetcher_hashes_dummyfunc value changed from '2650ad6714c3f3248abfe9d3daf1196f307ed494' to '4af682a50174f5deb0397847da97d7cdba4ad067'
>> ```
>>
>> The last line shows that the value of fetcher_hashes_dummyfunc changed
>> from '2650ad6714c3f3248abfe9d3daf1196f307ed494' to
>> '4af682a50174f5deb0397847da97d7cdba4ad067'. Those are the commit hashes
>> in the git history of the simple-hello-world-git repository.
>>
>> Now you can see why this 0.X gets bumped, is because of the SRCREV change.
> 
> Fix the example, and detail what gets changed and why.
> 
> [YOCTO #15729]
> 
> Cc: Robert Berger <pokylinux@reliableembeddedsystems.com>
> Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
> ---
>   documentation/dev-manual/packages.rst | 15 ++++++++++++++-
>   1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/documentation/dev-manual/packages.rst b/documentation/dev-manual/packages.rst
> index 8bd48c8e8..9c38bc39b 100644
> --- a/documentation/dev-manual/packages.rst
> +++ b/documentation/dev-manual/packages.rst
> @@ -275,7 +275,20 @@ with a number. The number used depends on the state of the PR Service:
>      .. code-block:: none
>   
>         hello-world-git_0.0+git0+b6558dd387-r0.0_armv7a-neon.ipk
> -      hello-world-git_0.0+git1+dd2f5c3565-r0.0_armv7a-neon.ipk
> +      hello-world-git_0.0+git1+dd2f5c3565-r0.1_armv7a-neon.ipk
> +
> +   Two numbers got incremented here:
> +
> +   -  ``gitX`` changed from ``git0`` to ``git1``. This is because there was a
> +      change in the source code (``SRCREV``).
> +
> +   -  ``r0.X`` changed from ``r0.0`` to ``r0.1``. This is because there was a
> +      change in the recipe, which ultimately the hash of the
> +      :ref:`ref-tasks-package` task (the variable ``SRCREV`` changed value).
> +

Missing verb in the second part of the sentence.

Cheers,
Quentin
diff mbox series

Patch

diff --git a/documentation/dev-manual/packages.rst b/documentation/dev-manual/packages.rst
index 8bd48c8e8..9c38bc39b 100644
--- a/documentation/dev-manual/packages.rst
+++ b/documentation/dev-manual/packages.rst
@@ -275,7 +275,20 @@  with a number. The number used depends on the state of the PR Service:
    .. code-block:: none
 
       hello-world-git_0.0+git0+b6558dd387-r0.0_armv7a-neon.ipk
-      hello-world-git_0.0+git1+dd2f5c3565-r0.0_armv7a-neon.ipk
+      hello-world-git_0.0+git1+dd2f5c3565-r0.1_armv7a-neon.ipk
+
+   Two numbers got incremented here:
+
+   -  ``gitX`` changed from ``git0`` to ``git1``. This is because there was a
+      change in the source code (``SRCREV``).
+
+   -  ``r0.X`` changed from ``r0.0`` to ``r0.1``. This is because there was a
+      change in the recipe, which ultimately the hash of the
+      :ref:`ref-tasks-package` task (the variable ``SRCREV`` changed value).
+
+      Anytime a recipe change triggers a change of the :ref:`ref-tasks-package`
+      task hash, this value is incremented. This means this value can be
+      incremented independently of ``gitX``.
 
 -  If PR Service is not enabled, the build system replaces the
    ``AUTOINC`` placeholder with zero (i.e. "0"). This results in