Skip to content

Commit 752c098

Browse files
authored
Refactor version code in module.py, fixes #759 (#762)
1 parent 254f49a commit 752c098

File tree

2 files changed

+106
-89
lines changed

2 files changed

+106
-89
lines changed

.github/workflows/build_wheel_off.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
name: Build wheel and release into PYPI (off now)
22

3+
34
on:
45
push:
56
branches:

automation/script/module.py

Lines changed: 105 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -732,95 +732,15 @@ def _run(self, i):
732732
variation_tags_string = r['variation_tags_string']
733733
explicit_variation_tags = r['explicit_variation_tags']
734734

735-
# USE CASE:
736-
# HERE we may have versions in script input and env['MLC_VERSION_*']
737-
738-
# STEP 900: Get version, min, max, usable from env (priority if passed from another script to force version),
739-
# then script input, then script meta
740-
741-
# VERSIONS SHOULD NOT BE USED INSIDE VARIATIONS (in meta)!
742-
743-
# First, take version from input
744-
version = str(i.get('version', '')).strip()
745-
version_min = str(i.get('version_min', '')).strip()
746-
version_max = str(i.get('version_max', '')).strip()
747-
version_max_usable = str(i.get('version_max_usable', '')).strip()
748-
749-
# Second, take from env
750-
if version == '':
751-
version = str(env.get('MLC_VERSION', ''))
752-
if version_min == '':
753-
version_min = str(env.get('MLC_VERSION_MIN', ''))
754-
if version_max == '':
755-
version_max = str(env.get('MLC_VERSION_MAX', ''))
756-
if version_max_usable == '':
757-
version_max_usable = str(env.get(
758-
'MLC_VERSION_MAX_USABLE', ''))
759-
760-
# Third, take from meta
761-
if version == '':
762-
version = str(meta.get('version', ''))
763-
if version_min == '':
764-
version_min = str(meta.get('version_min', ''))
765-
if version_max == '':
766-
version_max = str(meta.get('version_max', ''))
767-
if version_max_usable == '':
768-
version_max_usable = str(meta.get(
769-
'version_max_usable', ''))
770-
771-
# Update env with resolved versions
772-
notes = []
773-
for version_index in [(version, 'MLC_VERSION', ' == {}'),
774-
(version_min, 'MLC_VERSION_MIN', ' >= {}'),
775-
(version_max, 'MLC_VERSION_MAX', ' <= {}'),
776-
(version_max_usable, 'MLC_VERSION_MAX_USABLE', '({})')]:
777-
version_value = version_index[0]
778-
key = version_index[1]
779-
note = version_index[2]
780-
781-
if version_value != '':
782-
env[key] = version_value
783-
784-
notes.append(note.format(version_value))
785-
# elif key in env:
786-
# # If version_X is "", remove related key from ENV ...
787-
# del(env[key])
788-
789-
if len(notes) > 0:
790-
logger.debug(
791-
self.recursion_spaces +
792-
' - Requested version: ' +
793-
' '.join(notes))
794-
795-
# STEP 900 output: version* set
796-
# env['MLC_VERSION*] set
797-
798-
# STEP 1000: Update version only if in "versions" (not obligatory)
799-
# can be useful when handling complex Git revisions
800-
versions = script_item.meta.get('versions', {})
801-
802-
if version != '' and version in versions:
803-
versions_meta = versions[version]
804-
r = self.update_state_from_meta(
805-
versions_meta,
806-
run_state,
807-
i)
808-
if r['return'] > 0:
809-
return r
810-
adr = get_adr(versions_meta)
811-
if adr:
812-
self._merge_dicts_with_tags(add_deps_recursive, adr)
813-
# Processing them again using updated deps for
814-
# add_deps_recursive
815-
r = update_adr_from_meta(
816-
deps,
817-
post_deps,
818-
prehook_deps,
819-
posthook_deps,
820-
add_deps_recursive,
821-
env)
822-
823-
# STEP 1100: Update deps from input
735+
r = self._update_state_from_version(meta, i)
736+
version = r['version']
737+
version_min = r['version_min']
738+
version_max = r['version_max']
739+
version_max_usable = r['version_max_usable']
740+
versions = r['versions']
741+
742+
# STEP 1100: Update deps from input -? is this needed as we update adr
743+
# from meta anyway
824744
r = update_deps_from_input(
825745
deps, post_deps, prehook_deps, posthook_deps, i)
826746
if r['return'] > 0:
@@ -1985,6 +1905,102 @@ def _run(self, i):
19851905

