Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
999bbec
Allow upgrades of almalinux (AlmaLinux OS)
yuravk Jun 27, 2025
c9686f2
Skip RHSM related actions on non-RHEL systems
matejmatuska Jul 15, 2025
63e3722
Do not report unhandled RHSM release on non-RHEL systems
matejmatuska Jul 17, 2025
cf8ffe4
Adjust DNF stream variable
karolinku Jul 15, 2025
223f87c
data: update data files 20250729 (#1409)
leapp-bot Aug 6, 2025
22a6884
fix: get_distro_id returns version instead of distro name
Aug 6, 2025
d822cb7
feat(fast_lint): execute isort
Aug 6, 2025
32f884a
Update upgrade path: Add 9.7-10.1
karolinku Aug 6, 2025
c24cb48
Enable new default IPU path 8.10 -> 9.7 (#1415)
pirat89 Aug 7, 2025
f1462a0
Enable EUS channels on the 810to94 upgrade tests (#1416)
mmacura311 Aug 8, 2025
dbd43f2
Remove obsolete RPM GPG key during CS IPU 9to10
matejmatuska Jul 18, 2025
157cd9f
Add SSSD actors for sss_ssh_knownhosts (#1397)
aplopez Aug 13, 2025
16b22b2
Update data files to a new version (Aug)
leapp-bot Aug 11, 2025
0979e66
feat: enable 9>10 SAP upgrades on AWS, Azure
Aug 12, 2025
fb72d91
Remove deprecated InstalledRedHatSignedRPM
matejmatuska Jul 8, 2025
e234d75
Deprecate InstalledUnsignedRPM in favor of new ThirdPartyRPM model
matejmatuska Jul 8, 2025
5a640a3
Generalize the check of third party RPMs
matejmatuska Jan 10, 2025
9665ad4
feat: scan source system's default boot entry
Aug 3, 2025
979a6dd
feat: scan default initramfs
Aug 4, 2025
6bbe30a
feat: inhibit when using missing dracut modules
Aug 4, 2025
85bf1f2
Add fapolicy rule for LEAPP during package installation
karolinku Aug 4, 2025
27b6d17
Release 0.23.0
pirat89 Aug 14, 2025
0500fe7
Add upgrade inhibitor for custom DNF pluginpath configuration
karolinku Aug 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 166 additions & 0 deletions .packit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ jobs:
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
LEAPP_TARGET_PRODUCT_CHANNEL: "EUS"

# On-demand minimal beaker tests
- &beaker-minimal-810to94
Expand All @@ -194,6 +195,7 @@ jobs:
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
LEAPP_TARGET_PRODUCT_CHANNEL: "EUS"

# On-demand kernel-rt tests
- &kernel-rt-810to94
Expand All @@ -220,6 +222,7 @@ jobs:
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.4"
LEAPP_TARGET_PRODUCT_CHANNEL: "EUS"

# Tests: 8.10 -> 9.6
- &sanity-810to96
Expand Down Expand Up @@ -295,6 +298,80 @@ jobs:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.6"

# Tests: 8.10 -> 9.7
- &sanity-810to97
<<: *sanity-abstract-8to9
trigger: pull_request
identifier: sanity-8.10to9.7
tf_extra_params:
test:
tmt:
plan_filter: 'tag:8to9 & tag:tier0 & enabled:true'
environments:
- tmt:
context:
distro: "rhel-8.10"
distro_target: "rhel-9.7"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.7"

# On-demand minimal beaker tests
- &beaker-minimal-810to97
<<: *beaker-minimal-8to9-abstract-ondemand
trigger: pull_request
labels:
- beaker-minimal
- beaker-minimal-8.10to9.7
- 8.10to9.7
identifier: sanity-8.10to9.7-beaker-minimal-ondemand
tf_extra_params:
test:
tmt:
plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
environments:
- tmt:
context:
distro: "rhel-8.10"
distro_target: "rhel-9.7"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.7"

# On-demand kernel-rt tests
- &kernel-rt-810to97
<<: *kernel-rt-abstract-8to9-ondemand
trigger: pull_request
labels:
- kernel-rt
- kernel-rt-8.10to9.7
- 8.10to9.7
identifier: sanity-8.10to9.7-kernel-rt-ondemand
tf_extra_params:
test:
tmt:
plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
environments:
- tmt:
context:
distro: "rhel-8.10"
distro_target: "rhel-9.7"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "8.10"
TARGET_RELEASE: "9.7"

# ###################################################################### #
# ############################## 9 TO 10 ################################ #
# ###################################################################### #
Expand Down Expand Up @@ -351,6 +428,9 @@ jobs:
<<: *sanity-abstract-9to10
trigger: pull_request
identifier: sanity-9.6to10.0
targets:
epel-9-x86_64:
distros: [RHEL-9.6.0-Nightly]
tf_extra_params:
test:
tmt:
Expand All @@ -377,6 +457,9 @@ jobs:
- beaker-minimal-9.6to10.0
- 9.6to10.0
identifier: sanity-9.6to10.0-beaker-minimal-ondemand
targets:
epel-9-x86_64:
distros: [RHEL-9.6-Nightly]
tf_extra_params:
test:
tmt:
Expand Down Expand Up @@ -419,3 +502,86 @@ jobs:
env:
SOURCE_RELEASE: "9.6"
TARGET_RELEASE: "10.0"

# Tests: 9.7 -> 10.1
- &sanity-97to101
<<: *sanity-abstract-9to10
trigger: pull_request
identifier: sanity-9.7to10.1
targets:
epel-9-x86_64:
distros: [RHEL-9.7.0-Nightly]
tf_extra_params:
test:
tmt:
plan_filter: 'tag:9to10 & tag:tier0 & enabled:true'
environments:
- tmt:
context:
distro: "rhel-9.7"
distro_target: "rhel-10.1"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "9.7"
TARGET_RELEASE: "10.1"

# On-demand minimal beaker tests
- &beaker-minimal-97to101
<<: *beaker-minimal-9to10-abstract-ondemand
trigger: pull_request
labels:
- beaker-minimal
- beaker-minimal-9.7to10.1
- 9.7to10.1
identifier: sanity-9.7to10.1-beaker-minimal-ondemand
targets:
epel-9-x86_64:
distros: [RHEL-9.7-Nightly]
tf_extra_params:
test:
tmt:
plan_filter: 'tag:8to9 & tag:partitioning & enabled:true'
environments:
- tmt:
context:
distro: "rhel-9.7"
distro_target: "rhel-10.1"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "9.7"
TARGET_RELEASE: "10.1"

# On-demand kernel-rt tests
- &kernel-rt-97to101
<<: *kernel-rt-abstract-9to10-ondemand
trigger: pull_request
labels:
- kernel-rt
- kernel-rt-9.7to10.1
- 9.7to10.1
identifier: sanity-9.7to10.1-kernel-rt-ondemand
targets:
epel-9-x86_64:
distros: [RHEL-9.7-Nightly]
tf_extra_params:
test:
tmt:
plan_filter: 'tag:8to9 & tag:kernel-rt & enabled:true'
environments:
- tmt:
context:
distro: "rhel-9.7"
distro_target: "rhel-10.1"
settings:
provisioning:
tags:
BusinessUnit: sst_upgrades@leapp_upstream_test
env:
SOURCE_RELEASE: "9.7"
TARGET_RELEASE: "10.1"
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,7 @@ fast_lint:
@. $(VENVNAME)/bin/activate; \
FILES_TO_LINT="$$(git diff --name-only $(MASTER_BRANCH) --diff-filter AMR | grep '\.py$$')"; \
if [[ -n "$$FILES_TO_LINT" ]]; then \
isort -c --diff $$FILES_TO_LINT && \
pylint -j 0 $$FILES_TO_LINT $(PYLINT_ARGS) && \
flake8 $$FILES_TO_LINT $(FLAKE8_ARGS); \
LINT_EXIT_CODE="$$?"; \
Expand Down
15 changes: 13 additions & 2 deletions commands/command_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,13 @@ class _VersionKind(str, Enum):
class DistroIDs(str, Enum):
RHEL = 'rhel'
CENTOS = 'centos'
ALMALINUX = 'almalinux'


_DISTRO_VERSION_FORMATS = {
DistroIDs.RHEL: VersionFormats.MAJOR_MINOR,
DistroIDs.CENTOS: VersionFormats.MAJOR_ONLY,
DistroIDs.ALMALINUX: VersionFormats.MAJOR_MINOR,
}
"""
Maps distro ID to the expected OS version format.
Expand Down Expand Up @@ -134,6 +136,16 @@ def get_os_release_version_id(filepath):
return _retrieve_os_release_contents(_os_release_path=filepath).get('VERSION_ID', '')


def get_distro_id():
"""
Retrieve the OS release ID from /etc/os-release.

:return: The OS release ID from /etc/os-release
:rtype: str
"""
return _retrieve_os_release_contents('/etc/os-release').get('ID', '')


def get_upgrade_paths_config():
# NOTE(ivasilev) Importing here not to have circular dependencies
from leapp.cli.commands.upgrade import util # noqa: C415; pylint: disable=import-outside-toplevel
Expand Down Expand Up @@ -203,8 +215,7 @@ def get_target_release(args):

target_ver = env_version_override or args.target
if target_ver:
os_release_contents = _retrieve_os_release_contents()
distro_id = os_release_contents.get('ID', '')
distro_id = get_distro_id()
expected_version_format = _DISTRO_VERSION_FORMATS.get(distro_id, VersionFormats.MAJOR_MINOR).value
assert_version_format(target_ver, expected_version_format, _VersionKind.TARGET)
return (target_ver, flavor)
Expand Down
8 changes: 6 additions & 2 deletions commands/preupgrade/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,12 @@
choices=list(util.EXPERIMENTAL_FEATURES), default=[])
@command_opt('debug', is_flag=True, help='Enable debug mode', inherit=False)
@command_opt('verbose', is_flag=True, help='Enable verbose logging', inherit=False)
@command_opt('no-rhsm', is_flag=True, help='Use only custom repositories and skip actions'
' with Red Hat Subscription Manager')
@command_opt(
'no-rhsm',
is_flag=True,
help='Use only custom repositories and skip actions with Red Hat Subscription Manager.'
' This only has effect on Red Hat Enterprise Linux systems.'
)
@command_opt('no-insights-register', is_flag=True, help='Do not register into Red Hat Insights')
@command_opt('no-rhsm-facts', is_flag=True, help='Do not store migration information using Red Hat '
'Subscription Manager. Automatically implied by --no-rhsm.')
Expand Down
8 changes: 6 additions & 2 deletions commands/upgrade/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,12 @@
choices=list(util.EXPERIMENTAL_FEATURES), default=[])
@command_opt('debug', is_flag=True, help='Enable debug mode', inherit=False)
@command_opt('verbose', is_flag=True, help='Enable verbose logging', inherit=False)
@command_opt('no-rhsm', is_flag=True, help='Use only custom repositories and skip actions'
' with Red Hat Subscription Manager')
@command_opt(
'no-rhsm',
is_flag=True,
help='Use only custom repositories and skip actions with Red Hat Subscription Manager.'
' This only has effect on Red Hat Enterprise Linux systems.'
)
@command_opt('no-insights-register', is_flag=True, help='Do not register into Red Hat Insights')
@command_opt('no-rhsm-facts', is_flag=True, help='Do not store migration information using Red Hat '
'Subscription Manager. Automatically implied by --no-rhsm.')
Expand Down
3 changes: 2 additions & 1 deletion commands/upgrade/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,8 @@ def prepare_configuration(args):
os.environ['LEAPP_EXPERIMENTAL'] = '1'

os.environ['LEAPP_UNSUPPORTED'] = '0' if os.getenv('LEAPP_UNSUPPORTED', '0') == '0' else '1'
if args.no_rhsm:
# force no rhsm on non-rhel systems, regardless of whether the binary is there
if args.no_rhsm or command_utils.get_distro_id() != 'rhel':
os.environ['LEAPP_NO_RHSM'] = '1'
elif not os.path.exists('/usr/sbin/subscription-manager'):
os.environ['LEAPP_NO_RHSM'] = '1'
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
project = 'leapp-repository'
copyright = '2025, Leapp team'
author = 'Leapp team'
release = '0.22.0'
release = '0.23.0'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand Down
11 changes: 8 additions & 3 deletions docs/source/libraries-and-api/deprecations-list.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Deprecated functionality
Deprecated functionality is listed under the first version that the functionality
is deprecated in. Note that functionality may be deprecated in later versions
but are not listed again.
is deprecated in. Note that functionality may be removed in later versions
but will not be listed again.
The dates in brackets correspond to the end of the deprecation protection period,
after which the related functionality can be removed at any time.

Expand All @@ -14,10 +14,15 @@ Only the versions in which a deprecation has been made are listed.

## Next release <span style="font-size:0.5em; font-weight:normal">(till TODO date)</span>

- Note: nothing new deprecated yet

## v0.23.0 <span style="font-size:0.5em; font-weight:normal">(till March 2026)</span>

- Shared libraries
- **`leapp.libraries.common.config.version.SUPPORTED_VERSIONS`** - The `SUPPORTED_VERSIONS` dict has been deprecated as it is problematic with the new design. Use `leapp.libraries.common.config.version.is_supported_version()` or `IPUConfig.supported_upgrade_paths` instead.
- **`leapp.libraries.common.config.version.is_rhel_alt()`** - The function can return only `False` nowadays as RHEL-ALT 7 is EOL for years and future version of leapp-repository will not support RHEL 7 anymore.

- Models
- **`InstalledUnsignedRPM`** - Replaced by the distribution agnostic `ThirdPartyRPM`.

## v0.20.0 <span style="font-size:0.5em; font-weight:normal">(till September 2024)</span>
- Models
Expand Down
2 changes: 2 additions & 0 deletions etc/fapolicyd/rules.d/31-leapp-repository.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
allow perm=any all : dir=/var/lib/leapp/

19 changes: 16 additions & 3 deletions etc/leapp/files/device_driver_deprecation_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -2726,7 +2726,7 @@
],
"deprecation_announced": "",
"device_id": "0x9005:0x0200:0x9005:0x0200",
"device_name": "",
"device_name": "Adaptec: AAC-RAID: Themisto Jupiter Platform",
"device_type": "pci",
"driver_name": "aacraid",
"maintained_in_rhel": [
Expand Down Expand Up @@ -2824,6 +2824,19 @@
7
]
},
{
"available_in_rhel": [
7
],
"deprecation_announced": "",
"device_id": "0x9005:0x0285:0x1028:0x0291",
"device_name": "Adaptec: AAC-RAID: CERC SATA RAID 2 PCI SATA 6ch (DellCorsair)",
"device_type": "pci",
"driver_name": "aacraid",
"maintained_in_rhel": [
7
]
},
{
"available_in_rhel": [
7
Expand Down Expand Up @@ -3363,7 +3376,7 @@
],
"deprecation_announced": "",
"device_id": "0x9005:0x0287:0x9005:0x0800",
"device_name": "",
"device_name": "Adaptec: AAC-RAID: Themisto Jupiter Platform",
"device_type": "pci",
"driver_name": "aacraid",
"maintained_in_rhel": [
Expand All @@ -3376,7 +3389,7 @@
],
"deprecation_announced": "",
"device_id": "0x9005:0x0288",
"device_name": "",
"device_name": "Adaptec: AAC-RAID: NEMER/ARK Catch All",
"device_type": "pci",
"driver_name": "aacraid",
"maintained_in_rhel": [
Expand Down
Loading