|
|
|
@ -40,10 +40,32 @@ def main(force_colors: bool) -> None: |
|
|
|
|
exec(r, locals) |
|
|
|
|
current_schema_version = locals["SCHEMA_VERSION"] |
|
|
|
|
|
|
|
|
|
click.secho(f"Current schema version: {current_schema_version}") |
|
|
|
|
|
|
|
|
|
diffs: List[git.Diff] = repo.remote().refs.develop.commit.diff(None) |
|
|
|
|
|
|
|
|
|
# Get the schema version of the local file to check against current schema on develop |
|
|
|
|
with open("synapse/storage/schema/__init__.py", "r") as file: |
|
|
|
|
local_schema = file.read() |
|
|
|
|
new_locals: Dict[str, Any] = {} |
|
|
|
|
exec(local_schema, new_locals) |
|
|
|
|
local_schema_version = new_locals["SCHEMA_VERSION"] |
|
|
|
|
|
|
|
|
|
if local_schema_version != current_schema_version: |
|
|
|
|
# local schema version must be +/-1 the current schema version on develop |
|
|
|
|
if abs(local_schema_version - current_schema_version) != 1: |
|
|
|
|
click.secho( |
|
|
|
|
"The proposed schema version has diverged more than one version from develop, please fix!", |
|
|
|
|
fg="red", |
|
|
|
|
bold=True, |
|
|
|
|
color=force_colors, |
|
|
|
|
) |
|
|
|
|
click.get_current_context().exit(1) |
|
|
|
|
|
|
|
|
|
# right, we've changed the schema version within the allowable tolerance so |
|
|
|
|
# let's now use the local version as the canonical version |
|
|
|
|
current_schema_version = local_schema_version |
|
|
|
|
|
|
|
|
|
click.secho(f"Current schema version: {current_schema_version}") |
|
|
|
|
|
|
|
|
|
seen_deltas = False |
|
|
|
|
bad_files = [] |
|
|
|
|
for diff in diffs: |
|
|
|
|