# Python 3.7+ and Django 3.2
## Background
Django 2.2 will stop shipping security patches in April 2022
https://www.djangoproject.com/download/#supported-versions
Python 3.6 will be EOL in December 2021
https://www.python.org/dev/peps/pep-0494/
Upgrading Dependencies for Django 3.2 Compatibility: A Challenge for Your Django Development Company
As your [custom django development services](https://www.manystrategy.com/django-development/) gears up for an upgrade to Django 3.2, one critical consideration is the compatibility of dependencies. A significant aspect of this upgrade is that many dependencies, such as django-guid, which offers support for Django 3.2 in versions 3.1.1 and above, no longer support Python 3.6.
The Implications of Dropping Python 3.6
When upgrading to Django 3.2, your Django development company must recognize that dropping support for Python 3.6 can have far-reaching effects. Python 3.6 has reached its end of life, and many packages have ceased to support it in their latest versions. This means that to leverage the new features and security updates in Django 3.2, you’ll likely need to upgrade to a newer version of Python, such as Python 3.7 or above.
Why This Matters for Your Django Development Company
Dependency Compatibility: As dependencies like django-guid drop support for older Python versions, your Django development company must ensure all other packages are also compatible with both Django 3.2 and the newer Python version. This could mean auditing your current dependencies and updating or replacing those that are no longer supported.
Performance and Security: Newer versions of Python bring performance enhancements and crucial security updates. By upgrading, your Django development company can provide more robust and secure applications to clients.
Future-Proofing: Staying updated with the latest Django and Python versions positions your Django development company as a forward-thinking, reliable partner for your clients. It ensures that you are ready to adopt future updates and features without significant technical debt.
Steps for a Smooth Transition
Audit Dependencies: Start by creating an inventory of your current dependencies. Check their compatibility with Django 3.2 and the required Python version. Tools like pipdeptree can help visualize dependency trees and identify potential issues.
Test Thoroughly: Implement a comprehensive testing strategy to ensure that your applications work seamlessly after the upgrade. This should include unit tests, integration tests, and manual testing to cover all use cases.
Gradual Rollout: Consider a phased approach to the upgrade. Begin with non-critical projects to identify and resolve any issues before applying the changes across the board.
Leverage Community Resources: Engage with the Django community for support and best practices. Many developers share their experiences and solutions, which can be invaluable during the upgrade process.
Conclusion
Upgrading to Django 3.2 is a significant step forward for your Django development company. While it requires careful planning and execution, the benefits in terms of compatibility, performance, and security make it a worthwhile investment. By staying ahead of the curve, your company can continue to deliver top-notch Django development services that meet the evolving needs of your clients.
Ideally, pulpcore would like to drop Python 3.6 support and upgrade to Django 3.2 as early as pulpcore 3.14 (June).
## Motivations
galaxy_ng asking platform to upgrade to 3.2
## Katello Release timeline
Katello plans to support CentOS 7/RHEL 7 (which has Python 3.6) until Katello 4.3 (branches in November).
Katello 4.3 will tentatively ship pulpcore 3.17 (September-ish) or pulpcore 3.18 (October-ish)
## Proposals
1. Require CentOS 7/RHEL 7 users to use a Python SCL
2.