{% set branch = env.get('SYSTEM_PULLREQUEST_SOURCEBRANCH') if env.get('SYSTEM_PULLREQUEST_SOURCEBRANCH') else env.get('BUILD_SOURCEBRANCHNAME') %} {% set build = env.get('BUILD_BUILDNUMBER') %} {% set build_url = '%s%s/_build/results?buildId=%s' % (env.get('SYSTEM_TEAMFOUNDATIONCOLLECTIONURI'), env.get('SYSTEM_TEAMPROJECT'), env.get('BUILD_BUILDID')) %} {% set commit = env.get('BUILD_SOURCEVERSION') %} {% set isfork = env.get('SYSTEM_PULLREQUEST_ISFORK') == 'True' %} {% set rel_url = env.get('RELEASE_RELEASEWEBURL') %} {% set release = env.get('RELEASE_RELEASENAME') %} {% set repo = env.get('BUILD_REPOSITORY_NAME') if isfork else ('Azure/' + repo_name) %} {% macro pluralize(num, singular, plural) -%} {% if num == 1 %}{{ singular }}{% else %}{{ plural }}{% endif %} {%- endmacro %} {{ repo_name|capitalize }} Dependency Report

{{ repo_name|capitalize }} Dependency Report

Generated at {{ curtime.replace(microsecond=0).isoformat() }}Z {% if release %} for release {{ release }} {% elif build %} for build {{ build }} {% if branch %}
from branch {{ branch }} {% if isfork %} in repo {{ repo }} {% endif %} {% endif %} {% if commit %} ({{ commit[:7] }}) {% endif %} {% endif %}

{{ dependencies|length - external|length }} internal and {{ external|length }} external package {{ pluralize(dependencies|length,'dependency was','dependencies were') }} analyzed to determine if any packages declare irreconcilable dependency versions.
{% if incompatible %} {{ incompatible|length }} incompatible package dependency {{ pluralize(incompatible|length,'version was','versions were') }} discovered.

{% else %} No incompatible package dependency versions were discovered.

{% endif %} {% if known_reqs %} {{ known_reqs|length }} {{ pluralize(known_reqs|length,'dependency was','dependencies were') }} discovered in the Shared Requirements.
{% if new_reqs %} {{ new_reqs|length }} {{ pluralize(new_reqs|length,'dependency is','dependencies are') }} missing from the shared requirements.
{% endif %} {% if not new_reqs %} All declared dependencies were validated against those in the shared requirements file.
{% endif %} {% else %} No shared requirements file present in the repo, known requirements could not be validated.
{% endif %}
This report scanned {{ packages|length }} {{ pluralize(packages|length,'package','packages') }}.

{% for dep_name in ordered_deps %} {% if loop.index == 1 %} {% endif %} {% if dep_name in external %} {% set dep_type = "external" %} {% else %} {% set dep_type = "internal" %} {% endif %} {% if dep_name in incompatible %} {% set dep_type = "incompatible " + dep_type %} {% endif %} {% for requirement, packages in dependencies[dep_name]|dictsort %} {% endfor %}
Dependencies Discovered in Packages
{{ dep_type|title }} Dependency: {{ dep_name }}
{{ requirement if requirement else '(empty)' }} {% for package_name in packages|sort %} {{ package_name }} {% endfor %}

{% endfor %}




{% if known_reqs %} {% endif %} {% for name in known_reqs|sort %} {% endfor %} {% if not known_reqs %} {% endif %}
Known Dependencies
Dependency
{{ name }}
Unable to open shared_requirements.txt, shared requirements have not been validated
{% if new_reqs %}
{% for name in new_reqs|sort %} {% if loop.index == 1 %} {% endif %} {% for requirement, packages in dependencies[name]|dictsort %} {% endfor %}
Dependencies Missing from Shared Requirements
Missing Dependency: {{ name }}
{{ requirement if requirement else '(empty)' }} {% for package_name in packages|sort %} {{ package_name }}
{% endfor %}
{% endfor %} {% endif %}




{% for name, info in packages|dictsort %} {% endfor %}
Packages Scanned for this Report
Package AnalyzedPackage VersionPackage Source
{{ name }} {{ info.version }} {{ info.source }}