19861906
return rr
19871907

1908+
##########################################################################
1909+
def _update_state_from_version(self, meta, i):
1910+
1911+
# USE CASE:
1912+
# HERE we may have versions in script input and env['MLC_VERSION_*']
1913+
1914+
# STEP 900: Get version, min, max, usable from env (priority if passed from another script to force version),
1915+
# then script input, then script meta
1916+
1917+
# VERSIONS SHOULD NOT BE USED INSIDE VARIATIONS (in meta)!
1918+
1919+
# First, take version from input
1920+
version = str(i.get('version', '')).strip()
1921+
version_min = str(i.get('version_min', '')).strip()
1922+
version_max = str(i.get('version_max', '')).strip()
1923+
version_max_usable = str(i.get('version_max_usable', '')).strip()
1924+
1925+
env = self.env
1926+
1927+
# Second, take from env
1928+
if version == '':
1929+
version = str(env.get('MLC_VERSION', ''))
1930+
if version_min == '':
1931+
version_min = str(env.get('MLC_VERSION_MIN', ''))
1932+
if version_max == '':
1933+
version_max = str(env.get('MLC_VERSION_MAX', ''))
1934+
if version_max_usable == '':
1935+
version_max_usable = str(env.get(
1936+
'MLC_VERSION_MAX_USABLE', ''))
1937+
1938+
# Third, take from meta
1939+
if version == '':
1940+
version = str(meta.get('version', ''))
1941+
if version_min == '':
1942+
version_min = str(meta.get('version_min', ''))
1943+
if version_max == '':
1944+
version_max = str(meta.get('version_max', ''))
1945+
if version_max_usable == '':
1946+
version_max_usable = str(meta.get(
1947+
'version_max_usable', ''))
1948+
1949+
# Update env with resolved versions
1950+
notes = []
1951+
for version_index in [(version, 'MLC_VERSION', ' == {}'),
1952+
(version_min, 'MLC_VERSION_MIN', ' >= {}'),
1953+
(version_max, 'MLC_VERSION_MAX', ' <= {}'),
1954+
(version_max_usable, 'MLC_VERSION_MAX_USABLE', '({})')]:
1955+
version_value = version_index[0]
1956+
key = version_index[1]
1957+
note = version_index[2]
1958+
1959+
if version_value != '':
1960+
env[key] = version_value
1961+
1962+
notes.append(note.format(version_value))
1963+
# elif key in env:
1964+
# # If version_X is "", remove related key from ENV ...
1965+
# del(env[key])
1966+
1967+
if len(notes) > 0:
1968+
self.logger.debug(
1969+
self.recursion_spaces +
1970+
' - Requested version: ' +
1971+
' '.join(notes))
1972+
1973+
# STEP 900 output: version* set
1974+
# env['MLC_VERSION*] set
1975+
1976+
# STEP 1000: Update version only if in "versions" (not obligatory)
1977+
# can be useful when handling complex Git revisions
1978+
versions = meta.get('versions', {})
1979+
1980+
if version != '' and version in versions:
1981+
versions_meta = versions[version]
1982+
r = self.update_state_from_meta(
1983+
versions_meta,
1984+
self.run_state,
1985+
i)
1986+
if r['return'] > 0:
1987+
return r
1988+
adr = get_adr(versions_meta)
1989+
if adr:
1990+
self._merge_dicts_with_tags(add_deps_recursive, adr)
1991+
# Processing them again using updated deps for
1992+
# add_deps_recursive
1993+
r = update_adr_from_meta(
1994+
deps,
1995+
post_deps,
1996+
prehook_deps,
1997+
posthook_deps,
1998+
add_deps_recursive,
1999+
env)
2000+
2001+
return {'return': 0, 'version': version, 'version_min': version_min,
2002+
'version_max': version_max, 'version_max_usable': version_max_usable, 'versions': versions}
2003+
19882004
##########################################################################
19892005

19902006
def _update_env_from_input(self, env, i):

0 commit comments

Comments
 (0)