{% extends "_base.html" %} {% block breadcrumbs %} {% endblock breadcrumbs %} {% block titlecontent -%} {{ (the_score * 100) | round(1) }}% → {{ (py2_score * 100) | round(1) }}% – {{ super() }} {%- endblock titlecontent %} {% block favicon_url -%} {{ url_for('piechart_svg') }}?{{ cache_tag }} {%- endblock favicon_url %} {% block style %} {{ super() }} @media (min-width: 768px) { .main-summary { width: 100%; display: flex; flex-wrap: wrap; justify-content: space-evenly; } .main-summary .summary-sentence { font-size: 3rem; flex-grow: 1; position: relative; padding-left: 14rem; padding-right: 4rem; } .main-summary .big-percentage { display: block; position: absolute; left: 0; top: -0.5rem; padding: 0 1rem; font-size: 6rem; text-align: right; min-width: 14rem; } .main-summary .big-percentage .smaller { font-size: 3rem; } .main-summary .stuffing { font-size: 1.5rem; display: block; white-space: nowrap; line-height: 3rem; } .main-summary .callout { white-space: nowrap; line-height: 3rem; } } {% endblock style %} {% block bodycontent %}

Python 2 Dropping Database {% if 'name' in config %} for {{ config['name'] }} {% endif %}

{{ progress_summary(status_summary, total_pkg_count) }}
{% set score_parts = (the_score * 100) | split_digits(1) %} {{ score_parts[0] -}} . {{- score_parts[1] -}}% Python packages in Fedora Rawhide support Python 3 only.
{% set score_parts = (py2_score * 100) | split_digits(1) %} {{ score_parts[0] -}} . {{- score_parts[1] -}}% Python packages in Fedora Rawhide support Python 3.
{% if 'main-instructions' in config %}

{{ config['main-instructions'] .replace('$HOWTO_LINK', url_for('howto')) .replace('$MISPACKAGED_LINK', '#mispackaged') |safe }}

{% endif %} {% if groups %}

Package Groups and FESCo exceptions

For some groups of packages which are likely to need python27 in Fedora 32+, we track how many Python2-only packages they bring into the system (including the current Python 2 dependencies).
This makes it possible to see how big the dependency tree is, and possibly where it can be trimmed.

If you're considering an exception for your package, let's talk at Bugzilla. Open a bug for your package (or use an existing bug) and make sure it:

(Some packages listed do not have a FESCo exception yet. They will need one to stay in Fedora.)

Build dependencies are not yet tracked properly.

{% for grp, (py3, dual, py2) in groups %}
{{ grp.name }} {% if 'exception' in grp %} – {%- if grp.hidden -%} exc. request {%- else -%} exc. {%- endif -%} {% endif %} – {% set n = len(grp.seed_packages) + len(grp.untracked_packages) %} {% if dual == py2 == 0 %} {% if grp.packages %} {{ n }} py3-only package{%if n != 1 %}s{% endif %}. {% elif grp.untracked_packages %} {{ n }} package{%if n != 1 %}s{% endif %} portingdb doesn't track. {% else %} No packages that portingdb tracks. {% endif %} {% else %} {{ n }} package{%if n != 1 %}s{% endif %} bringing in {{ dual+py2 }} Python 2 packages. {% endif %}
{% endfor %} {% endif %} {% if mispackaged_packages %}

Mispackaged packages

{{ len(mispackaged_packages) }} packages were found to have some kind of packaging problem.
{% endif %}

Idle packages

{{ len(ready_packages) }} packages are not ported to Python 3 yet. Grab your favorite, and go port it!
If you're not sure which one to pick, or if you just want to help, choose one on which lots of other stuff depends.

Blocked packages

{{ len(blocked_packages) }} packages don't have all dependencies ported to Python 3 yet.
(Or they could be false positives – check the package before giving up on it!)

Packages with dual support

{{ len(released_packages) }} packages support both Python 2 and 3. Half-way there!
{% for pkg in released_packages %} {{ pkglink(pkg) }} {% endfor %}

Packages with leaf Python 2 subpackages

The Python 2 versions of {{ len(legacy_leaf_packages) }} packages are not required by anything else we track. The subpackages can be dropped if the maintainer wishes.
{% for pkg in legacy_leaf_packages %} {{ pkglink(pkg) }} {% endfor %}

Python3-only packages

{{ len(py3_only_packages) }} packages support Python 3 only. Yay!
{% for pkg in py3_only_packages %} {{ pkglink(pkg) }} {% endfor %}

Dropped packages

{{ len(dropped_packages) }} packages will not be ported to Python 3. Anything that requires them will need to switch to an alternative. The suggested replacement is usually mentioned in porting notes; click on the package for more information.
{% for pkg in dropped_packages %} {{ pkglink(pkg) }} {% endfor %}
{% if 'load_time' in config %}
Data for this site was loaded at:
{{ config['load_time'] }}

Ignoring loading time and delays in repository mirrors, it's current for that time.

{% endif %}

Status Legend

Package status is retreived periodically, so it might be slightly out of date.
Individual package pages list the RPM versions this report is based on.
{% if 'extra-sidebar' in config %} {{ config['extra-sidebar'] |safe }} {% endif %}

Visualizations

You might want to see an interactive dependency graph of all packages that still need Python 2 (Warning: CPU-hungry.)
There is a graph of the history of package statuses over this portingdb's lifetime.
We also have a manager-friendly pie chart:
{% endblock bodycontent %}