all APIs in filename'''
if not revision and not os.path.isfile(filename):
print(f'skipping: {filename}', file=sys.stderr)
- return {}
+ # Return <class 'set'> instead of <class 'dict'>
+ return {-1}
if revision:
apigen = (f'{APIGENBIN} --git-revision {revision} --includedir src '
filelist = []
git_cmd = ('((git diff HEAD~1.. --name-only;git ls-files -m) | '
'sort -u | grep "\\.api$")')
- returncode = check_output(git_cmd, shell=True)
+ try:
+ res = check_output(git_cmd, shell=True)
+ except CalledProcessError:
+ return []
# Check for dependencies (imports)
imported_files = []
- for line in returncode.decode('ascii').split('\n'):
+ for line in res.decode('ascii').split('\n'):
if not line:
continue
if not re.search(pattern, line):
for filename in files:
# Ignore files that have version < 1.0.0
_ = crc_from_apigen(None, filename)
- if _['_version']['major'] == '0':
- continue
+ # Ignore removed files
+ if isinstance(_, set) == 0:
+ if isinstance(_, set) == 0 and _['_version']['major'] == '0':
+ continue
+ newcrcs.update(_)
- newcrcs.update(_)
oldcrcs.update(crc_from_apigen(revision, filename))
backwards_incompatible = report(newcrcs, oldcrcs)