diff mbox series

dev-manual: add command to force a recipe re-compile

Message ID 06ee4e3f-d477-0b55-be14-ff74aa2383c1@crashcourse.ca
State New
Headers show
Series dev-manual: add command to force a recipe re-compile | expand

Commit Message

Robert P. J. Day June 9, 2026, 7:20 p.m. UTC
Since this section talks about how to modify unpacked, temporary
source code, it only makes sense to tell readers how to re-build that
modified source.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>

---

Comments

Alexander Kanavin June 10, 2026, 7:27 a.m. UTC | #1
On Tue, 9 Jun 2026 at 21:20, Robert P. J. Day via
lists.yoctoproject.org <rpjday=crashcourse.ca@lists.yoctoproject.org>
wrote:
> --- a/documentation/dev-manual/temporary-source-code.rst
> +++ b/documentation/dev-manual/temporary-source-code.rst
> @@ -65,3 +65,11 @@ build system uses to build the package would be as follows::
>
>     project/build/tmp/work/qemux86-poky-linux/foo/1.3.0
>
> +Finally, if you make some changes to a recipe's unpacked source code,
> +you can force a re-compile of that recipe with the command::
> +
> +   $ bitbake -c compile -f recipe-name
> +
> +The ``-f`` option in the above forces that task to be re-run
> +(invalidating any existing stamp file).
> +

While explaining where to find the unpacked source is okay, taking it
further and providing a way to force-build it is not a good advice. If
someone needs to modify and build source like this, they should be
using 'devtool modify'.

Alex
Robert P. J. Day June 10, 2026, 8:36 a.m. UTC | #2
On Wed, 10 Jun 2026, Alexander Kanavin wrote:

> On Tue, 9 Jun 2026 at 21:20, Robert P. J. Day via
> lists.yoctoproject.org <rpjday=crashcourse.ca@lists.yoctoproject.org>
> wrote:
> > --- a/documentation/dev-manual/temporary-source-code.rst
> > +++ b/documentation/dev-manual/temporary-source-code.rst
> > @@ -65,3 +65,11 @@ build system uses to build the package would be as follows::
> >
> >     project/build/tmp/work/qemux86-poky-linux/foo/1.3.0
> >
> > +Finally, if you make some changes to a recipe's unpacked source code,
> > +you can force a re-compile of that recipe with the command::
> > +
> > +   $ bitbake -c compile -f recipe-name
> > +
> > +The ``-f`` option in the above forces that task to be re-run
> > +(invalidating any existing stamp file).
> > +
>
> While explaining where to find the unpacked source is okay, taking it
> further and providing a way to force-build it is not a good advice. If
> someone needs to modify and build source like this, they should be
> using 'devtool modify'.

  i actually thought about adding a link to devtool, along the lines
of "while this technique works, devtool modify is now the recommended
way" or something like that, at least as a historical reference for
people who have been doing it the bitbake way all this time to let
them know there's a better way.

rday
Quentin Schulz June 10, 2026, 9:24 a.m. UTC | #3
On 6/10/26 10:36 AM, Robert P. J. Day via lists.yoctoproject.org wrote:
> On Wed, 10 Jun 2026, Alexander Kanavin wrote:
> 
>> On Tue, 9 Jun 2026 at 21:20, Robert P. J. Day via
>> lists.yoctoproject.org <rpjday=crashcourse.ca@lists.yoctoproject.org>
>> wrote:
>>> --- a/documentation/dev-manual/temporary-source-code.rst
>>> +++ b/documentation/dev-manual/temporary-source-code.rst
>>> @@ -65,3 +65,11 @@ build system uses to build the package would be as follows::
>>>
>>>      project/build/tmp/work/qemux86-poky-linux/foo/1.3.0
>>>
>>> +Finally, if you make some changes to a recipe's unpacked source code,
>>> +you can force a re-compile of that recipe with the command::
>>> +
>>> +   $ bitbake -c compile -f recipe-name
>>> +
>>> +The ``-f`` option in the above forces that task to be re-run
>>> +(invalidating any existing stamp file).
>>> +
>>
>> While explaining where to find the unpacked source is okay, taking it
>> further and providing a way to force-build it is not a good advice. If
>> someone needs to modify and build source like this, they should be
>> using 'devtool modify'.
> 
>    i actually thought about adding a link to devtool, along the lines
> of "while this technique works, devtool modify is now the recommended
> way" or something like that, at least as a historical reference for
> people who have been doing it the bitbake way all this time to let
> them know there's a better way.
> 

Do not modify a recipe's unpacked source code, it's the best way to have 
your changes lost. There are non-negligible chances that it'll end up 
being deleted and unpacked again (e.g. because the cache is outdated via 
its dependencies or the recipe parsing resulted in a rebuild of the recipe).

Using -f also taints the build and you need to clean the sstate-cache 
for this recipe to recover from it last time I checked, which is 
something we don't like recommending to people (if you need to clean the 
sstate-cache, either something's wrong with your recipe or there's a bug 
we need to fix), so I don't think documenting this enormous footgun is a 
good thing.

