MCPcopy Index your code
hub / github.com/StackStorm/st2 / inject_package_fields

Function inject_package_fields

pants-plugins/release/rules.py:218–257  ·  view source on GitHub ↗
(
    request: StackStormNfpmPackageFieldsRequest,
)

Source from the content-addressed store, hash-verified

216
217@rule
218async def inject_package_fields(
219 request: StackStormNfpmPackageFieldsRequest,
220) -> InjectedNfpmPackageFields:
221 target = request.target
222 address = target.address
223
224 version_file = "st2common/st2common/__init__.py"
225 extracted_version = await Get(
226 StackStormVersion,
227 StackStormVersionRequest(
228 version_file=version_file,
229 description_of_origin=f"StackStorm version file: {version_file}",
230 ),
231 )
232
233 version: str = extracted_version.value
234 is_dev = "dev" in version
235 if is_dev and "-dev" not in version:
236 # nfpm parses this into version[-version_prerelease][+version_metadata]
237 # that dash is required to be a valid semver version (3.9dev => 3.9-dev).
238 version = version.replace("dev", "-dev")
239
240 # this is specific to distro-version (EL8, EL9, Ubuntu Focal, Ubuntu Jammy, ...)
241 next_release = await packagecloud_get_next_release(
242 PackageCloudNextReleaseRequest(
243 nfpm_arch=target[NfpmArchField].value,
244 distro_id=target[DistroIDField].value,
245 package_name=target[NfpmPackageNameField].value,
246 package_version=version,
247 production=not is_dev,
248 )
249 )
250 release = 1 if next_release.value is None else next_release.value
251
252 fields: list[Field] = [
253 NfpmVersionSchemaField("semver", address=address),
254 NfpmVersionField(version, address=address),
255 NfpmVersionReleaseField(release, address=address),
256 ]
257 return InjectedNfpmPackageFields(fields, address=address)
258
259
260def rules():

Callers

nothing calls this directly

Tested by

no test coverage detected