in hack/release/wizard/releaseWizard.py [0:0]
def expand_jinja(text, vars=None):
global_vars = OrderedDict({
'script_version': state.script_version,
'release_version': state.release_version,
'release_version_underscore': state.release_version.replace('.', '_'),
'release_date': state.get_release_date(),
'config_path': state.config_path,
'rc_number': state.rc_number,
'script_branch': state.script_branch,
'release_folder': state.get_release_folder(),
'git_checkout_folder': state.get_git_checkout_folder(),
'git_website_folder': state.get_website_git_folder(),
'dist_url_base': 'https://dist.apache.org/repos/dist/dev/solr/solr-operator',
'dist_file_path': state.get_dist_folder(),
'rc_folder': state.get_rc_folder(),
'base_branch': state.get_base_branch_name(),
'release_branch': state.release_branch,
'stable_branch': state.get_stable_branch_name(),
'minor_branch': state.get_minor_branch_name(),
'release_type': state.release_type,
'is_feature_release': state.release_type in ['minor', 'major'],
'release_version_major': state.release_version_major,
'release_version_minor': state.release_version_minor,
'release_version_bugfix': state.release_version_bugfix,
'release_version_refguide': state.get_refguide_release() ,
'state': state,
'gpg_key': state.get_gpg_key(),
'gpg_fingerprint': state.get_gpg_fingerprint(),
'epoch': unix_time_millis(datetime.now(timezone.utc)),
'get_next_version': state.get_next_version(),
'get_next_major_version': state.get_next_major_version(),
'get_next_minor_version': state.get_next_minor_version(),
'get_next_bugfix_version': state.get_next_bugfix_version(),
'current_git_rev': state.get_current_git_rev(),
'keys_downloaded': keys_downloaded(),
'editor': get_editor(),
'rename_cmd': 'ren' if is_windows() else 'mv',
'vote_close_72h': vote_close_72h_date().strftime("%Y-%m-%d %H:00 UTC"),
'vote_close_72h_epoch': unix_time_millis(vote_close_72h_date()),
'vote_close_72h_holidays': vote_close_72h_holidays(),
'solr_operator_news_file': state.get_solr_operator_news_file(),
'load_lines': load_lines,
'latest_version': state.get_latest_version(),
'latest_lts_version': state.get_latest_lts_version(),
'main_version': state.get_main_version(),
'released_versions': state.get_released_versions(),
'released_versions_to_delete': state.get_released_versions_to_delete(),
'home': os.path.expanduser("~")
})
global_vars.update(state.get_todo_states())
if vars:
global_vars.update(vars)
filled = replace_templates(text)
try:
env = Environment(lstrip_blocks=True, keep_trailing_newline=False, trim_blocks=True)
env.filters['path_join'] = lambda paths: os.path.join(*paths)
env.filters['expanduser'] = lambda path: os.path.expanduser(path)
env.filters['formatdate'] = lambda date: (datetime.strftime(date, "%-d %B %Y") if date else "<date>" )
template = env.from_string(str(filled), globals=global_vars)
filled = template.render()
except Exception as e:
print("Exception while rendering jinja template %s: %s" % (str(filled)[:10], e))
return filled