#872 Bootstrapping guidelines updates
Closed by ignatenkobrain. Opened by vondruch.
vondruch/packaging-committee disable-bootstrap-suffix  into  master

Download 872.patch

This PR is mostly followup of [0]. It contains 3 commits which can be cherry-picked if needed.

1) First I wanted to document a way to disable the ~boostrap suffix if needed [1].
2) Then I think we should get back to bcond_with macro, although the syntax is not really understandable.
3) The last commit tries to describe how to do the bootstrap build. I used it in practice for rubygem-cucumber bootstrap [2, 3].

Also, I have considered if part of this bellongs to Dist Tag guidelines, not sure.

One missing bit is that this could be nice to use together with modules, because modules allow to define macros. So with_bootstrap 1 defined in module allows to bootstrap all components of module and later one (revert) commit to remove the macro definition enables the official build without any change to other packages. Not sure I really want to have it documented.

rebased onto effad70c7b8f2d9f736e5e14f712ad71a6dcb0a6

@vondruch what do you think if I apply following diff on top?

diff --git a/guidelines/modules/ROOT/pages/index.adoc b/guidelines/modules/ROOT/pages/index.adoc
index dfdd6e3..12c9766 100644
--- a/guidelines/modules/ROOT/pages/index.adoc
+++ b/guidelines/modules/ROOT/pages/index.adoc
@@ -1588,12 +1588,24 @@ make check
 %endif
 ....
-As a nice side-effect, when bootstrapping mode is enabled, the `~bootstrap` suffix is appended to the dist tag. This avoids the need to bump release between bootstrap and final build. You can temporarily enable bootstrapping by commit, which places `%global with_bootstrap 1` after `%bcond_with bootstrap` and later reverting the commit to do final build. You can disable the automatic suffix addition by specifying `%define _bootstrap %nil` in your spec file.
+TIP: Since Fedora 30,
+     as a nice side-effect,
+     when bootstrapping mode is enabled,
+     the `+~bootstrap+` suffix is appended to the dist tag.
+     This avoids the need to bump release
+     between bootsrap and final build.
+     You can temporarily enable bootstrapping by commit,
+     which changes `+%bcond_with bootstrap+` to `+%bcond_without bootstrap+`
+     and later reverting the commit to do final build.
+
+TIP: Since Fedora 31,
+     you can disable the automatic suffix addition
+     by specifying `+%global __bootstrap %{nil}+` in your spec file.
 If your package explicitly `+Provides:+` some functionality that is missing when bootstrapped, then that `+Provides:+` should look like:
 ....
-%if ! 0%{?bootstrap}
+%if %{without bootstrap}
 Provides: bar(some_functionality)
 %endif
 ....

Metadata Update from @ignatenkobrain:
- Request assigned

Merged.

Pull-Request has been closed by ignatenkobrain

@vondruch what do you think if I apply following diff on top?
+TIP: Since Fedora 30,

I think it was agreed that guidelines apply to Rawhide. Not sure mentioning F30 helps here.

....
-%if ! 0%{?bootstrap}
+%if %{without bootstrap}
Provides: bar(some_functionality)
%endif
....

Have I missed this one? 😕

The guidelines apply to Fedora; we do attempt to indicate when something does not work on all live Fedora releases. We don't generally indicate things which apply only to EPEL, instead moving those sections into the EPEL guidelines.

However, I'm not sure that %__bootstrap is actually live in F30. I got so fed up with the stupid signed commits thing that I gave up trying to get it pushed.

The guidelines apply to Fedora; we do attempt to indicate when something does not work on all live Fedora releases.

Np. It won't hurt :)

However, I'm not sure that %__bootstrap is actually live in F30. I got so fed up with the stupid signed commits thing that I gave up trying to get it pushed.

No worries, the guidelines say: "Since Fedora 31, you can disable the automatic suffix addition by specifying %global __bootstrap %{nil} in your spec file. "

Metadata