From KDE Community Wiki

Sustainability 1: Testing and Developement of KEcoLab

Project Abstract:

Sustainability is one of KDE's goals for the next two years. One aspect of this goal is to measure the energy consumption of KDE software. To do this, it is necessary to access the lab in KDAB, Berlin, which can now be done remotely using "KEcoLab". Further testing and integrating KEcoLab into Blue Angel certified projects is also necessary and this project aims to achieve that. A detailed proposal can be found here and the following are the deliverables:

  1. Integrate Okular sus scripts into Okular's Pipeline (Solves #2)
  2. Integrate CI/CD pipelines with E2E tests or Integration tests (Solves #10):
    1. Have Kate/Okular scripts(xdotool, Selenium and KdeEcoTest) which would be a CI test after each MR to make sure KEcoLab works well.
    2. To make sure energy requirement measured using all 3 scripts mentioned above remains constant with +-(5 to 10)% accuracy rate after every MR
  3. Usage scenario scripting with Selenium(Solves #5)
  4. Usage scenario scripts with KdeEcoTest


Karanjot Singh and Joseph P. De Veaugh-Geiss

Blog Post:

KEcoLab in SoK24: Incorporating Energy-Consumption Measurements in the CI/CD pipeline

Merge Requests:

1. Updated Kate Test Scripts

2. Added okular scripts to Remote Eco Lab

3. Added Option to Run Configuration Scripts

4. Measurement Template for KEcoLab

Weekly Progress:

  1. Week 1-2:
    1. Setup 3 virtual machines and installed Selenium on all 3 of them
    2. Contacted and discussed KEcoLab implementation details with the Okular team.
    3. Discussed about the timeline of adding Wayland support with KdeEcoTest team.
    4. Went through gitlab-ci templates used by KDE in various other projects to get an Idea about generating one for KEcoLab
    5. Tested out Okular script prepared by Joseph and created a PR to update it.
  2. Week 3:
    1. OFF in lieu of being a speaker and conducting a workshop at Conf KDE India 2024.
  3. Week 4-5:
    1. Discussed the implementation details with the community and maintained communication with okular team regarding the integration of KEcoLab.
    2. Started working on the yaml template to integrate KEcoLab in Okular's pipeline.
    3. Started work on mid term blog post.
  4. Week 6-7
    1. Tested the pipeline on a test repo for the following things:
      1. Triggering KEcoLab's pipeline for energy measurement-
        1. using Web UI.
        2. pushing the tag through Git.
      2. Pipeline runs on triggering it manually through the Web UI.
      3. Pipeline does not run on merge request.
      4. Prevent pipeline from running on every commit push.
  5. Week 8-9
    1. Started Testing the pipeline on my fork of okular.
    2. Continued work on the blog post.
  6. Week 10
    1. Completed the blog post.
    2. Completed the Status report.