Commit bc108fda authored by Cornelius Schumacher's avatar Cornelius Schumacher
Browse files

Initial commit

parents
__pycache__
*.~lock.*
# Blue Angel Application
This repository contains the material required for applying for the [Blue Angel](https://www.blauer-engel.de/en/) label for KDE software. The Blue Angel is an ecolabel of the German federal Government which is awarded in a lot of different product categories. End of 2019 they introduced the [Blue Angel label for software](https://www.blauer-engel.de/en/products/electric-devices/resources-and-energy-efficient-software-products/resources-and-energy-efficient-software-products) and published [criteria](https://produktinfo.blauer-engel.de/uploads/criteriafile/en/DE-UZ%20215-eng%20Criteria.pdf) based on energy consumption measurements and other sustainability aspects.
Our goal is to get the label for KDE applications, starting with Okular, Kate and KDevelop. As of January 2021 there are no listed products in the software category, so we could take a lead there. The criteria are free software friendly and currently only cover desktop software, so KDE is uniquely positioned to meet the requirements.
A big part of the criteria is the measurement of energy consumption. To get the data for this we created an open project to collect this data and drive more energy efficient software. The project is the [FOSS Energy Efficiency Project](https://github.com/cornelius/feep).
This repository tracks the effort to collect the data necessary for the application to certify our applications. The forms and supplemental information are listed here. Progress is tracked in the issues.
This is the working directory for creating the application for the Blue Angel label for Okular.
English documents retrieved from the [English software category page of the Blue Angel label](https://www.blauer-engel.de/en/products/electric-devices/resources-and-energy-efficient-software-products/resources-and-energy-efficient-software-products) ([Application Documents Update 07.07.2020](https://produktinfo.blauer-engel.de/uploads/raluz_uz/DE-UZ%20215-202001-en-Software%20Products-2020-07-07.zip)).
German documents retrieved from the [German software category page of the Blue Angel label](https://www.blauer-engel.de/de/produktwelt/elektrogeraete/ressourcen-und-energieeffiziente-softwareprodukte/ressourcen-und-energieeffiziente-softwareprodukte) ([Antragsunterlagen Stand 07.07.2020](https://produktinfo.blauer-engel.de/uploads/raluz_uz/DE-UZ%20215-202001-de-Softwareprodukte-2020-07-07.zip)).
These are templates for collecting the data which needs to be filled into the application form and its annexes. It contains of two parts, a template from which issues are generated to track filling out the information, and a set of files, which correspond to the annexes where the data is filled in.
The templates are used by copying the form templates to the directory for the application under `applications/<name of application>` and running the script `create_issues <name of application>` to create the issues on GitLab.
* [Annex 1](form/annex-1.md): Information and compliance with the criteria
* [Annex 2](form/annex-2.md): Spreadsheet file
* Annex 3: Measurement report
* [Annex 4](form/annex-4.md): Proof documents of the data formats
* [Annex 5](form/annex-5.md): Verification documents (Interface documentation, permalink to the software source code on a source code management platform, software licences or similar)
* [Annex 6](form/annex-6.md): Product information
* Annex 7: Measurement data in defined XML (see Appendix C)
# Annex 1: Information and compliance with the criteria
## Submitter Info
### Applicant
### Distributor (label user)
### Brand / trade name
### Product designation
### Product description
## Minimum system requirements
### Minimum processor architecture incl. generation
### Minimum local working memory required (MByte)
### Minimum local permanent storage required (MByte)
### Requirements for other software
### The required external services that are not available on the reference system
### The required additional hardware
## Hardware utilisation and electrical power consumption in idle mode
### Average processor utilisation in idle mode (%)
### Average working memory utilization in idle mode (Mbyte)
### Average permanent storage utilization in idle mode (MByte/s)
### Average bandwidth utilization for network access in idle mode (Mbit/s) (only contains the additional load, not the percentage share of the base load)
### Average electrical power consumption (net) (W)
## Hardware utilisation and energy demand when running a standard usage scenario
### Processor utilisation (%*s)
### Working memory utilisation (MByte*s)
### Permanent storage utilisation (reading and writing) (MByte/s*s
### Volume of data transferred for network access (Mbit/s*s)
### Average energy demand (net) (Wh)
## 3.1.2.1: Backward compatibility
### Calendar year
# Annex 2: Measurement
Info collected in spreadsheet file
## Details of the analysed product
### Product
### Version
### Manufacturer
### Software class (architecture)
## Measurement information
### Date of the measurement
### Details of the person who performed the measurement
#### Name
#### Mail
#### Other
### Institute ###
#### Designation
#### Address
#### Website
#### Other
### Notes
## Technical details of the measurement
### Measuring instrument
### Sampling frequency
### Length of the scenario
### Sample size
## Information on the reference system
### Reference system year (see Award Criteria, Annex D)
### Model
### Processor
### Cores
### Clock speed
### RAM
### Hard disk (SSD / HDD)
### Graphics card
### Network
### Cache
### Mainboard
### Operating system
## Information on the software stack (measuring system)
### Information
## Standard use case scenario
### Info
#### Software (Name)
#### Produktgruppe (z.B. Textverarbeitung)
#### Stand (Datum)
#### Bezeichnung
#### Autoren 
#### Softwareklasse
#### SUT
#### Lastgenerator
#### Prerequisites
#### Procedure
#### At the end of the measurement
# Annex 4: Data formats
## 3.1.3.1: Data formats
### Requirements
* Disclosure of data formats
* Submitting the manuals or technical data sheets in which the data formats are documented **_or_**
* Providing examples of other software products (from other suppliers) that can process these data formats **_or_**
* Stating the data formats and assigning them to an open standard.
### Documentation of data formats
# Annex 5: Open standards
## 3.1.3.2: Transparency of the software product
### Requirement
* The APIs should correspond to open standards.
## Documentation
*Interface documentation, permalink to the software source code on a source code management platform, software licences or similar*
# Annex 6: Product information
## 3.1.3.3: Continuity of the software product
### Requirements
* Security updates must be provided free of charge
* Security updates for the labelled product for at least 5 years after the end of sale
* The user must be given the option of whether to install only security updates or also other (e.g. functional) updates.
### Product information in which fullfilement of requirements is documented
## 3.1.3.4: Uninstallability
### Requirement
* Residue-free uninstallability of the software
### Product information in which fullfilement of requirements is documented
## 3.1.3.5: Offline capability
### Requirement
* The functionality and availability of the software must not be negatively influenced by external factors, such as the availability of a licence server.
### Product information in which fullfilement of requirements is documented
## 3.1.3.6: Modularity
### Requirements
* Information on how individual modules of the software product can be deactivated during the installation process.
* Information on the extent to which individual modules of the software product (especially those that do not belong to the functions of the software product such as tracking, etc.) can be deactivated during the use of the software product.
### Product information in which fullfilement of requirements is documented
## 3.1.3.8: Documentation of the software product, licence conditions and terms of use
### Requirement
Information about the software product both publicly and also in combination with the product itself:
a) Description of the processes for installing and uninstalling the software
b) Description of the data import and export processes
c) Information on reducing the use of resources
d) Information on the licensing terms and terms of use to enable, where relevant, the legally compliant further development of the software product
e) Information on software support
f) Information on the handling of data, in the sense of existing data protection laws
g) Information on data security, data collection and data transmission
### Product information in which fullfilement of requirements is documented
## 3.2.1: Requirements for the further development and update of the product
### Requirement
If the product is changed (e.g. through updates), it must be ensure that the software product still complies with all of the criteria.
### Product information in which fullfilement of requirements is documented
# Intro: Submitter Info
/label ~"Annex 1"
* [ ] Applicant
* [ ] Distributor (label user)
* [ ] Brand / trade name
* [ ] Product designation
* [ ] Product description
# Intro 3.1.1.1: Minimum system requirements
/label ~"Annex 1"
* [ ] Minimum processor architecture incl. generation
* [ ] Minimum ocal working memory required (MByte)
* [ ] Minimum local permanent storage required (MByte)
* [ ] Requirements for other software
* [ ] The required external services that are not available on the reference system
* [ ] The required additional hardware
# Intro 3.1.1.2: Hardware utilisation and electrical power consumption in idle mode
/label ~"Annex 1"
* [ ] Average processor utilisation in idle mode (%)
* [ ] Average working memory utilization in idle mode (Mbyte)
* [ ] Average permanent storage utilization in idle mode (MByte/s)
* [ ] Average bandwidth utilization for network access in idle mode (Mbit/s) (only contains the additional load, not the percentage share of the base load)
* [ ] Average electrical power consumption (net) (W)
# Intro 3.1.1.3: Hardware utilisation and energy demand when running a standard usage scenario
/label ~"Annex 1"
* [ ] Processor utilisation (%*s)
* [ ] Working memory utilisation (MByte*s)
* [ ] Permanent storage utilisation (reading and writing) (MByte/s*s)
* [ ] Volume of data transferred for network access (Mbit/s*s)
* [ ] Average energy demand (net) (Wh)
# 3.1.1.2: Hardware utilisation and electrical power consumption in idle mode
/label ~"Annex 1" ~"Annex 2" ~"Annex 3"
**Requirement**
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Spreadsheet file (Annex 2)
* [ ] Measurement report (Annex 3)
# 3.1.1.3: Hardware utilisation and energy demand when running a standard usage scenario
/label ~"Annex 1" ~"Annex 2" ~"Annex 3"
**Requirement**
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Spreadsheet file (Annex 2)
* [ ] Measurement report (Annex 3)
# 3.1.1.4: Support for the energy management system
/label ~"Annex 1"
**Requirement**: The software product must be capable of unrestricted functional use with activated energy management of the underlying system layers or the connected client systems.
* [ ] Compliance with the requirement is confirmed.
# 3.1.2.1: Backward compatibility
/label ~"Annex 1" ~"Annex 2"
**Requirement**: The software product must be able to run on a reference system from a calendar year that is at least five years before time of application.
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Spreadsheet file (Annex 2)
* [ ] Calendar year
# 3.1.3.1: Data formats
/label ~"Annex 1" ~"Annex 4"
**Requirement**: Disclosure of data formats
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Documentation in Annex 4
* [ ] Submitting the manuals or technical data sheets in which the data formats are documented **_or_**
* [ ] Providing examples of other software products (from other suppliers) that can process these data formats **_or_**
* [ ] Stating the data formats and assigning them to an open standard.
# 3.1.3.2: Transparency of the software product
/label ~"Annex 1" ~"Annex 5"
**Requirement:** The APIs should correspond to open standards.
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Interface documentation, permalink to the software source code on a source code management platform, software licences or similar (Annex 5)
# 3.1.3.3: Continuity of the software product
/label ~"Annex 1" ~"Annex 6"
**Requirement:** Security updates must be provided free of charge
* [ ] Compliance with the requirement is confirmed.
**Requirement:** Security updates for the labelled product for at least 5 years after the end of sale
* [ ] Compliance with the requirement is confirmed.
**Requirement:** The user must be given the option of whether to install only security updates or also other (e.g. functional) updates.
* [ ] Compliance with the requirement is confirmed.
**Documentation:**
* [ ] Product information in which software updates are indicated (Annex 6)
# 3.1.3.4: Uninstallability
/label ~"Annex 1" ~"Annex 6"
**Requirement:** Residue-free uninstallability of the software
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Product information in which the process for uninstalling the software is indicated (Annex 6)
**Requirement:** Created and processed data may not be automatically deleted (exception: the user confirms the deletion)
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Product information in which the process for uninstalling the software is indicated (Annex 6)
# 3.1.3.5: Offline capability
/label ~"Annex 1" ~"Annex 6"
**Requirement:** The functionality and availability of the software must not be negatively influenced by external factors, such as the availability of a licence server.
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Product information in which the offline capability is indicated (Annex 6)
# 3.1.3.6: Modularity
/label ~"Annex 1" ~"Annex 6"
**Requirement:** Information on how individual modules of the software product can be deactivated during the installation process.
* [ ] Compliance with the requirement is confirmed.
**Requirement:** Information on the extent to which individual modules of the software product (especially those that do not belong to the functions of the software product such as tracking, etc.) can be deactivated during the use of the software product.
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Product information in which the modularity is indicated (Annex 6)
# 3.1.3.7: Freedom from advertising
/label ~"Annex 1"
**Requirement:** Free of advertising
* [ ] Compliance with the requirement is confirmed.
# 3.1.3.8: Documentation of the software product, licence conditions and terms of use
/label ~"Annex 1" ~"Annex 6" ~"Annex 7"
**Requirement:** Information about the software product both publicly and also in combination with the product itself:
a) Description of the processes for installing and uninstalling the software
b) Description of the data import and export processes
c) Information on reducing the use of resources
d) Information on the licensing terms and terms of use to enable, where relevant, the legally compliant further development of the software product
e) Information on software support
f) Information on the handling of data, in the sense of existing data protection laws
g) Information on data security, data collection and data transmission
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Relevant pages of the product information (Annex 6)
**Requirement:** Contents of the spreadsheet file for the collection of criteria (Annex 2) will be published on the website of the respective product
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] The data are attached to a defined data format (see Appendix C) (Annex 7)
# 3.2.1: Requirements for the further development and update of the product
/label ~"Annex 1" ~"Annex 2" ~"Annex 6" ~"Annex 7"
**Requirement:** If the product is changed (e.g. through updates), it must be ensure that the software product still complies with all of the criteria.
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Spreadsheet file for recording the criteria (Annex 2)
* [ ] Productinformation (Annex 6)
* [ ] The data are attached to a defined data format (see Appendix C) (Annex 7)
# 3.3.1: Final evaluation
/label ~"Annex 1"
**Requirement:** A resource efficiency report is submitted at the end of the term of the contract.
* [ ] Compliance with the requirement is confirmed.
**Documentation**
* [ ] Addition to the spreadsheet file
# Details of the analysed product
/label ~"Annex 2"
* [ ] Product
* [ ] Version
* [ ] Manufacturer
* [ ] Software class (architecture)
# Measurement information
/label ~"Annex 2"
* [ ] Date of the measurement
**Details of the person who performed the measurement:**
* [ ] Name
* [ ] Mail
* [ ] Other
**Institute:**
* [ ] Designation
* [ ] Addresse
* [ ] Website
* [ ] Other
**Notes:**
* [ ] Notes on the measurement
# Technical details of the measurement
/label ~"Annex 2"
* [ ] Measuring instrument
* [ ] Sampling frequency
* [ ] Length of the scenario
* [ ] Sample size
# Information on the reference system
/label ~"Annex 2"
* [ ] Reference system year (see Award Criteria, Annex D)
* [ ] Model
* [ ] Processor
* [ ] Cores
* [ ] Clock speed
* [ ] RAM
* [ ] Hard disk (SSD / HDD)
* [ ] Graphics card
* [ ] Network
* [ ] Cache
* [ ] Mainboard
* [ ] Operating system
# Information on the software stack (measuring system)
/label ~"Annex 2"
* [ ] Information
# Standard use case scenario
/label ~"Annex 2"
* Info
* [ ] Software (Name)
* [ ] Produktgruppe (z.B. Textverarbeitung)
* [ ] Stand (Datum)
* [ ] Bezeichnung
* [ ] Autoren 
* [ ] Softwareklasse:
* [ ] SUT:
* [ ] Lastgenerator
* [ ] Prerequisites
* [ ] Procedure
* [ ] At the end of the measurement
Helper tools for handling issues on GitLab.
`get_issues.py` retrieves issues from GitLab
`create_issues.py` creates new issues for an application from the template in `templates/issues.md`.
#!/usr/bin/env python3
import requests
import os
from graphql import Mutation, Query
class Api: