Policies/Application Lifecycle: Difference between revisions
(update to /draft Akademy 2017 which follows current practice) |
No edit summary |
||
(37 intermediate revisions by 12 users not shown) | |||
Line 3: | Line 3: | ||
The term "application" is used here to mean any project hosted in KDE Git and includes programming libraries and development tools but not typically infrastructure tools or projects with other end product outputs. | The term "application" is used here to mean any project hosted in KDE Git and includes programming libraries and development tools but not typically infrastructure tools or projects with other end product outputs. | ||
[[File:App- | [[File:App-lifecycle3.png|361px]] | ||
= | [https://community.kde.org/File:App-lifecycle2.svg source] | ||
[https://projects.kde.org/ | |||
== Personal == | |||
Anyone can start a new project on KDE Invent (Gitlab). [https://invent.kde.org/projects/new New project]. See [https://community.kde.org/Sysadmin/GitKdeOrgManual#Personal_repositories_2 Personal Repositories]. | |||
If you're not already a KDE Developer you should [https://community.kde.org/Get_Involved#Getting_in_Touch_and_Working_Together start talking to us] (we're friendly) on mailing lists and Matrix chat to get to know people working in similar areas to your project. Then you'll have people to back you up when you [https://community.kde.org/Infrastructure/Get_a_Developer_Account Get a Developer Account]. | |||
== Playground == | |||
Playground is a project status (documented in [https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/projects-invent repo-metadata]) for projects starting development | |||
* You will need a Git write account which needs a referral from another KDE contributor, see [[Infrastructure/Get_a_Developer_Account|Get_a_Developer_Account]] | * You will need a Git write account which needs a referral from another KDE contributor, see [[Infrastructure/Get_a_Developer_Account|Get_a_Developer_Account]] | ||
* Projects can make alpha releases and can put them on [http://download.kde.org/unstable download.kde.org unstable] | * Projects can make alpha releases and can put them on [http://download.kde.org/unstable download.kde.org unstable] | ||
* Projects can ask for translations for their master branch only | * Projects can ask for translations for their master branch only | ||
* To move your project (or create a new one) to Playground [https://community.kde.org/Sysadmin submit a Sysadmin Ticket] | |||
= Incubator = | == Incubator == | ||
Projects which started life outside of KDE are welcome to join us if you feel our community makes a good fit through the [https://community.kde.org/Incubator KDE Incubator]. A sponsor will guide you through the process and check your project complies with the needs of the KDE community | |||
Projects | |||
== KDE Review == | |||
⇝ [https://invent.kde.org/dashboard/issues?sort=created_date&state=opened&label_name=KDE+Review+Request List of current KDE Review projects] | |||
see [https://develop.kde.org/docs/getting-started/add-project/#kde-review KDE Developer - KDE Review]. | |||
== Releasing == | |||
Your project is now active and can make beta or stable releases. Find the best home for your project based on contents and release process wanted. | Your project is now active and can make beta or stable releases. Find the best home for your project based on contents and release process wanted. | ||
* After two weeks | * After two weeks set to kdereview you can edit <code>projectpath</code> in your project's <code>metadata.yaml</code> in [https://invent.kde.org/sysadmin/repo-metadata repo-metadata]. Change <code>playground</code> to <code>kde</code>. File a [https://go.kde.org/systickets Sysadmin ticket] if unsure. | ||
* These projects should depend only on stable released software or software known it will get a stable release before the project does. It may use unstable or unreleased software only as an optional build dependency. | * These projects should depend only on stable released software or software known it will get a stable release before the project does. It may use unstable or unreleased software only as an optional build dependency. | ||
* KDE Frameworks are programmer | * Add your project to automated builds: | ||
** They have [[ | ** Update [https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/dependencies build metadata] to add it to [https://kdesrc-build.kde.org/ kdesrc-build] | ||
** Ping the sysadmins to help get it added to [https://build.kde.org/ KDE CI] | |||
** Ping distributions to add it to their builds ([email protected]) | |||
* KDE Frameworks are programmer libraries | |||
** They have [[Frameworks/Policies|strict quality requirements]] | |||
** Get released monthly | ** Get released monthly | ||
** Ask on [https://mail.kde.org/mailman/listinfo/kde-frameworks-devel kde-frameworks-devel] if you want to be considered for inclusion | ** Ask on [https://mail.kde.org/mailman/listinfo/kde-frameworks-devel kde-frameworks-devel] if you want to be considered for inclusion | ||
** Version numbers are made by release | ** Version numbers are made by release person, there are no stable branches | ||
* Plasma is a cross device work environment where trust is put on the users' capacity to best define her own workflow and preferences. | * Plasma is a cross device work environment where trust is put on the users' capacity to best define her own workflow and preferences. | ||
** It is typically released 3 times a year | ** It is typically released 3 times a year | ||
** Projects released as part of Plasma must fit well together and be a useful part of the user's work experience. | ** Projects released as part of Plasma must fit well together and be a useful part of the user's work experience. | ||
** They would not be useful to users of other desktops. | ** They would not be useful to users of other desktops. | ||
** Version numbers and stable branches are made by release | ** Version numbers and stable branches are made by release person | ||
** Ask on [https://mail.kde.org/mailman/listinfo/plasma-devel plasma-devel] for consideration of inclusion | ** Ask on [https://mail.kde.org/mailman/listinfo/plasma-devel plasma-devel] for consideration of inclusion | ||
* KDE | * KDE Gear | ||
** | ** Released 3 times a year en-masse | ||
** Includes a range of libraries, applications and developer tools | ** Includes a range of libraries, applications and developer tools | ||
** External version numbers (projects often have their own internal version numbering scheme) and stable branches are made by release | ** External version numbers (projects often have their own internal version numbering scheme) and stable branches are made by release person | ||
** Ask [https://mail.kde.org/mailman/listinfo/release-team release-team | ** Ask [https://mail.kde.org/mailman/listinfo/release-team release-team] for inclusion | ||
* Self Released - Many projects take care of their own release process | * Self Released - Many projects take care of their own release process | ||
** Also called Extragear | ** Also called Extragear | ||
** They can use whatever version number scheme they want and can release in their own timeframe | ** They can use whatever version number scheme they want and can release in their own timeframe | ||
** Use [https:// | ** Use [https://invent.kde.org/sdk/releaseme releaseme] to make releases, see [https://community.kde.org/ReleasingSoftware Releasing Software] | ||
== Unmaintained == | |||
If a project is no longer useful you can move it to [https://projects.kde.org/api/v1/projects/unmaintained unmaintained]. It can move here from any stage in the lifecycle. | If a project is no longer useful you can move it to [https://projects.kde.org/api/v1/projects/unmaintained unmaintained]. It can move here from any stage in the lifecycle. | ||
Consider suggesting to [[Gardening|KDE Gardening team]] to maintain it if there are still valid use cases. | Consider suggesting to [[Gardening|KDE Gardening team]] to maintain it if there are still valid use cases. | ||
You can move your project in [https:// | You can move your project in [https://invent.kde.org/sysadmin/repo-metadata repo-metadata], see [https://invent.kde.org/sysadmin/repo-metadata/-/blob/master/README.md repo-metadata README] or file a [https://go.kde.org/systickets Sysadmin ticket asking for the move] | ||
Projects can move back to playground if they are picked up for maintenance again. | Projects can move back to playground if they are picked up for maintenance again. | ||
= Translations = | == Translations == | ||
All projects with user-visible strings must have translations. | All projects with user-visible strings must have translations. | ||
There is no longer a need to tell [https://mail.kde.org/mailman/listinfo/kde-i18n-doc kde-i18n-doc] mailing list to update the translation branches. | |||
See [https://techbase.kde.org/Development/Tutorials/Localization/i18n i18n wiki pages]. | See [https://techbase.kde.org/Development/Tutorials/Localization/i18n i18n wiki pages]. |
Latest revision as of 16:18, 4 April 2024
KDE is a friendly community which hosts hundreds of projects. Any project which follows the KDE manifesto and KDE Vision is welcome to join us.
The term "application" is used here to mean any project hosted in KDE Git and includes programming libraries and development tools but not typically infrastructure tools or projects with other end product outputs.
Personal
Anyone can start a new project on KDE Invent (Gitlab). New project. See Personal Repositories.
If you're not already a KDE Developer you should start talking to us (we're friendly) on mailing lists and Matrix chat to get to know people working in similar areas to your project. Then you'll have people to back you up when you Get a Developer Account.
Playground
Playground is a project status (documented in repo-metadata) for projects starting development
- You will need a Git write account which needs a referral from another KDE contributor, see Get_a_Developer_Account
- Projects can make alpha releases and can put them on download.kde.org unstable
- Projects can ask for translations for their master branch only
- To move your project (or create a new one) to Playground submit a Sysadmin Ticket
Incubator
Projects which started life outside of KDE are welcome to join us if you feel our community makes a good fit through the KDE Incubator. A sponsor will guide you through the process and check your project complies with the needs of the KDE community
KDE Review
⇝ List of current KDE Review projects
see KDE Developer - KDE Review.
Releasing
Your project is now active and can make beta or stable releases. Find the best home for your project based on contents and release process wanted.
- After two weeks set to kdereview you can edit
projectpath
in your project'smetadata.yaml
in repo-metadata. Changeplayground
tokde
. File a Sysadmin ticket if unsure. - These projects should depend only on stable released software or software known it will get a stable release before the project does. It may use unstable or unreleased software only as an optional build dependency.
- Add your project to automated builds:
- Update build metadata to add it to kdesrc-build
- Ping the sysadmins to help get it added to KDE CI
- Ping distributions to add it to their builds ([email protected])
- KDE Frameworks are programmer libraries
- They have strict quality requirements
- Get released monthly
- Ask on kde-frameworks-devel if you want to be considered for inclusion
- Version numbers are made by release person, there are no stable branches
- Plasma is a cross device work environment where trust is put on the users' capacity to best define her own workflow and preferences.
- It is typically released 3 times a year
- Projects released as part of Plasma must fit well together and be a useful part of the user's work experience.
- They would not be useful to users of other desktops.
- Version numbers and stable branches are made by release person
- Ask on plasma-devel for consideration of inclusion
- KDE Gear
- Released 3 times a year en-masse
- Includes a range of libraries, applications and developer tools
- External version numbers (projects often have their own internal version numbering scheme) and stable branches are made by release person
- Ask release-team for inclusion
- Self Released - Many projects take care of their own release process
- Also called Extragear
- They can use whatever version number scheme they want and can release in their own timeframe
- Use releaseme to make releases, see Releasing Software
Unmaintained
If a project is no longer useful you can move it to unmaintained. It can move here from any stage in the lifecycle.
Consider suggesting to KDE Gardening team to maintain it if there are still valid use cases.
You can move your project in repo-metadata, see repo-metadata README or file a Sysadmin ticket asking for the move
Projects can move back to playground if they are picked up for maintenance again.
Translations
All projects with user-visible strings must have translations.
There is no longer a need to tell kde-i18n-doc mailing list to update the translation branches.
See i18n wiki pages.