SoK/Ideas/2024: Difference between revisions

From KDE Community Wiki
< SoK
m (Formatting)
(Add more requirements)
 
(18 intermediate revisions by 6 users not shown)
Line 7: Line 7:
All community members can submit an idea for a Season of KDE project. If you have an idea, reach out to the different people on the team to see if at least one core member would like to mentor and ask if you can add their contact info to the idea below.
All community members can submit an idea for a Season of KDE project. If you have an idea, reach out to the different people on the team to see if at least one core member would like to mentor and ask if you can add their contact info to the idea below.


'''Do not add SoK ideas with no mentor and no contact info.'''
'''Do not add SoK ideas with no mentor and no contact info. You can only be a mentor if you are a KDE contributor/maintainer.'''


=== Information for mentees ===
=== Information for mentees ===
Line 71: Line 71:




=== Sustainability 1: Testing and development of "KEcoLab" ===
=== Sustainability 1: Testing and development of "KEcoLab" (SLOT TAKEN) ===


'''Project type:''' Coding
'''Project type:''' Coding


'''Brief explanation:''' [https://community.kde.org/Goals/Sustainable_Software 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 [https://invent.kde.org/teams/eco/remote-eco-lab/-/issues "KEcoLab"]. A list of to-dos can be found at the repository's [https://invent.kde.org/teams/eco/feep/-/issues Issues], including testing and integration into KDE software repositories. For the project, please put together a plan for resolving the issues you would be interested in working on and check with mentors before submitting a proposal.  
'''Brief explanation:''' [https://community.kde.org/Goals/Sustainable_Software 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 [https://invent.kde.org/teams/eco/remote-eco-lab/ "KEcoLab"]. A list of to-dos can be found at the repository's [https://invent.kde.org/teams/eco/remote-eco-lab/-/issues], including testing and integration into KDE software repositories. For the project, please put together a plan for resolving the issues you would be interested in working on and check with mentors before submitting a proposal.  


'''Expected results:''' At the end of the project several of the to-dos in the above list should be resolved (while new ones may be added).
'''Expected results:''' At the end of the project several of the to-dos in the above list should be resolved (while new ones may be added).
Line 83: Line 83:
'''Mentors:''' Karanjot Singh @drquark:kde.org, Joseph P. De Veaugh-Geiss @joseph:kde.org on Matrix
'''Mentors:''' Karanjot Singh @drquark:kde.org, Joseph P. De Veaugh-Geiss @joseph:kde.org on Matrix


=== Sustainability 2: Improve "KdeEcoTest" emulation tool ===
=== Sustainability 2: Improve "KdeEcoTest" emulation tool (SLOT TAKEN) ===


'''Project type:''' Coding
'''Project type:''' Coding
Line 95: Line 95:
'''Mentors:''' Emmanuel Charruau @allon:kde.org, Joseph P. De Veaugh-Geiss @joseph:kde.org on Matrix
'''Mentors:''' Emmanuel Charruau @allon:kde.org, Joseph P. De Veaugh-Geiss @joseph:kde.org on Matrix


=== Implementing speech editing in KRecorder - needs mentors===  
=== Sustainability 3: Selenium automation of energy measurement / accessibility tests for KDE applications (SLOT TAKEN) ===


'''Project type:''' Coding
'''Project type:''' Coding


'''Brief explanation:''' There are paid, online tools (like Descript) that can transcribe voice recordings and let the user edit them. KDE doesn't yet have a solution offering this. The closest is Kdenlive's subtitles with Whisper. Having Whisper integrated into KRecorder would have several positives:
'''Brief explanation:''' Both the  [https://community.kde.org/Goals/Sustainable_Software Sustainable Software] and the [https://community.kde.org/Goals/KDE_For_All Accessibility "KDE For All"] goals require automated testing -- which, in fact, is itself also fulfills the goal to [https://community.kde.org/Goals/Automate_and_systematize_internal_processes "Automate and Systematize Internal Processes"]. [https://invent.kde.org/sdk/selenium-webdriver-at-spi "Selenium Webdriver AT-SPI"] is just such a tool for achieving this (see Harald Sitter's [https://apachelog.wordpress.com/2022/12/14/selenium-at-spi-gui-testing/ blog post]). The tooling is still in development, but we can already begin writing automated tests for several KDE applications and documenting the process for other developers.
* User friendly way to transcribe voice recordings
* Remove words from the transcribed text and KRecorder automatically removes them from the recording
* Simple audio cutting interface for manual edits


'''Expected results:''' A stable and usable implementation of this feature
'''Expected results:''' At the end of the project this and other issues should be addressed, while new ones may be added (see also the [https://invent.kde.org/sdk/selenium-webdriver-at-spi/-/issues Issues] at the repo):


'''Knowledge Prerequisite:''' C++, QML knowledge
* Automating the setup of Selenium Webdriver AT-SPI (see KDE Eco Selenium guide below for current setup procedure)
* Automating tests for a subset of KDE apps
* Bringing the [https://invent.kde.org/teams/eco/be4foss/-/merge_requests/79 KDE Eco Selenium guide] up-to-date


'''Mentors:''' ???
'''Knowledge Prerequisite:''' Selenium
 
'''Mentors:''' Nitin Tejuja @nitin.tejuja12:matrix.org, Rishi Kumar @k3ys:matrix.org, Emmanuel Charruau @allon:kde.org
 
=== Cantor: Extend the embedded documentation for supported Computer Algebra Systems ===
 
'''Project type:''' Documentation, Coding
 
'''Brief explanation:''' [https://cantor.kde.org/ Cantor] provides a graphical interface to multiple open-source computer algebra systems and programming languages. It is possible to download the documentation for some of the systems/languages from [https://store.kde.org/browse?cat=650&ord=latest KDE Store] for easier and more direct search in the documentation from within Cantor. For this, the documentation that is usually available in html format is converted to Qt's help files (s.a. [https://doc.qt.io/qt-5/qthelp-framework.html The Qt Help Framework]) and is uploaded to [https://store.kde.org KDE Store]. The download in Cantor is happening via [https://api.kde.org/frameworks/knewstuff/html/index.html KDE's NewStuff Framework]. At the moment only a few documentation files are available and the purpose of this project is to convert more of the publicly available documentation, tutorials or books to Qt's help format.
 
'''Expected results:''' At the end of the project more documentation and for more systems should be available to download from the store for Cantor's users. Required steps:
 
* become familiar with QtHelp
* become familiar with the python scripts in Cantor's repository used to convert from html to QtHelp for already available documentation in the QtHelp format
* create QtHelp files for newer versions for the already available documentations
* work out similar scripts for other languages/systems where there is no embedded documentation available yet
* upload new documentation files to [https://store.kde.org/browse?cat=650&ord=latest KDE Store]
 
'''Knowledge Prerequisite:''' basic knowledge of python and html and basic understanding of how QtHelp works
 
'''Mentor:''' Alexander Semke @asemke:kde.org
 
=== LabPlot: Download/Import of data sets from kaggle.com ===
 
'''Project type:''' LabPlot
 
'''Brief explanation:''' [https://labplot.kde.org/ LabPlot] is a data visualization and analysis software. For testing and study purposes LabPlot provides an easy access to multiple collection of publicly available datasets and simplifies the download from the internet and import of them, s. a. [https://labplot.kde.org/2020/01/03/educational-data-sets/ this blog post]. In addition to already available collections, the support for kaggle.com is required which seems be the central place nowadays for data sets and models used in the data science community. The purpose of this project is to extend LabPlot's current infrastructure to manage and to download datasets from the internet and to also support kaggle.com.
 
'''Expected results:''' At the end of the project the user should be able to search on Kaggle in LabPlot and to import directly into the application. Relevant building blocks and required steps:
* Kaggle provides [https://www.kaggle.com/docs/api CLI tool] which can be used to communicate with the online service
* Extend the settings dialog to handle the location of this CLI tool and of the API token
* Extend the import dialog to enable the search on kaggle and the actual import of the data
 
'''Knowledge Prerequisite:''' C++, Qt
 
'''Mentor:''' Alexander Semke @asemke:kde.org
 
=== App Translation ===
 
'''Project type:''' Translation
 
'''Brief explanation:''' Translate a KDE application
 
'''Expected results:''' Application is available to a new set of users
 
'''Knowledge Prerequisite:''' Computer access, previous use of web browser and a document editing program.  Willingness to learn about translation tools such as [https://apps.kde.org/lokalize/ Lokalize], see the [https://community.kde.org/Get_Involved/translation internationalization wiki] for more details.
 
'''Mentor:''' Benson Muite email:benson_muite at emailplus dot org
 
=== Kdenlive: Bézier Curve Keyframe Types (slot taken)===
 
'''Project type:''' Coding
 
'''Brief explanation:''' [https://kdenlive.org Kdenlive] is a video editing software. Parameter of effects can be be modified over time with so called keyframes. At the moment Kdenlive offers relatively basic types for the interpolation between two keyframes (linear, discret, smooth). Recently more interpolation types have been [https://github.com/mltframework/mlt/commit/a7597aa1ae8c178f6dd0cb98475aef57ea306734 added] to [https://www.mltframework.org/ MLT], Kdenlives backend and implemented in Kdenlive too. A remaining feature the community highly requests are fully customizable keyframes via bézier curves.
 
Implementing this consist of two parts: first support for custom keyframe types in MLT, second the UI in Kdenlive, a new curve editor with an interactive graphical editor of the keyframe curve allowing users to adjust curves by dragging them.
 
'''Expected results:''' At the end of the project support custom keyframe interpolation should work inside Kdenlive
 
'''Knowledge Prerequisite:''' C++, Qt (basic knowledge should be sufficient)
 
'''Mentors:''' Julius Künzel @jlskuz:kde.org (Matrix)


== External links ==
== External links ==


[https://invent.kde.org/teams/season-of-kde/2024 Season of KDE 2024] at Invent, with information how mentees can submit SoK proposals.
[https://invent.kde.org/teams/season-of-kde/2024 Season of KDE 2024] at Invent, with information how mentees can submit SoK proposals.

Latest revision as of 16:01, 13 September 2024

Konqi is giving a lesson!

Ideas

General information

All community members can submit an idea for a Season of KDE project. If you have an idea, reach out to the different people on the team to see if at least one core member would like to mentor and ask if you can add their contact info to the idea below.

Do not add SoK ideas with no mentor and no contact info. You can only be a mentor if you are a KDE contributor/maintainer.

Information for mentees

These ideas were contributed by our KDE developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, contact the developers and find out more about the particular suggestion you are interested in.

When writing your proposal or asking for help from the general KDE community do not assume people are familiar with the ideas here. KDE is really big!

If there is no specific contact given in the idea, you can ask questions on the general KDE development list [email protected]. See the KDE mailing lists page for information on available mailing lists and how to subscribe.

You need to submit your proposal to https://invent.kde.org/teams/season-of-kde/2024 before the deadline. Instructions for how to submit are included there.

Sample project

Project type: Coding / Web Development / Promo / Translation

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

Ideas

Your Own Idea: Something that you're totally excited about

Project type: Coding / Web Development / Promo / Translation

Brief explanation: Do you have an awesome idea you want to work on with KDE but it isn't among the ideas below? That's cool. We love that! But please do us a favor: Get in touch with a mentor early on and make sure your project is realistic and within the scope of KDE. That will spare you and us a lot of frustration.

Expected results: Something you and KDE love

Knowledge Prerequisite: Probably C++ and Qt, but it depends on your project

Mentor: Try to see who in KDE is interested in what you want to work on and approach them. If you are unsure you can always ask in #kde-soc on Freenode IRC.

When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.


Sustainability 1: Testing and development of "KEcoLab" (SLOT TAKEN)

Project type: Coding

Brief explanation: 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". A list of to-dos can be found at the repository's [1], including testing and integration into KDE software repositories. For the project, please put together a plan for resolving the issues you would be interested in working on and check with mentors before submitting a proposal.

Expected results: At the end of the project several of the to-dos in the above list should be resolved (while new ones may be added).

Knowledge Prerequisite: Knowledge of Git and Gitlab CI/CD, scripting (possibly including R), and a willingness to learn

Mentors: Karanjot Singh @drquark:kde.org, Joseph P. De Veaugh-Geiss @joseph:kde.org on Matrix

Sustainability 2: Improve "KdeEcoTest" emulation tool (SLOT TAKEN)

Project type: Coding

Brief explanation: Measuring the energy consumption of KDE software is part of the Sustainable Software goal for KDE, as mentioned above. To achieve this goal it is necessary to use an emulation tool to create Standard Usage Scenario scripts. "KdeEcoTest" is one such tool, but it needs some fixes. A list of to-dos can be found at the FEEP repository's Issues for "KdeEcoTest".

Expected results: At the end of the project several of the to-dos in the above list should be resolved (while new ones may be added).

Knowledge Prerequisite: Coding in Python, basic knowledge of git and automation tools

Mentors: Emmanuel Charruau @allon:kde.org, Joseph P. De Veaugh-Geiss @joseph:kde.org on Matrix

Sustainability 3: Selenium automation of energy measurement / accessibility tests for KDE applications (SLOT TAKEN)

Project type: Coding

Brief explanation: Both the Sustainable Software and the Accessibility "KDE For All" goals require automated testing -- which, in fact, is itself also fulfills the goal to "Automate and Systematize Internal Processes". "Selenium Webdriver AT-SPI" is just such a tool for achieving this (see Harald Sitter's blog post). The tooling is still in development, but we can already begin writing automated tests for several KDE applications and documenting the process for other developers.

Expected results: At the end of the project this and other issues should be addressed, while new ones may be added (see also the Issues at the repo):

  • Automating the setup of Selenium Webdriver AT-SPI (see KDE Eco Selenium guide below for current setup procedure)
  • Automating tests for a subset of KDE apps
  • Bringing the KDE Eco Selenium guide up-to-date

Knowledge Prerequisite: Selenium

Mentors: Nitin Tejuja @nitin.tejuja12:matrix.org, Rishi Kumar @k3ys:matrix.org, Emmanuel Charruau @allon:kde.org

Cantor: Extend the embedded documentation for supported Computer Algebra Systems

Project type: Documentation, Coding

Brief explanation: Cantor provides a graphical interface to multiple open-source computer algebra systems and programming languages. It is possible to download the documentation for some of the systems/languages from KDE Store for easier and more direct search in the documentation from within Cantor. For this, the documentation that is usually available in html format is converted to Qt's help files (s.a. The Qt Help Framework) and is uploaded to KDE Store. The download in Cantor is happening via KDE's NewStuff Framework. At the moment only a few documentation files are available and the purpose of this project is to convert more of the publicly available documentation, tutorials or books to Qt's help format.

Expected results: At the end of the project more documentation and for more systems should be available to download from the store for Cantor's users. Required steps:

  • become familiar with QtHelp
  • become familiar with the python scripts in Cantor's repository used to convert from html to QtHelp for already available documentation in the QtHelp format
  • create QtHelp files for newer versions for the already available documentations
  • work out similar scripts for other languages/systems where there is no embedded documentation available yet
  • upload new documentation files to KDE Store

Knowledge Prerequisite: basic knowledge of python and html and basic understanding of how QtHelp works

Mentor: Alexander Semke @asemke:kde.org

LabPlot: Download/Import of data sets from kaggle.com

Project type: LabPlot

Brief explanation: LabPlot is a data visualization and analysis software. For testing and study purposes LabPlot provides an easy access to multiple collection of publicly available datasets and simplifies the download from the internet and import of them, s. a. this blog post. In addition to already available collections, the support for kaggle.com is required which seems be the central place nowadays for data sets and models used in the data science community. The purpose of this project is to extend LabPlot's current infrastructure to manage and to download datasets from the internet and to also support kaggle.com.

Expected results: At the end of the project the user should be able to search on Kaggle in LabPlot and to import directly into the application. Relevant building blocks and required steps:

  • Kaggle provides CLI tool which can be used to communicate with the online service
  • Extend the settings dialog to handle the location of this CLI tool and of the API token
  • Extend the import dialog to enable the search on kaggle and the actual import of the data

Knowledge Prerequisite: C++, Qt

Mentor: Alexander Semke @asemke:kde.org

App Translation

Project type: Translation

Brief explanation: Translate a KDE application

Expected results: Application is available to a new set of users

Knowledge Prerequisite: Computer access, previous use of web browser and a document editing program. Willingness to learn about translation tools such as Lokalize, see the internationalization wiki for more details.

Mentor: Benson Muite email:benson_muite at emailplus dot org

Kdenlive: Bézier Curve Keyframe Types (slot taken)

Project type: Coding

Brief explanation: Kdenlive is a video editing software. Parameter of effects can be be modified over time with so called keyframes. At the moment Kdenlive offers relatively basic types for the interpolation between two keyframes (linear, discret, smooth). Recently more interpolation types have been added to MLT, Kdenlives backend and implemented in Kdenlive too. A remaining feature the community highly requests are fully customizable keyframes via bézier curves.

Implementing this consist of two parts: first support for custom keyframe types in MLT, second the UI in Kdenlive, a new curve editor with an interactive graphical editor of the keyframe curve allowing users to adjust curves by dragging them.

Expected results: At the end of the project support custom keyframe interpolation should work inside Kdenlive

Knowledge Prerequisite: C++, Qt (basic knowledge should be sufficient)

Mentors: Julius Künzel @jlskuz:kde.org (Matrix)

External links

Season of KDE 2024 at Invent, with information how mentees can submit SoK proposals.