fix parsing errors and sphinx warnings

Signed-off-by: Ryan Lerch <rlerch@redhat.com>
This commit is contained in:
Ryan Lercho 2023-11-16 08:02:56 +10:00 committed by zlopez
parent 8fb9b2fdf0
commit ba720c3d77
98 changed files with 4799 additions and 4788 deletions

View file

@ -3,70 +3,68 @@
Use v2 Code Of kerneltest Application
=====================================
There is already a work in progress rewrite of kerneltest application started by Jeremy Cline,
which was never finished. This document is investigating if this option is feasible
and we should continue on the code already written.
From meeting with Justin Forbes this code is not 100% ready, which is the reason it was never
been released.
There is already a work in progress rewrite of kerneltest application started by Jeremy
Cline, which was never finished. This document is investigating if this option is
feasible and we should continue on the code already written. From meeting with Justin
Forbes this code is not 100% ready, which is the reason it was never been released.
What is in v2
-------------
* Some unit tests in `kerneltest/tests` (not covering everything,
but at least part of the code is covered) run by tox - failing
with never version of libraries
* API calls for `/api/v1/results`
- Some unit tests in `kerneltest/tests` (not covering everything, but at least part of
the code is covered) run by tox - failing with never version of libraries
- API calls for `/api/v1/results`
* GET method to retrieve tests information
* POST method to add new test run to db
(authentication scopes doesn't seem to be set correctly)
* Sending Fedora message when adding a new test run
- GET method to retrieve tests information
- POST method to add new test run to db (authentication scopes doesn't seem to be set
correctly)
- Sending Fedora message when adding a new test run
* Basic OIDC implementation using `flask_oidc` library
* Configuration file loading and defaults
* Forms for updating/creating release and submitting logs are in place
* Web routes implemented
- Basic OIDC implementation using `flask_oidc` library
- Configuration file loading and defaults
- Forms for updating/creating release and submitting logs are in place
- Web routes implemented
* `/index`
* `/login`
* `/logout`
* `/release/<release>` - information about specific fedora release
* `/kernel/<kernel>` - information about specific kernel version
* `/results/<test_run_id>` - information about specific test
* `/upload` - test result uploading
* `/stats`
* `/admin/new` - add new release (does emit fedora message)
* `/admin/<release>/edit` - edit existing release (does emit fedora message)
- `/index`
- `/login`
- `/logout`
- `/release/<release>` - information about specific fedora release
- `/kernel/<kernel>` - information about specific kernel version
- `/results/<test_run_id>` - information about specific test
- `/upload` - test result uploading
- `/stats`
- `/admin/new` - add new release (does emit fedora message)
- `/admin/<release>/edit` - edit existing release (does emit fedora message)
* DB models for Test, TestRun and Release
- DB models for Test, TestRun and Release
What is missing in v2
---------------------
* Documentation
* No support for uploading logs yet
* Web interface revitalization
* Code itself more than 3 years old, there could be some issue with newer libraries
- Documentation
- No support for uploading logs yet
- Web interface revitalization
- Code itself more than 3 years old, there could be some issue with newer libraries
Notes
-----
* There is a `kerneltest/harness.py` source file in the v2. This could be ignored as it's
maintained separately and isn't part of the kerneltest application.
* The Vagrantfile introduced with v2 rewrite doesn't start with vagrant 2.2.19, see
- There is a `kerneltest/harness.py` source file in the v2. This could be ignored as
it's maintained separately and isn't part of the kerneltest application.
- The Vagrantfile introduced with v2 rewrite doesn't start with vagrant 2.2.19, see
https://github.com/hashicorp/vagrant/issues/12878
* Ansible for vagrant provisioning is missing installation of some packages for database
- Ansible for vagrant provisioning is missing installation of some packages for database
creation (python-alembic, python-toml)
* Ansible for vagrant provisioning doesn't create config file. Because of this creation of
the database fails
* The current state of v2 can't be even started, failing on newer version of wtforms library
- Ansible for vagrant provisioning doesn't create config file. Because of this creation
of the database fails
- The current state of v2 can't be even started, failing on newer version of wtforms
library
The Good Points
---------------
1. Not starting from scratch = less work
The Bad points
--------------

View file

@ -3,54 +3,52 @@
Current Live Version of Kernel Test App v1.2.1
==============================================
The current version of the Kernel Test App running is v1.2.1
The code is no longer maintained and stale since 2017. There was an attempted
rewrite but this was never put live
The current version of the Kernel Test App running is v1.2.1 The code is no longer
maintained and stale since 2017. There was an attempted rewrite but this was never put
live
Resources
---------
Release 1.2.1: https://github.com/jmflinuxtx/kerneltest-harness/tree/c2d807506e2a9ac3ca6bc5b60405b5700a72719c
Release 1.2.1:
https://github.com/jmflinuxtx/kerneltest-harness/tree/c2d807506e2a9ac3ca6bc5b60405b5700a72719c
What is in v1.21
-------------
----------------
* Tests are in the `tests` folder and appear to cover most functionality
* Uses flask `fas_openid` library for authentication
* Configuration file loading and defaults
* Forms for updating/creating release and submitting logs are in place
* Web routes implemented
* `/` - index
* `/release/<release>` - info about release version specified
* `/kernel/<kernel>` - info about kernel version specified
* `/logs/<logid>`
* `/stats`
* `/upload`
* `/upload/autotest`
* `/upload/anonymous`
* `/login`
* `/logout`
* `/admin/new` - Add new release
* `/admin/<relnum>/edit` - edit existing release
- Tests are in the `tests` folder and appear to cover most functionality
- Uses flask `fas_openid` library for authentication
- Configuration file loading and defaults
- Forms for updating/creating release and submitting logs are in place
- Web routes implemented
- `/` - index
- `/release/<release>` - info about release version specified
- `/kernel/<kernel>` - info about kernel version specified
- `/logs/<logid>`
- `/stats`
- `/upload`
- `/upload/autotest`
- `/upload/anonymous`
- `/login`
- `/logout`
- `/admin/new` - Add new release
- `/admin/<relnum>/edit` - edit existing release
Notes
-----
* There is no documentation
* This is the live version and it works as is
* Web interface outdated
* Old unmaintained codebase(all functionality in single file)
* Local vagrant solution uses outdated version of Fedora and doesn't currently
work
- There is no documentation
- This is the live version and it works as is
- Web interface outdated
- Old unmaintained codebase(all functionality in single file)
- Local vagrant solution uses outdated version of Fedora and doesn't currently work
The Good Points
---------------
1. The application works as expected and provides necessary functionality
The Bad points
--------------

View file

@ -3,15 +3,15 @@
Enhancement of dev env for kerneltest
=====================================
There is plenty of tech debt regarding the kerneltest repository. This document
will try to address all the current tech debt tied to kerneltest repository.
There is plenty of tech debt regarding the kerneltest repository. This document will try
to address all the current tech debt tied to kerneltest repository.
Investigation
-------------
* CI - Currently using Travis CI, which is no longer working. Recommending to switch
to either GitHub action or use Zuul CI
* Development environment - There is a vagrant using F25, needs to be updated
* Automatic dependency updater - recommending renovate
* When moving to OpenShift we can consolidate adding automatic deployment with
GitHub webhooks
- CI - Currently using Travis CI, which is no longer working. Recommending to switch to
either GitHub action or use Zuul CI
- Development environment - There is a vagrant using F25, needs to be updated
- Automatic dependency updater - recommending renovate
- When moving to OpenShift we can consolidate adding automatic deployment with GitHub
webhooks

View file

@ -4,48 +4,47 @@ kerneltest
Purpose
-------
This investigation's goal is to address tech debt of kerneltest application.
kerneltest applications is used by Fedora QA for submitting test logs for
kernel builds in Fedora. It also provides web interface for users to access
and upload logs.
Currently there is a partial rewrite v2 in repository, which is not functionality
complete and was never released.
This investigation's goal is to address tech debt of kerneltest application. kerneltest
applications is used by Fedora QA for submitting test logs for kernel builds in Fedora.
It also provides web interface for users to access and upload logs. Currently there is a
partial rewrite v2 in repository, which is not functionality complete and was never
released.
Resources
---------
* kerneltest repo: https://github.com/jmflinuxtx/kerneltest-harness
* kerneltest web: https://apps.fedoraproject.org/kerneltest/
* kerneltest ansible: https://pagure.io/fedora-infra/ansible/blob/main/f/roles/kerneltest
* kerneltest wiki: http://fedoraproject.org/wiki/KernelTestingInitiative
- kerneltest repo: https://github.com/jmflinuxtx/kerneltest-harness
- kerneltest web: https://apps.fedoraproject.org/kerneltest/
- kerneltest ansible:
https://pagure.io/fedora-infra/ansible/blob/main/f/roles/kerneltest
- kerneltest wiki: http://fedoraproject.org/wiki/KernelTestingInitiative
Requirements
------------
* Be able to upload logs anonymously, authenticated, super user
* Superuser should use api token or similar(no password login required)
* Be able to view logs on front page showing super user ones
* When clicking on the release it should show all logs for a release
* Stats: https://apps.fedoraproject.org/kerneltest/stats (currently stored in postgres)
* Logs needs to be saved in persistent volume
* Send Fedora Messages for badges
* Size limitation on the uploaded logs (currently hardcoded in code)
* Documentation
* OpenShift deployment
- Be able to upload logs anonymously, authenticated, super user
- Superuser should use api token or similar(no password login required)
- Be able to view logs on front page showing super user ones
- When clicking on the release it should show all logs for a release
- Stats: https://apps.fedoraproject.org/kerneltest/stats (currently stored in postgres)
- Logs needs to be saved in persistent volume
- Send Fedora Messages for badges
- Size limitation on the uploaded logs (currently hardcoded in code)
- Documentation
- OpenShift deployment
What Needs To Be Addressed?
---------------------------
* Update authentication library
* Switch CI
* fedmsg -> fedora messaging (some v2 parts could be used)
* python2 -> python3
* migration to OpenShift
* Documentation - Fedora QA has some
* Users don't receive any badges
* Update development environment
* Web interface (should be revitalized)
- Update authentication library
- Switch CI
- fedmsg -> fedora messaging (some v2 parts could be used)
- python2 -> python3
- migration to OpenShift
- Documentation - Fedora QA has some
- Users don't receive any badges
- Update development environment
- Web interface (should be revitalized)
Investigation
-------------
@ -60,25 +59,23 @@ Here is the list of ideas/things we discussed/looked at:
continue_from_v2
enhancement_of_repository
Conclusions
-----------
The best approach for the kerneltest initiative will be the complete rewrite
with salvaging what could be salvaged from v1.2.1 and v2 rewrite.
The best approach for the kerneltest initiative will be the complete rewrite with
salvaging what could be salvaged from v1.2.1 and v2 rewrite.
Proposed Roadmap
----------------
* Step 1 - Update the development environment
* Step 2 - Rewrite the kerneltest app with tests + documentation
* Step 3 - OpenShift migration
* Step 4 - Database migration
- Step 1 - Update the development environment
- Step 2 - Rewrite the kerneltest app with tests + documentation
- Step 3 - OpenShift migration
- Step 4 - Database migration
Estimate of work
----------------
A complete rewrite of the backend and Openshift deployment is estimated to take
3 developers 12 weeks.
The frontend is estimated to take 3 developers 8 weeks, although it may be a
project the Fedora Websites and Apps team could consider.
A complete rewrite of the backend and Openshift deployment is estimated to take 3
developers 12 weeks. The frontend is estimated to take 3 developers 8 weeks, although it
may be a project the Fedora Websites and Apps team could consider.

View file

@ -4,19 +4,18 @@ Complete Rewrite Of kerneltest Application
==========================================
One of the options is to completely rewrite the current solution and start from scratch.
This will allow us to address all the requirements and get rid of all the existing tech debt.
We can also reuse some code from v2 rewrite.
This will allow us to address all the requirements and get rid of all the existing tech
debt. We can also reuse some code from v2 rewrite.
Requirements
------------
See `https://fedora-arc.readthedocs.io/en/latest/kerneltest/index.html#requirements`_.
See https://fedora-arc.readthedocs.io/en/latest/kerneltest/index.html#requirements.
There are also a few other things that need to be addressed:
* OpenShift deployment
* Database migration (in case the DB schema will change)
- OpenShift deployment
- Database migration (in case the DB schema will change)
The Good Points
---------------
@ -25,7 +24,6 @@ The Good Points
2. More freedom in implementation
3. It will be easier to write documentation
The Bad points
--------------