| 309 | |
| 310 | |
| 311 | class ReleaseState: |
| 312 | def __init__(self, config_path, release_version, script_version): |
| 313 | self.script_version = script_version |
| 314 | self.config_path = config_path |
| 315 | self.todo_groups = None |
| 316 | self.todos = None |
| 317 | self.latest_version = None |
| 318 | self.previous_rcs = {} |
| 319 | self.rc_number = 1 |
| 320 | self.start_date = unix_time_millis(datetime.now(UTC)) |
| 321 | self.script_branch = run("git rev-parse --abbrev-ref HEAD").strip() |
| 322 | self.mirrored_versions = None |
| 323 | try: |
| 324 | self.script_branch_type = scriptutil.find_branch_type() |
| 325 | except: |
| 326 | print("WARNING: This script shold (ideally) run from the release branch, not a feature branch (%s)" % self.script_branch) |
| 327 | self.script_branch_type = 'feature' |
| 328 | self.set_release_version(release_version) |
| 329 | self.set_latest_version() |
| 330 | self.set_latest_lts_version() |
| 331 | |
| 332 | |
| 333 | def set_release_version(self, version): |
| 334 | self.validate_release_version(self.script_branch_type, self.script_branch, version) |
| 335 | self.release_version = version |
| 336 | v = Version.parse(version) |
| 337 | self.release_version_major = v.major |
| 338 | self.release_version_minor = v.minor |
| 339 | self.release_version_bugfix = v.bugfix |
| 340 | self.release_branch = "branch_%s_%s" % (v.major, v.minor) |
| 341 | if v.is_major_release(): |
| 342 | self.release_type = 'major' |
| 343 | elif v.is_minor_release(): |
| 344 | self.release_type = 'minor' |
| 345 | else: |
| 346 | self.release_type = 'bugfix' |
| 347 | |
| 348 | def is_released(self): |
| 349 | return self.get_todo_by_id('announce_solr').is_done() |
| 350 | |
| 351 | def get_gpg_key(self): |
| 352 | gpg_task = self.get_todo_by_id('gpg') |
| 353 | if gpg_task.is_done(): |
| 354 | return gpg_task.get_state()['gpg_key'] |
| 355 | else: |
| 356 | return None |
| 357 | |
| 358 | def get_release_date(self): |
| 359 | publish_task = self.get_todo_by_id('publish_maven') |
| 360 | if publish_task.is_done(): |
| 361 | return unix_to_datetime(publish_task.get_state()['done_date']) |
| 362 | else: |
| 363 | return None |
| 364 | |
| 365 | def get_release_date_iso(self): |
| 366 | release_date = self.get_release_date() |
| 367 | if release_date is None: |
| 368 | return "yyyy-mm-dd" |
no outgoing calls
no test coverage detected
searching dependent graphs…