Skip to content

Commit 21b6bef

Browse files
committed
Split Replacement into own package
Also requires moving ParseVersion to util
1 parent a659bd1 commit 21b6bef

37 files changed

Lines changed: 125 additions & 120 deletions

src/bci_build/package/__init__.py

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import abc
44
import asyncio
55
import datetime
6-
import enum
76
import os
87
import textwrap
98
from collections.abc import Callable
@@ -29,7 +28,7 @@
2928
from bci_build.registry import ApplicationCollectionRegistry
3029
from bci_build.registry import Registry
3130
from bci_build.registry import publish_registry
32-
from bci_build.service import Service
31+
from bci_build.replacement import Replacement
3332
from bci_build.templates import DOCKERFILE_TEMPLATE
3433
from bci_build.templates import INFOHEADER_TEMPLATE
3534
from bci_build.templates import KIWI_TEMPLATE
@@ -74,15 +73,6 @@ def __str__(self) -> str:
7473
return self.name
7574

7675

77-
@enum.unique
78-
class ParseVersion(enum.StrEnum):
79-
MAJOR = enum.auto()
80-
MINOR = enum.auto()
81-
PATCH = enum.auto()
82-
PATCH_UPDATE = enum.auto()
83-
OFFSET = enum.auto()
84-
85-
8676
@dataclass
8777
class StableUser:
8878
"""Data class that stores information about stable user and group
@@ -99,54 +89,6 @@ class StableUser:
9989
group_id: int
10090

10191

102-
@dataclass
103-
class Replacement:
104-
"""Represents a replacement via the `obs-service-replace_using_package_version
105-
<https://github.com/openSUSE/obs-service-replace_using_package_version>`_.
106-
107-
"""
108-
109-
#: regex to be replaced in :py:attr:`~bci_build.package.Replacement.file_name`, :file:`Dockerfile` or :file:`$pkg_name.kiwi`
110-
regex_in_build_description: str
111-
112-
#: package name to be queried for the version
113-
package_name: str
114-
115-
#: override file name, if unset use :file:`Dockerfile` or :file:`$pkg_name.kiwi`
116-
file_name: str | None = None
117-
118-
#: specify how the version should be formatted, see
119-
#: `<https://github.com/openSUSE/obs-service-replace_using_package_version#usage>`_
120-
#: for further details
121-
parse_version: None | ParseVersion = None
122-
123-
def __post_init__(self) -> None:
124-
"""Barf if someone tries to replace variables in README, as those
125-
changes will be only performed in the buildroot, but not in the actual
126-
source package.
127-
128-
"""
129-
if "%%" not in self.regex_in_build_description:
130-
raise ValueError("regex_in_build_description must be in the form %%foo%%")
131-
if self.file_name and "readme" in self.file_name.lower():
132-
raise ValueError(f"Cannot replace variables in {self.file_name}!")
133-
134-
def to_service(self, default_file_name: str) -> Service:
135-
"""Convert this replacement into a
136-
:py:class:`~bci__build.service.Service`.
137-
138-
"""
139-
return Service(
140-
name="replace_using_package_version",
141-
param=[
142-
("file", self.file_name or default_file_name),
143-
("regex", self.regex_in_build_description),
144-
("package", self.package_name),
145-
]
146-
+ ([("parse-version", self.parse_version)] if self.parse_version else []),
147-
)
148-
149-
15092
def _build_tag_prefix(os_version: OsVersion) -> str:
15193
if os_version == OsVersion.TUMBLEWEED:
15294
return "opensuse/bci"

src/bci_build/package/apache_tomcat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
from bci_build.package import ApplicationStackContainer
1010
from bci_build.package import OsContainer
1111
from bci_build.package import Package
12-
from bci_build.package import Replacement
1312
from bci_build.package import _build_tag_prefix
13+
from bci_build.replacement import Replacement
1414

1515
# last version needs to be the newest
1616
_TOMCAT_VERSIONS: list[str] = ["9", "10.1"]

src/bci_build/package/appcontainers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
from bci_build.package import ApplicationStackContainer
1515
from bci_build.package import OsContainer
1616
from bci_build.package import Package
17-
from bci_build.package import ParseVersion
18-
from bci_build.package import Replacement
1917
from bci_build.package import _build_tag_prefix
2018
from bci_build.package.helpers import generate_from_image_tag
2119
from bci_build.package.helpers import generate_package_version_check
2220
from bci_build.package.versions import format_version
2321
from bci_build.package.versions import get_pkg_version
22+
from bci_build.replacement import Replacement
23+
from bci_build.util import ParseVersion
2424

2525

2626
def _envsubst_pkg_name(os_version: OsVersion) -> str:

src/bci_build/package/bind.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from bci_build.os_version import CAN_BE_LATEST_OS_VERSION
1010
from bci_build.package import DOCKERFILE_RUN
1111
from bci_build.package import ApplicationStackContainer
12-
from bci_build.package import ParseVersion
13-
from bci_build.package import Replacement
1412
from bci_build.package.helpers import generate_from_image_tag
13+
from bci_build.replacement import Replacement
14+
from bci_build.util import ParseVersion
1515

1616
_BIND_FILES = {
1717
"entrypoint.sh": (

src/bci_build/package/cosign.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
from bci_build.os_version import CAN_BE_LATEST_OS_VERSION
66
from bci_build.package import ApplicationStackContainer
77
from bci_build.package import OsVersion
8-
from bci_build.package import ParseVersion
9-
from bci_build.package import Replacement
108
from bci_build.package.helpers import generate_from_image_tag
119
from bci_build.package.helpers import generate_package_version_check
1210
from bci_build.package.versions import format_version
1311
from bci_build.package.versions import get_pkg_version
12+
from bci_build.replacement import Replacement
13+
from bci_build.util import ParseVersion
1414

1515
COSIGN_CONTAINERS = [
1616
ApplicationStackContainer(

src/bci_build/package/firefox.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
from bci_build.os_version import OsVersion
1111
from bci_build.package import DOCKERFILE_RUN
1212
from bci_build.package import ApplicationStackContainer
13-
from bci_build.package import ParseVersion
14-
from bci_build.package import Replacement
1513
from bci_build.package.helpers import generate_from_image_tag
1614
from bci_build.package.kiosk import KIOSK_EXCLUSIVE_ARCH
1715
from bci_build.package.kiosk import KIOSK_SUPPORT_ENDS
1816
from bci_build.package.kiosk import KioskRegistry
17+
from bci_build.replacement import Replacement
18+
from bci_build.util import ParseVersion
1919

2020
FIREFOX_CONTAINERS = [
2121
ApplicationStackContainer(

src/bci_build/package/gcc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
from bci_build.os_version import OsVersion
99
from bci_build.package import DOCKERFILE_RUN
1010
from bci_build.package import DevelopmentContainer
11-
from bci_build.package import ParseVersion
12-
from bci_build.package import Replacement
1311
from bci_build.package import generate_disk_size_constraints
12+
from bci_build.replacement import Replacement
13+
from bci_build.util import ParseVersion
1414

1515
_GCC_VERSIONS = Literal[7, 12, 13, 14, 15]
1616

src/bci_build/package/git.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
from bci_build.os_version import ALL_NONBASE_OS_VERSIONS
55
from bci_build.os_version import CAN_BE_LATEST_OS_VERSION
66
from bci_build.package import ApplicationStackContainer
7-
from bci_build.package import ParseVersion
8-
from bci_build.package import Replacement
97
from bci_build.package.helpers import generate_from_image_tag
108
from bci_build.package.helpers import generate_package_version_check
119
from bci_build.package.versions import format_version
1210
from bci_build.package.versions import get_pkg_version
11+
from bci_build.replacement import Replacement
12+
from bci_build.util import ParseVersion
1313

1414
GIT_CONTAINERS = [
1515
ApplicationStackContainer(

src/bci_build/package/golang.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
from bci_build.package import DOCKERFILE_RUN
1111
from bci_build.package import LOG_CLEAN
1212
from bci_build.package import DevelopmentContainer
13-
from bci_build.package import ParseVersion
14-
from bci_build.package import Replacement
1513
from bci_build.package import generate_disk_size_constraints
14+
from bci_build.replacement import Replacement
15+
from bci_build.util import ParseVersion
1616

1717
_GO_VER_T = Literal["1.20", "1.21", "1.22", "1.23", "1.24", "1.25"]
1818
_GOLANG_VERSIONS: list[_GO_VER_T] = ["1.24", "1.25"]

src/bci_build/package/grafana.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
from bci_build.os_version import OsVersion
99
from bci_build.package import DOCKERFILE_RUN
1010
from bci_build.package import ApplicationStackContainer
11-
from bci_build.package import ParseVersion
12-
from bci_build.package import Replacement
1311
from bci_build.package.helpers import generate_from_image_tag
12+
from bci_build.replacement import Replacement
13+
from bci_build.util import ParseVersion
1414

1515
_GRAFANA_FILES = {}
1616
for filename in ("run.sh", "LICENSE"):

0 commit comments

Comments
 (0)