The R&D workflow related to deepin is located on GitHub, so the code contribution process is not much different from the regular Fork + Pull Request process on GitHub. About pull requests。
A healthy community requires everyone to create together, here we referencing Contributor Covenant 2.1, please abide by the convention together.
deepin Community Code of Conduct
Each project comes with its corresponding license agreement. Before you start contributing code, please ensure that you understand and agree with the corresponding license agreement.If not stated otherwise, your code will be licensed using the same license agreement as the corresponding project.
In order for the deepin community to make necessary adjustments to the code license agreement to address licensing issues, when you plan to contribute code, you also need to sign the corresponding CLA(Contributor License Agreement)(Note: For individual contributors, signing can be easily completed online). Details related to this can be found in Contributor License Agreement .
If you have any questions regarding this matter, please email us for consultation: [email protected]
If you are not sure where and how to obtain the source code, please refer to Obtaining and Using Source Code.
How to create a Github account, you can refer to Signing up for GitHub
Currently, all the source codes of deepin community open source projects are available on GitHub, so you only need to find the corresponding project and then obtain the code through git clone or your preferred method.
Since the master branch of each project in the deepin community is a development branch, the master branch status of an application may depend on other versions that are also in the master branch status.Therefore, directly obtaining the code from the master branch does not always guarantee compilation in many cases. So, when you obtain a version from the git repository, it is recommended that you git checkout to switch to the corresponding tag you need, if necessary, before attempting to build.
Note: The corresponding README.md document for a project usually includes steps related to building the project. Please refer to these documents to help you build the project.
The deepin community accepts GitHub Pull Requests, and the merging of development commits is done through Pull Requests. You can directly click on the Fork button of the corresponding project to obtain your own Fork, submit it above it, and directly initiate a Pull Request through the GitHub webpage after modification. For more information on how to use Pull Requests, see the GitHub documentation About pull requests.
Thanks to GitHub's code review and automation tools, it's easy to conduct code reviews and use automated builds to find problems in your code. If you're not familiar with GitHub's code review process, here's how it works About pull request reviews。
For the convenience of developers, we provide three versions of development repositories: deepin, Arch Linux, and Debian. All the project will automatically build packages into the corresponding repositories after merging in new code, currently only supporting projects in the linuxdeepin organization. Please check for details Create a new git repository using action。
To ensure code quality and project compliance, we have configured corresponding continuous integration checks for the project. Among them, common inspections include the following:
For the check of Commit information, please refer to Commit Submission Specification.
To make the development process easier and give developers and contributors the flexibility to handle problems with continuous integration checks, we've provided GitHub's Continuous Integration with convenient commands to perform actions such as assigning code reviewers, re-triggering specific checks, and proactively performing code merges. For these commands, we also provide plugin scripts that enable developers to automate the input of the corresponding commands.
How to use Continuous Integration(CI), please refer to Pull Request robot command list。
In order to facilitate developers to quickly debug and locate problems, we provide a debuginfod service. Debuginfod provides the ability to quickly load debugging information based on an HTTP file server. For specific operations, please refer to debuginfod introduces.
If you need to apply for the creation of a new code repository, please send a request in the developer's email list(Communication Methods), indicating the name of the project to be created and which GitHub organization to store it in. Additionally, please provide a detailed explanation of the reason for the creation, and the community administrator will reply to the email notifying you of the results of the creation. For example:
Name:qtbase
Organization:deepin-community
USE:A graphics development library, which is relied on by DDE, DTK and many deepin applications
You can add a more detailed description of why the repository was created in the body of the email.
Once you have ensured that your changes are acceptable, you are ready to write your patch and submit your Patch / Pull Request in the way mentioned in the above paragraph. Please take note of the following considerations when you start preparing your patch:
Commit information specification
Please refer to Commit Submission Specification.
A Pull Request Does One Thing
You may want to make a series of changes to a project, but in order to ensure that the code submission information is organized, and also to ensure that the code review is convenient and orderly, please make sure that one of your Pull Requests only does one thing, for different changes, please submit multiple different Pull Requests to achieve.
Brand specific terms
During the code modification and submission process, some brand specific terms related to deepin may be involved, please refer to Brand specific terminology guidelines .
For deepin community related research and development activities, in addition to the developer center on GitHub, we also use the deepin-devel mailing list to notify relevant matters and discuss related topics.We recommend those who want to participate in deepin community to subscribe to this mailing list and participate in the discussion as needed.
There are other communication channels and contacts, but the deepin-devel developer mailing list involves announcements and discussions of major R&D-related issues, so please consider subscribing to the developer mailing list if you decide to continue contributing to deepin-related development.
We offer regular Issue discussion boards, mailing lists, and live chat as ways to get in touch. For specific contact information, please see Communication Methods .