Track multiple stacks in lock (#1434)

* Save the stack versions in the lock file
* Support tracking of multiple stacks in the lock
* Update the version locking logic
* Fix bugs and test lock file
* Restore version lock
* Fix lint errors
* Call both click.echo and verbose echo separately
* Change when the change_rules message is output

(cherry picked from commit 0d47cb324a)
This commit is contained in:
Ross Wolf
2021-08-24 16:56:11 -06:00
committed by github-actions[bot]
parent 689e690f8c
commit 8a3220ef6a
6 changed files with 201 additions and 111 deletions
+11 -7
View File
@@ -28,7 +28,8 @@ from .eswrap import CollectEvents, add_range_to_dsl
from .ghwrap import GithubClient
from .main import root
from .misc import PYTHON_LICENSE, add_client, client_error
from .packaging import PACKAGE_FILE, Package, RELEASE_DIR, current_stack_version, manage_versions
from .packaging import PACKAGE_FILE, Package, RELEASE_DIR, current_stack_version
from .version_lock import manage_versions, load_versions
from .rule import AnyRuleData, BaseRuleData, QueryRuleData, TOMLRule
from .rule_loader import RuleCollection, production_filter
from .semver import Version
@@ -66,11 +67,15 @@ def build_release(config_file, update_version_lock, release=None, verbose=True):
if verbose:
click.echo('[+] Building package {}'.format(config.get('name')))
package = Package.from_config(config, update_version_lock=update_version_lock, verbose=verbose)
package = Package.from_config(config, verbose=verbose)
if update_version_lock:
manage_versions(package.rules, save_changes=True, verbose=verbose)
package.save(verbose=verbose)
if verbose:
package.get_package_hash(verbose=True)
package.get_package_hash(verbose=verbose)
click.echo(f'- {len(package.rules)} rules included')
return package
@@ -565,9 +570,9 @@ def package_stats(ctx, token, threads):
new, modified, errors = rule_loader.load_github_pr_rules(labels=[release], token=token, threads=threads)
click.echo(f'Total rules as of {release} package: {len(current_package.rules)}')
click.echo(f'New rules: {len(current_package.new_rules_ids)}')
click.echo(f'Modified rules: {len(current_package.changed_rule_ids)}')
click.echo(f'Deprecated rules: {len(current_package.removed_rule_ids)}')
click.echo(f'New rules: {len(current_package.new_ids)}')
click.echo(f'Modified rules: {len(current_package.changed_ids)}')
click.echo(f'Deprecated rules: {len(current_package.removed_ids)}')
click.echo('\n-----\n')
click.echo('Rules in active PRs for current package: ')
@@ -637,7 +642,6 @@ def search_rule_prs(ctx, no_loop, query, columns, language, token, threads):
def deprecate_rule(ctx: click.Context, rule_file: str):
"""Deprecate a rule."""
import pytoml
from .packaging import load_versions
version_info = load_versions()
rule_file = Path(rule_file)