Cheers,
Quentin
Alexander Kanavin June 10, 2026, 9:26 a.m. UTC | #4
On Wed, 10 Jun 2026 at 11:24, Quentin Schulz <quentin.schulz@cherry.de> wrote:
> Do not modify a recipe's unpacked source code, it's the best way to have
> your changes lost. There are non-negligible chances that it'll end up
> being deleted and unpacked again (e.g. because the cache is outdated via
> its dependencies or the recipe parsing resulted in a rebuild of the recipe).
>
> Using -f also taints the build and you need to clean the sstate-cache
> for this recipe to recover from it last time I checked, which is
> something we don't like recommending to people (if you need to clean the
> sstate-cache, either something's wrong with your recipe or there's a bug
> we need to fix), so I don't think documenting this enormous footgun is a
> good thing.

I agree, I'd rather not mention it at all, and point people directly to devtool.

Alex
Robert P. J. Day June 10, 2026, 9:50 a.m. UTC | #5
On Wed, 10 Jun 2026, Quentin Schulz via lists.yoctoproject.org wrote:

>
>
> On 6/10/26 10:36 AM, Robert P. J. Day via lists.yoctoproject.org wrote:
> > On Wed, 10 Jun 2026, Alexander Kanavin wrote:
> >
> > > On Tue, 9 Jun 2026 at 21:20, Robert P. J. Day via
> > > lists.yoctoproject.org <rpjday=crashcourse.ca@lists.yoctoproject.org>
> > > wrote:
> > > > --- a/documentation/dev-manual/temporary-source-code.rst
> > > > +++ b/documentation/dev-manual/temporary-source-code.rst
> > > > @@ -65,3 +65,11 @@ build system uses to build the package would be as
> > > > follows::
> > > >
> > > >      project/build/tmp/work/qemux86-poky-linux/foo/1.3.0
> > > >
> > > > +Finally, if you make some changes to a recipe's unpacked source code,
> > > > +you can force a re-compile of that recipe with the command::
> > > > +
> > > > +   $ bitbake -c compile -f recipe-name
> > > > +
> > > > +The ``-f`` option in the above forces that task to be re-run
> > > > +(invalidating any existing stamp file).
> > > > +
> > >
> > > While explaining where to find the unpacked source is okay, taking it
> > > further and providing a way to force-build it is not a good advice. If
> > > someone needs to modify and build source like this, they should be
> > > using 'devtool modify'.
> >
> >    i actually thought about adding a link to devtool, along the lines
> > of "while this technique works, devtool modify is now the recommended
> > way" or something like that, at least as a historical reference for
> > people who have been doing it the bitbake way all this time to let
> > them know there's a better way.
> >
>
> Do not modify a recipe's unpacked source code, it's the best way to have your
> changes lost. There are non-negligible chances that it'll end up being deleted
> and unpacked again (e.g. because the cache is outdated via its dependencies or
> the recipe parsing resulted in a rebuild of the recipe).
>
> Using -f also taints the build and you need to clean the sstate-cache for this
> recipe to recover from it last time I checked, which is something we don't
> like recommending to people (if you need to clean the sstate-cache, either
> something's wrong with your recipe or there's a bug we need to fix), so I
> don't think documenting this enormous footgun is a good thing.

  i will point out that that very command is (sort of) recommended in
the section on quilt (see point 6.):

  https://docs.yoctoproject.org/dev-manual/quilt.html

i will ponder further but i think it's important to mention the
"bitbake" variation if only to say, "this is the way it was done
*historically*, but that way is fraught with peril and you are
vigorously encouraged to use the 'devtool' utility." because there are
certainly developers who still use the bitbake technique who should be
warned off of it.

  or is this not worth the trouble?

rday
Robert P. J. Day June 10, 2026, 9:51 a.m. UTC | #6
On Wed, 10 Jun 2026, Alexander Kanavin wrote:

> On Wed, 10 Jun 2026 at 11:24, Quentin Schulz <quentin.schulz@cherry.de> wrote:
> > Do not modify a recipe's unpacked source code, it's the best way to have
> > your changes lost. There are non-negligible chances that it'll end up
> > being deleted and unpacked again (e.g. because the cache is outdated via
> > its dependencies or the recipe parsing resulted in a rebuild of the recipe).
> >
> > Using -f also taints the build and you need to clean the sstate-cache
> > for this recipe to recover from it last time I checked, which is
> > something we don't like recommending to people (if you need to clean the
> > sstate-cache, either something's wrong with your recipe or there's a bug
> > we need to fix), so I don't think documenting this enormous footgun is a
> > good thing.
>
> I agree, I'd rather not mention it at all, and point people directly to devtool.

  ok, i'll add that but, as i just mentioned, it's there in the quilt
section as well.

