From: Chuck Lever <chuck.lever@oracle.com>
To: Daniel Gomez <da.gomez@kernel.org>, cel@kernel.org
Cc: kdevops@lists.linux.dev
Subject: Re: [RFC PATCH 2/2] Add the stable release candidate repo to the Linux git repos menu
Date: Thu, 13 Mar 2025 11:26:12 -0400 [thread overview]
Message-ID: <13f62faa-fed4-48eb-9102-3ad4e600ded5@oracle.com> (raw)
In-Reply-To: <upzhhun2waw5egughrlecu22upnvbbv4ajbndxor5pcwtnsp7b@qwkp2k3562rg>
On 3/13/25 11:11 AM, Daniel Gomez wrote:
> On Wed, Mar 12, 2025 at 02:50:01PM +0100, cel@kernel.org wrote:
>> From: Chuck Lever <chuck.lever@oracle.com>
>>
>> I have several nightly test runners that pull LTS release candidates
>> for testing. I have to hand-edit the Kconfig for each test runner
>> when switching from the master repo to a local mirror.
>>
>> I would like to get those to switch automatically over
>> to using a local mirror, when one is available.
>>
>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
>> ---
>> kconfigs/workflows/Kconfig.bootlinux | 4 ++
>> scripts/gen-refs-default.Makefile | 14 ++++-
>> scripts/gen-refs-user.Makefile | 18 +++++-
>> workflows/linux/Kconfig | 9 +++
>> workflows/linux/Kconfig.stable_rc | 31 ++++++++++
>> .../linux/refs/default/Kconfig.stable_rc | 56 +++++++++++++++++++
>> workflows/linux/refs/static/stable_rc.yaml | 30 ++++++++++
>> 7 files changed, 158 insertions(+), 4 deletions(-)
>> create mode 100644 workflows/linux/Kconfig.stable_rc
>> create mode 100644 workflows/linux/refs/default/Kconfig.stable_rc
>> create mode 100644 workflows/linux/refs/static/stable_rc.yaml
>>
>> diff --git a/kconfigs/workflows/Kconfig.bootlinux b/kconfigs/workflows/Kconfig.bootlinux
>> index 25bbe4ea7e47..a66e44ee8cb7 100644
>> --- a/kconfigs/workflows/Kconfig.bootlinux
>> +++ b/kconfigs/workflows/Kconfig.bootlinux
>> @@ -12,6 +12,10 @@ config HAVE_BOOTLINUX_TREE_STABLE_USER_REFS
>> bool
>> default $(shell, scripts/check_file_empty.sh workflows/linux/refs/user/Kconfig.stable)
>>
>> +config HAVE_BOOTLINUX_TREE_STABLE_RC_USER_REFS
>> + bool
>> + default $(shell, scripts/check_file_empty.sh workflows/linux/refs/user/Kconfig.stable_rc)
>> +
>> config HAVE_BOOTLINUX_TREE_MCGROF_LINUS_USER_REFS
>> bool
>> default $(shell, scripts/check_file_empty.sh workflows/linux/refs/user/Kconfig.mcgrof-linus)
>> diff --git a/scripts/gen-refs-default.Makefile b/scripts/gen-refs-default.Makefile
>> index c5d12e152cb4..b50e7c26e754 100644
>> --- a/scripts/gen-refs-default.Makefile
>> +++ b/scripts/gen-refs-default.Makefile
>> @@ -1,7 +1,7 @@
>> # SPDX-License-Identifier: copyleft-next-0.3.1
>>
>> -REF_DEF_OBJS := $(addprefix $(TOPDIR)/workflows/linux/refs/default/, Kconfig.linus Kconfig.next Kconfig.stable)
>> -REF_DEF_SRC := $(addprefix $(TOPDIR)/workflows/linux/refs/static/, linus.yaml next.yaml stable.yaml)
>> +REF_DEF_OBJS := $(addprefix $(TOPDIR)/workflows/linux/refs/default/, Kconfig.linus Kconfig.next Kconfig.stable Kconfig.stable_rc)
>> +REF_DEF_SRC := $(addprefix $(TOPDIR)/workflows/linux/refs/static/, linus.yaml next.yaml stable.yaml stable_rc.yaml)
>>
>> KRELEASES_FORCE := $(if $(filter --force,$(KRELEASES_FORCE)),--force,)
>>
>> @@ -35,6 +35,16 @@ $(TOPDIR)/workflows/linux/refs/default/Kconfig.stable: $(TOPDIR)/workflows/linux
>> kreleases \
>> --moniker stable
>>
>> +$(TOPDIR)/workflows/linux/refs/default/Kconfig.stable_rc: $(TOPDIR)/workflows/linux/refs/static/stable_rc.yaml
>> + $(Q)$(E) "Generating $@..."
>> + $(Q)./scripts/generate_refs.py \
>> + --prefix BOOTLINUX_TREE_STABLE_RC \
>> + --output workflows/linux/refs/default/Kconfig.stable_rc \
>> + --extra workflows/linux/refs/static/stable_rc.yaml \
>> + $(KRELEASES_FORCE) \
>> + kreleases \
>
> I think you need gitref instead of kreleases subcommand. kreleases pulls
> information from https://kernel.org/releases.json, and I don't see stable_rc
> moniker being part of it, right?
>
> That may explain why is not generating the configs properly.
>
> Then, the right location for this should be: scripts/gen-refs-user.Makefile as
> stable-rc tree is not part of the official kernel.org releases.
The next hunk below adds your recommended set-up to gen-refs-user. I
think what you're saying is that the gen-refs-default hunk should be
dropped, and I should rely on "make user-refs" instead of "make
default-refs" to populate the linux-stable-rc menu... ?
(no objection to that, I just am not yet sure of how this works)
> Posting the generate_refs help for subcommand context:
>
> python3 ./scripts/generate_refs.py -h
> usage: generate_refs.py [-h] [--debug] --output OUTPUT [--force] --prefix PREFIX [--extra EXTRA] {gitref,kreleases} ...
>
> Git Reference generate tool
>
> options:
> -h, --help show this help message and exit
> --debug debug
> --output OUTPUT output file
> --force always generate output file
> --prefix PREFIX the Kconfig CONFIG prefix to use (e.g. BOOTLINUX_TREE_LINUS)
> --extra EXTRA extra configs (yaml)
>
> subcommands:
> valid subcommands
>
> {gitref,kreleases} additional help
> gitref git-ref tool (git-ls-remote)
> kreleases kernel.org/releases.json
>
> Daniel
>
>> + --moniker stable_rc
>> +
>> PHONY += refs-default
>> refs-default: $(REF_DEF_OBJS) _gen-default-refs-development refs-user-clean
>>
>> diff --git a/scripts/gen-refs-user.Makefile b/scripts/gen-refs-user.Makefile
>> index 5c5df2f5417e..ed07b2df6d35 100644
>> --- a/scripts/gen-refs-user.Makefile
>> +++ b/scripts/gen-refs-user.Makefile
>> @@ -3,6 +3,7 @@
>> SRC_URI_HTTPS_LINUS = https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> SRC_URI_HTTPS_NEXT = https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
>> SRC_URI_HTTPS_STABLE = https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
>> +SRC_URI_HTTPS_STABLE_RC = https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
>>
>> SRC_URI_HTTPS_MCGROF_LINUS = https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git
>> SRC_URI_HTTPS_MCGROF_NEXT = https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git
>> @@ -17,6 +18,7 @@ SRC_URI_HTTPS_XFS = https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
>> REFS_TARGET_LINUS := gen_refs_linus
>> REFS_TARGET_NEXT := gen_refs_next
>> REFS_TARGET_STABLE := gen_refs_stable
>> +REFS_TARGET_STABLE_RC := gen_refs_stable_rc
>>
>> REFS_TARGET_DEVELOPMENT := gen_refs_mcgrof_linus
>> REFS_TARGET_DEVELOPMENT += gen_refs_mcgrof_next
>> @@ -68,6 +70,18 @@ gen_refs_stable:
>> --repo $(SRC_URI_HTTPS_STABLE) \
>> --refs $(REFS_COUNT)
>>
>> +PHONY += gen_refs_stable_rc
>> +gen_refs_stable_rc:
>> + $(Q)$(E) "Generating refs/$(REFS_DIR)/Kconfig.$(subst _,-,$(patsubst gen_refs_%,%,$@)) ($(REFS_COUNT) refs)..."
>> + $(Q)./scripts/generate_refs.py \
>> + --prefix BOOTLINUX_TREE_STABLE_RC \
>> + --output workflows/linux/refs/$(REFS_DIR)/Kconfig.stable_rc \
>> + --extra workflows/linux/refs/static/stable_rc.yaml \
>> + --force \
>> + gitref \
>> + --repo $(SRC_URI_HTTPS_STABLE_RC) \
>> + --refs $(REFS_COUNT)
>> +
>> PHONY += gen_refs_mcgrof_linus
>> gen_refs_mcgrof_linus:
>> $(Q)$(E) "Generating refs/$(REFS_DIR)/Kconfig.$(subst _,-,$(patsubst gen_refs_%,%,$@)) ($(REFS_COUNT) refs)..."
>> @@ -183,8 +197,8 @@ refs-user-clean:
>> fi
>>
>> _gen-user-refs:
>> - $(Q)$(E) "Generating refs/user/Kconfig.{linus,next,stable,mcgrof-linus,mcgrof-next,btrfs-devel,cel-linux-jlayton-linux-kdevops-linus} files..."
>> - $(Q)$(MAKE) REFS_COUNT=15 REFS_DIR="user" $(REFS_TARGET_LINUS) $(REFS_TARGET_NEXT) $(REFS_TARGET_STABLE) $(REFS_TARGET_DEVELOPMENT)
>> + $(Q)$(E) "Generating refs/user/Kconfig.{linus,next,stable,stable_rc,mcgrof-linus,mcgrof-next,btrfs-devel,cel-linux-jlayton-linux-kdevops-linus} files..."
>> + $(Q)$(MAKE) REFS_COUNT=15 REFS_DIR="user" $(REFS_TARGET_LINUS) $(REFS_TARGET_NEXT) $(REFS_TARGET_STABLE) $(REFS_TARGET_STABLE_RC) $(REFS_TARGET_DEVELOPMENT)
>>
>> PHONY += refs-user
>> refs-user: _gen-user-refs
>> diff --git a/workflows/linux/Kconfig b/workflows/linux/Kconfig
>> index 6b496c56c762..8c4de4cc8ee2 100644
>> --- a/workflows/linux/Kconfig
>> +++ b/workflows/linux/Kconfig
>> @@ -126,6 +126,11 @@ config BOOTLINUX_STABLE
>> help
>> This will let you choose from stable Linux trees only.
>>
>> +config BOOTLINUX_STABLE_RC
>> + bool "Stable Linux release candidates"
>> + help
>> + This will let you choose from stable Linux release candidates only.
>> +
>> config BOOTLINUX_DEV
>> bool "Development Linux releases"
>> help
>> @@ -141,6 +146,7 @@ endchoice
>>
>> source "workflows/linux/Kconfig.linus"
>> source "workflows/linux/Kconfig.stable"
>> +source "workflows/linux/Kconfig.stable_rc"
>> source "workflows/linux/Kconfig.dev"
>> source "workflows/linux/Kconfig.modules"
>> source "workflows/linux/Kconfig.next"
>> @@ -185,6 +191,7 @@ config BOOTLINUX_TREE_NAME
>> string
>> default BOOTLINUX_TREE_LINUS_NAME if BOOTLINUX_TREE_LINUS
>> default BOOTLINUX_TREE_STABLE_NAME if BOOTLINUX_TREE_STABLE
>> + default BOOTLINUX_TREE_STABLE_RC_NAME if BOOTLINUX_TREE_STABLE_RC
>> default BOOTLINUX_TREE_NEXT_NAME if BOOTLINUX_TREE_NEXT
>> default BOOTLINUX_TREE_BTRFS_DEVEL_NAME if BOOTLINUX_TREE_BTRFS_DEVEL
>> default BOOTLINUX_TREE_KDEVOPS_NAME if BOOTLINUX_TREE_KDEVOPS_LINUS
>> @@ -200,6 +207,7 @@ config BOOTLINUX_TREE
>> string
>> default BOOTLINUX_TREE_LINUS_URL if BOOTLINUX_TREE_LINUS
>> default BOOTLINUX_TREE_STABLE_URL if BOOTLINUX_TREE_STABLE
>> + default BOOTLINUX_TREE_STABLE_RC_URL if BOOTLINUX_TREE_STABLE_RC
>> default BOOTLINUX_TREE_NEXT_URL if BOOTLINUX_TREE_NEXT
>> default BOOTLINUX_TREE_MCGROF_URL if BOOTLINUX_TREE_MCGROF
>> default BOOTLINUX_TREE_MODULES_URL if BOOTLINUX_TREE_MODULES
>> @@ -248,6 +256,7 @@ config BOOTLINUX_TREE_REF
>> string
>> default BOOTLINUX_TREE_LINUS_REF if BOOTLINUX_TREE_LINUS
>> default BOOTLINUX_TREE_STABLE_REF if BOOTLINUX_STABLE
>> + default BOOTLINUX_TREE_STABLE_RC_REF if BOOTLINUX_STABLE_RC
>> default BOOTLINUX_TREE_NEXT_REF if BOOTLINUX_TREE_NEXT
>> default BOOTLINUX_TREE_VFS_REF if BOOTLINUX_TREE_VFS
>> default BOOTLINUX_TREE_XFS_REF if BOOTLINUX_TREE_XFS
>> diff --git a/workflows/linux/Kconfig.stable_rc b/workflows/linux/Kconfig.stable_rc
>> new file mode 100644
>> index 000000000000..8bcb7a2fba61
>> --- /dev/null
>> +++ b/workflows/linux/Kconfig.stable_rc
>> @@ -0,0 +1,31 @@
>> +if BOOTLINUX_STABLE_RC
>> +
>> +choice
>> + prompt "Linux stable release candidate tree to use"
>> + default BOOTLINUX_TREE_STABLE_RC
>> +
>> +config BOOTLINUX_TREE_STABLE_RC
>> + bool "linux-stable-rc"
>> + help
>> + Use the linux-stable release candidate tree.
>> +
>> +endchoice
>> +
>> +if BOOTLINUX_TREE_STABLE_RC
>> +
>> +source "workflows/linux/refs/default/Kconfig.stable_rc"
>> +source "workflows/linux/refs/user/Kconfig.stable_rc"
>> +
>> +endif # BOOTLINUX_TREE_STABLE_RC
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_NAME
>> + string
>> + default "linux-stable-rc" if BOOTLINUX_TREE_STABLE_RC
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_URL
>> + string
>> + default DEFAULT_STABLE_RC_HTTPS_URL if !USE_LOCAL_LINUX_MIRROR
>> + default $(shell, scripts/append-makefile-vars.sh git:// $(KDEVOPS_DEFAULT_BRIDGE_IP_GUESTFS) /mirror/linux-stable-rc.git) if USE_LIBVIRT_MIRROR && !BOOTLINUX_9P && GUESTFS
>> + default "/mirror/linux-stable-rc.git" if USE_LIBVIRT_MIRROR && BOOTLINUX_9P
>> +
>> +endif # BOOTLINUX_STABLE_RC
>> diff --git a/workflows/linux/refs/default/Kconfig.stable_rc b/workflows/linux/refs/default/Kconfig.stable_rc
>> new file mode 100644
>> index 000000000000..84495567d280
>> --- /dev/null
>> +++ b/workflows/linux/refs/default/Kconfig.stable_rc
>> @@ -0,0 +1,56 @@
>> +# SPDX-License-Identifier: copyleft-next-0.3.1
>> +# Automatically generated file
>> +
>> +if !HAVE_BOOTLINUX_TREE_STABLE_RC_USER_REFS
>> +
>> +choice
>> + prompt "Tag or branch to use"
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_54
>> + bool "queue/5.4"
>> + help
>> + Pull the queue/5.4 branch.
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_510
>> + bool "queue/5.10"
>> + help
>> + Pull the queue/5.10 branch.
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_515
>> + bool "queue/5.15"
>> + help
>> + Pull the queue/5.15 branch.
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_61
>> + bool "queue/6.1"
>> + help
>> + Pull the queue/6.1 branch.
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_66
>> + bool "queue/6.6"
>> + help
>> + Pull the queue/6.6 branch.
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_612
>> + bool "queue/6.12"
>> + help
>> + Pull the queue/6.12 branch.
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_613
>> + bool "queue/6.13"
>> + help
>> + Pull the queue/6.13 branch.
>> +
>> +endchoice
>> +
>> +config BOOTLINUX_TREE_STABLE_RC_REF
>> + string
>> + default "queue/5.4" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_54
>> + default "queue/5.10" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_510
>> + default "queue/5.15" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_515
>> + default "queue/6.1" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_61
>> + default "queue/6.6" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_66
>> + default "queue/6.12" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_612
>> + default "queue/6.13" if BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_613
>> +
>> +endif # !HAVE_BOOTLINUX_TREE_STABLE_RC_USER_REFS
>> diff --git a/workflows/linux/refs/static/stable_rc.yaml b/workflows/linux/refs/static/stable_rc.yaml
>> new file mode 100644
>> index 000000000000..a7d82977a04a
>> --- /dev/null
>> +++ b/workflows/linux/refs/static/stable_rc.yaml
>> @@ -0,0 +1,30 @@
>> +---
>> +configs:
>> + - queue-5.4:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_54
>> + ref: "queue/5.4"
>> + help: "Pull the queue/5.4 branch."
>> + - queue-5.10:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_510
>> + ref: "queue/5.10"
>> + help: "Pull the queue/5.10 branch."
>> + - queue-5.15:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_515
>> + ref: "queue/5.15"
>> + help: "Pull the queue/5.15 branch."
>> + - queue-6.1:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_61
>> + ref: "queue/6.1"
>> + help: "Pull the queue/6.1 branch."
>> + - queue-6.6:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_66
>> + ref: "queue/6.6"
>> + help: "Pull the queue/6.6 branch."
>> + - queue-6.12:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_612
>> + ref: "queue/6.12"
>> + help: "Pull the queue/6.12 branch."
>> + - queue-6.13:
>> + config: BOOTLINUX_TREE_STABLE_RC_REF_QUEUE_613
>> + ref: "queue/6.13"
>> + help: "Pull the queue/6.13 branch."
>> --
>> 2.48.1
>>
--
Chuck Lever
next prev parent reply other threads:[~2025-03-13 15:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-12 18:49 [RFC PATCH 0/2] Add defaults refs for linux-stable-rc cel
2025-03-12 18:50 ` [RFC PATCH 1/2] linux-mirror: Enable choice of clone protocol for stable-rc tree cel
2025-03-12 18:50 ` [RFC PATCH 2/2] Add the stable release candidate repo to the Linux git repos menu cel
2025-03-13 15:11 ` Daniel Gomez
2025-03-13 15:26 ` Chuck Lever [this message]
2025-03-13 20:13 ` Daniel Gomez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13f62faa-fed4-48eb-9102-3ad4e600ded5@oracle.com \
--to=chuck.lever@oracle.com \
--cc=cel@kernel.org \
--cc=da.gomez@kernel.org \
--cc=kdevops@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox