On this page
Spec release target using version.json as the source of truth for specification projects where the tagged GitHub Release is the publication.
#rlsbl.targets.spec
#rlsbl.targets.spec
Spec release target using version.json as the source of truth for specification projects where the tagged GitHub Release is the publication.
#SpecTarget
Release target for specification projects (version.json).
Expects version.json with at least {"version": "X.Y.Z"}. Extra fields are preserved on version bumps.
#name
def name(self)#read_name
def read_name(self, dir_path)Return the directory name as the project name.
#read_metadata
def read_metadata(self, dir_path)Spec projects have no standard metadata in version.json.
#detect
def detect(self, dir_path)True if version.json exists in root or spec/ subdir.
#_version_json_path
def _version_json_path(self, dir_path)Resolve the actual path to version.json.
#read_version
def read_version(self, dir_path)Read version from version.json.
#write_version
def write_version(self, dir_path, version)Write the new version to version.json atomically.
Returns a list of relative file paths (relative to dir_path) that were modified.
#version_file
def version_file(self)#tag_format
def tag_format(self, version)#publish
def publish(self, dir_path, version)No-op: the git tag IS the publication.
#template_dir
def template_dir(self)#template_vars
def template_vars(self, dir_path)Extract template variables.
#template_mappings
def template_mappings(self)