rday
Antonin Godard June 10, 2026, 12:54 p.m. UTC | #7
On Wed Jun 10, 2026 at 11:51 AM CEST, Robert P. J. Day wrote:
> On Wed, 10 Jun 2026, Alexander Kanavin wrote:
>
>> On Wed, 10 Jun 2026 at 11:24, Quentin Schulz <quentin.schulz@cherry.de> wrote:
>> > Do not modify a recipe's unpacked source code, it's the best way to have
>> > your changes lost. There are non-negligible chances that it'll end up
>> > being deleted and unpacked again (e.g. because the cache is outdated via
>> > its dependencies or the recipe parsing resulted in a rebuild of the recipe).
>> >
>> > Using -f also taints the build and you need to clean the sstate-cache
>> > for this recipe to recover from it last time I checked, which is
>> > something we don't like recommending to people (if you need to clean the
>> > sstate-cache, either something's wrong with your recipe or there's a bug
>> > we need to fix), so I don't think documenting this enormous footgun is a
>> > good thing.
>>
>> I agree, I'd rather not mention it at all, and point people directly to devtool.
>
>   ok, i'll add that but, as i just mentioned, it's there in the quilt
> section as well.

I think keeping the Quilt document is fine and in this case the command makes
sense, however, it would be nice to inform users in this document that devtool
is available and friendlier. Could you add this note?

Antonin
Robert P. J. Day June 10, 2026, 12:59 p.m. UTC | #8
On Wed, 10 Jun 2026, Antonin Godard via lists.yoctoproject.org wrote:

> On Wed Jun 10, 2026 at 11:51 AM CEST, Robert P. J. Day wrote:
> > On Wed, 10 Jun 2026, Alexander Kanavin wrote:
> >
> >> On Wed, 10 Jun 2026 at 11:24, Quentin Schulz <quentin.schulz@cherry.de> wrote:
> >> > Do not modify a recipe's unpacked source code, it's the best way to have
> >> > your changes lost. There are non-negligible chances that it'll end up
> >> > being deleted and unpacked again (e.g. because the cache is outdated via
> >> > its dependencies or the recipe parsing resulted in a rebuild of the recipe).
> >> >
> >> > Using -f also taints the build and you need to clean the sstate-cache
> >> > for this recipe to recover from it last time I checked, which is
> >> > something we don't like recommending to people (if you need to clean the
> >> > sstate-cache, either something's wrong with your recipe or there's a bug
> >> > we need to fix), so I don't think documenting this enormous footgun is a
> >> > good thing.
> >>
> >> I agree, I'd rather not mention it at all, and point people directly to devtool.
> >
> >   ok, i'll add that but, as i just mentioned, it's there in the quilt
> > section as well.
>
> I think keeping the Quilt document is fine and in this case the
> command makes sense, however, it would be nice to inform users in
> this document that devtool is available and friendlier. Could you
> add this note?

  there is alreaady a note at the top of the quilt section
recommending devtool.

rday
Antonin Godard June 10, 2026, 1:13 p.m. UTC | #9
On Wed Jun 10, 2026 at 2:59 PM CEST, Robert P. J. Day wrote:
> On Wed, 10 Jun 2026, Antonin Godard via lists.yoctoproject.org wrote:
>
>> On Wed Jun 10, 2026 at 11:51 AM CEST, Robert P. J. Day wrote:
>> > On Wed, 10 Jun 2026, Alexander Kanavin wrote:
>> >
>> >> On Wed, 10 Jun 2026 at 11:24, Quentin Schulz <quentin.schulz@cherry.de> wrote:
>> >> > Do not modify a recipe's unpacked source code, it's the best way to have
>> >> > your changes lost. There are non-negligible chances that it'll end up
>> >> > being deleted and unpacked again (e.g. because the cache is outdated via
>> >> > its dependencies or the recipe parsing resulted in a rebuild of the recipe).
>> >> >
>> >> > Using -f also taints the build and you need to clean the sstate-cache
>> >> > for this recipe to recover from it last time I checked, which is
>> >> > something we don't like recommending to people (if you need to clean the
>> >> > sstate-cache, either something's wrong with your recipe or there's a bug
>> >> > we need to fix), so I don't think documenting this enormous footgun is a
>> >> > good thing.
>> >>
>> >> I agree, I'd rather not mention it at all, and point people directly to devtool.
>> >
>> >   ok, i'll add that but, as i just mentioned, it's there in the quilt
>> > section as well.
>>
>> I think keeping the Quilt document is fine and in this case the
>> command makes sense, however, it would be nice to inform users in
>> this document that devtool is available and friendlier. Could you
>> add this note?
>
>   there is alreaady a note at the top of the quilt section
> recommending devtool.

Ah perfect then.

Antonin
diff mbox series

Patch

diff --git a/documentation/dev-manual/temporary-source-code.rst b/documentation/dev-manual/temporary-source-code.rst
index aecd34099..26a96303e 100644
--- a/documentation/dev-manual/temporary-source-code.rst
+++ b/documentation/dev-manual/temporary-source-code.rst
@@ -65,3 +65,11 @@  build system uses to build the package would be as follows::

    project/build/tmp/work/qemux86-poky-linux/foo/1.3.0

+Finally, if you make some changes to a recipe's unpacked source code,
+you can force a re-compile of that recipe with the command::
+
+   $ bitbake -c compile -f recipe-name
+
+The ``-f`` option in the above forces that task to be re-run
+(invalidating any existing stamp file).
+