diff --git a/docs/initiatives.rst b/docs/initiatives.rst index 26aa0f3..152618b 100644 --- a/docs/initiatives.rst +++ b/docs/initiatives.rst @@ -11,6 +11,7 @@ Drafts fmn/index badges/index + kerneltest/index Completed review ---------------- diff --git a/docs/kerneltest/continue_from_v2.rst b/docs/kerneltest/continue_from_v2.rst new file mode 100644 index 0000000..b91c7d3 --- /dev/null +++ b/docs/kerneltest/continue_from_v2.rst @@ -0,0 +1,59 @@ +.. _continue_from_v2: + +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. + +What is in v2 +------------- + +* Some unit tests in `kerneltest/tests` (not covering everything, + but at least part of the code is covered) using tox +* 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 + +* 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/` - information about specific fedora release + * `/kernel/` - information about specific kernel version + * `/results/` - information about specific test + * `/upload` - test result uploading + * `/stats` + * `/admin/new` - add new release (does emit fedora message) + * `/admin//edit` - edit existing release (does emit fedora message) + +* 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 + +The Good Points +--------------- + +1. Not starting from scratch = less work + + +The Bad points +-------------- + +1. Make familiar with existing code = more time needed diff --git a/docs/kerneltest/enhancement_of_repository.rst b/docs/kerneltest/enhancement_of_repository.rst new file mode 100644 index 0000000..ce511ea --- /dev/null +++ b/docs/kerneltest/enhancement_of_repository.rst @@ -0,0 +1,18 @@ +.. _enhancement_of_repository: + +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. + +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 ( + issues encountered with ansible when trying to just use newer Fedora version) +* Automatic dependency updater - recommending renovate +* When moving to OpenShift we can consolidate adding automatic deployment with + GitHub webhooks diff --git a/docs/kerneltest/index.rst b/docs/kerneltest/index.rst new file mode 100644 index 0000000..d7d1d78 --- /dev/null +++ b/docs/kerneltest/index.rst @@ -0,0 +1,70 @@ +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. + +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 + +Requirements +------------ + +* Be able to upload logs anonymously, authenticated, super user +* 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) + + +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) + +Investigation +------------- + +Here is the list of ideas/things we discussed/looked at: + +.. toctree:: + :maxdepth: 1 + + rewrite_of_kerneltest_app + continue_from_v2 + enhancement_of_repository + + +Conclusions +----------- + + + +Proposed Roadmap +---------------- + +* Step 1 - Address tech debt in kerneltest application +* Step 2 - ??? +* Step 3 - Profit! diff --git a/docs/kerneltest/rewrite_of_kerneltest_app.rst b/docs/kerneltest/rewrite_of_kerneltest_app.rst new file mode 100644 index 0000000..9eaf0e7 --- /dev/null +++ b/docs/kerneltest/rewrite_of_kerneltest_app.rst @@ -0,0 +1,23 @@ +.. _rewrite_of_kerneltest_app: + +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. + + +The Good Points +--------------- + +1. Good knowledge of the codebase = easier to do any future changes +2. More freedom in implementation +3. It will be easier to write documentation + + +The Bad points +-------------- + +1. More work for us +2. Existing code will be thrown away