73 lines
3.3 KiB
ReStructuredText
73 lines
3.3 KiB
ReStructuredText
.. _revitalization:
|
|
|
|
Revitalization of github2fedmsg application
|
|
===========================================
|
|
|
|
This document will investigate the possibility of updating the code base we currently
|
|
have.
|
|
|
|
What needs to be addressed (from our index)
|
|
-------------------------------------------
|
|
|
|
**Python 2 -> Python 3**
|
|
| *Current situation*: Written in Python 2.7.x which is now `EOLed
|
|
<https://www.python.org/doc/sunset-python-2/>`_.
|
|
| *Suggested outcome*: Python 3.10.x (and above).
|
|
| *Reason(s)*: Benefits from performance improvements, bug fixes, security patches
|
|
etc. of the language.
|
|
|
|
**Migration to OpenShift**
|
|
| *Current situation*: The app is running in a Virtual Machine (VM).
|
|
| *Suggested outcome*: Deploy it as an OpenShift service.
|
|
| *Reason(s)*: Automated deployments and we already have an OpenShift cluster.
|
|
|
|
**Documentation**
|
|
| *Current situation*: Only a brief README file and `SOP
|
|
<https://docs.fedoraproject.org/en-US/infra/sysadmin_guide/github2fedmsg/>`_ are
|
|
available.
|
|
| *Suggested outcome*: It would be great if the documentation was more extensive.
|
|
It should include instructions about setting up the development environment,
|
|
contributing guidelines, code of conduct, etc. This is also covered in the `dev
|
|
environment enhancement doc
|
|
<https://fedora-arc.readthedocs.io/en/latest/github2fedmsg/enhancing_the_development_environment.html>`_.
|
|
| *Reason(s)*: Easier onboarding and setting expectations for contributors.
|
|
|
|
**Porting to Authlib**
|
|
| *Current outcome*: The authentication library used is `Velruse
|
|
<https://velruse.readthedocs.io/en/latest/usage.html>`_.
|
|
| *Suggested using*: `Authlib <https://authlib.org/>`_.
|
|
| *Reason(s)*: Velruse hasn't been updated in 9 years and Authlib is in active
|
|
development.
|
|
|
|
**Development environment**
|
|
| *Current situation*: This is covered in depth in our other document about
|
|
enhancing the development environment.
|
|
|
|
Notes
|
|
-----
|
|
|
|
- setuptools>=58 `breaks support for 2to3
|
|
<https://setuptools.pypa.io/en/latest/history.html#v58-0-0>`_.
|
|
- 2to3 is `deprecated since Python 3.11 and will be removed in Python 3.13
|
|
<https://docs.python.org/3/library/2to3.html>`_.
|
|
|
|
The Good and the Bad
|
|
--------------------
|
|
|
|
**Advantages**
|
|
1. The project is written in (now EOLed) Python 2.7.x and as Python 3 is currently
|
|
in active development, the project can benefit from the performance improvements,
|
|
bug fixes, and security patches included in the language itself.
|
|
2. The project makes use of a certain set of dependencies, the support of which has
|
|
not been ported from Python 2 to Python 3. Porting into Python 3 would
|
|
necessitate the use of newer dependencies which would be more updated, secure and
|
|
maintained.
|
|
|
|
**Disadvantages**
|
|
1. The move from Python 2 to Python 3 would require special attention into finding
|
|
the alternatives for the dependencies which either support only Python 2 or are
|
|
unmaintained as of 2022. Inability to find those would render the rewrite
|
|
unsuccessful.
|
|
2. We will continue using the `Pyramid web framework <https://trypyramid.com/>`_,
|
|
however the team lacks the expertise with it. This makes the app difficult to
|
|
maintain and team members would have to upskill in this area.
|