Contributing(贡献)
Introduction(概述)
显示原文
Join LVGL's community and leave your footprint in the library!
There are a lot of ways to contribute to LVGL even if you are new to the library or even new to programming.
It might be scary to make the first step but you have nothing to be afraid of. A friendly and helpful community is waiting for you. Get to know like-minded people and make something great together.
So let's find which contribution option fits you the best and help you join the development of LVGL!
加入 LVGL 的社区,在图书馆留下你的足迹!
有很多方法可以为 LVGL 做出贡献,即使您是库的新手,甚至是编程的新手。
迈出第一步可能会很可怕,但你没有什么可害怕的。 一个友好而乐于助人的社区正等着您。结识志同道合的人,共同创造美好。
那么让我们来找出最适合您的贡献选项,并帮助您加入 LVGL 的开发!
Ways to contribute(贡献方式)
显示原文
Spread the Word: Share your LVGL experience with friends or on social media to boost its visibility.
Star LVGL Give us a star on GitHub ! It helps a lot to LVGL more appealing for newcomers.
Report a bug: Open a GitHub Issue if something is not working.
Join our Forum : Meet fellow developers and discuss questions
Tell your ideas: If you miss something from LVGL we would love to hear about it in a GitHub Issue
Develop features: Help to design or develop a feature. See below.
Mid and large scale issues are discussed in Feature planning issues.
An issue can be developed when all the questions in the issue template are answered and there is no objection from any core member.
We are using GitHub Labels to show the state of the issue:
planning
: Still discussing how to approach it.outlined
: We have come to a conclusion and the feature is ready to be developed.request-change(<user-name>)
: Each core member has a dedicated label, and when they request a change, they add their label.under development
: It's being developed by someone (can be developed only if no change is requested by the end of the cool-down phase).ready
: The pitch is developed and merged into master.stale
: Inactive, can be warmed up.rejected
: Not interested in this feature for some reason.
传播信息 :与朋友或在社交媒体上分享您的 LVGL 体验,以提高其知名度。
Star LVGL 在 GitHub 上给我们一个 Star !这有助于 LVGL 对新人更具吸引力。
报告错误 :如果出现问题,请打开GitHub 问题。
加入我们 的 论坛 :与其他开发人员见面并讨论问题
说出您的想法 :如果您错过了 LVGL 的某些内容,我们很乐意在 GitHub Issue 中听到相关信息
开发功能 :帮助设计或开发功能。见下文。
中型和大型问题在 功能规划 功能规划问题中讨论。
当问题模板中的所有问题都得到回答并且没有任何核心成员反对时,就可以开发问题。
我们使用 GitHub 标签来显示问题的状态:
planning
: 还在讨论如何处理。outlined
: 我们已经得出结论,该功能已准备好开发。request-change(<user-name>)
: 每个核心成员都有一个专用标签,当他们要求更改时,他们会添加自己的标签。under development
: 它正在由某人开发(只有在冷却阶段结束时没有请求更改的情况下才可以开发)。ready
: 音调已开发并合并到母版中。stale
: 不活动,可以预热。rejected
: 由于某种原因对此功能不感兴趣。
Pull request(拉取请求)
显示原文
Merging new code into the lvgl, documentation, blog, examples, and other repositories happen via Pull requests (PR for short). A PR is a notification like "Hey, I made some updates to your project. Here are the changes, you can add them if you want." To do this you need a copy (called fork) of the original project under your account, make some changes there, and notify the original repository about your updates. You can see what it looks like on GitHub for LVGL here: https://github.com/lvgl/lvgl/pulls.
To add your changes you can edit files online on GitHub and send a new Pull request from there (recommended for small changes) or add the updates in your favorite editor/IDE and use git to publish the changes (recommended for more complex updates).
通过 Pull 请求(简称 PR)将新代码合并到 lvgl、文档、博客、示例和其他存储库中。PR 是类似于“嘿,我对您的项目进行了一些更新。以下是更改,您可以根据需要添加它们”的通知。为此,您需要您帐户下的原始项目的副本(称为分叉),在那里进行一些更改,并将您的更新通知原始存储库。您可以在 GitHub 上查看 LVGL 的外观:https://github.com/lvgl/lvgl/pulls。
要添加更改,您可以在 GitHub 上在线编辑文件并从那里发送新的 Pull 请求(建议用于小更改),或者在您最喜欢的编辑器/IDE 中添加更新并使用 git 发布更改(建议用于更复杂的更新)。
From GitHub(来自 GitHub)
显示原文
Navigate to the file you want to edit.
Click the Edit button in the top right-hand corner.
Add your changes to the file.
Add a commit message on the bottom of the page.
Click the Propose changes button.
导航到您要编辑的文件。
单击右上角的编辑按钮。
将您的更改添加到文件中。
在页面底部添加提交消息。
单击建议更改按钮。
From command line(从命令行)
显示原文
The instructions describe the main lvgl
repository but it works the
same way for the other repositories.
Fork the lvgl repository. To do this click the "Fork" button in the top right corner. It will "copy" the
lvgl
repository to your GitHub account (https://github.com/<YOUR_NAME>?tab=repositories
)Clone your forked repository.
Add your changes. You can create a feature branch from master for the updates:
git checkout -b <the-new-feature-branch-name>
Commit and push your changes to the forked
lvgl
repository.Create a PR on GitHub from the page of your
lvgl
repository (https://github.com/<YOUR_NAME>/lvgl
) by clicking the "New pull request" button. Don't forget to select the branch where you added your changes.Set the base branch. It means where you want to merge your update. In the
lvgl
repo both the fixes and new features go tomaster
branch.Describe what is in the update. An example code is welcome if applicable.
If you need to make more changes, just update your forked
lvgl
repo with new commits. They will automatically appear in the PR.
这些说明描述了主 lvgl
存储库,但它对于其他存储库的工作方式相同。
Fork lvgl repository 存储库。为此,请单击右上角的“Fork”按钮。它将把lvgl 存储库“复制”
lvgl
到您的 GitHub 帐户 (https://github.com/<YOUR_NAME>?tab=repositories
)克隆您的Fork存储库。
添加您的更改。您可以从 master 创建一个 功能分支 来进行更新:
git checkout -b <the-new-feature-branch-name>
提交您的更改并将其推送到Fork
lvgl
存储库。单击“新建拉取请求”按钮,从
lvgl
存储库页面在 GitHub 上创建 PR (https://github.com/<YOUR_NAME>/lvgl
) 。单击 “New pull request” 按钮。不要忘记选择您添加更改的分支。设置基础分支。这意味着您想要合并更新的位置。在
lvgl
存储库中,修复和新功能都会转到master
分支。描述更新内容。如果适用,欢迎提供示例代码。
如果您需要进行更多更改,只需
lvgl
使用新的提交更新您的分叉存储库即可。它们将自动出现在 PR 中。
Commit message format(提交消息格式)
显示原文
The commit messages format is inspired by Angular Commit Format.
The following structure should be used:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
Possible <type>
s:
fix
bugfix in the source code.feat
new featurearch
architectural changesperf
changes that affect the performanceexample
anything related to examples (even fixes and new examples)docs
anything related to the documentation (even fixes, formatting, and new pages)test
anything related to tests (new and updated tests or CI actions)chore
any minor formatting or style changes that would make the changelog noisy
<scope>
is the module, file, or sub-system that is affected by the
commit. It's usually one word and can be chosen freely. For example
img
, layout
, txt
, anim
. The scope can be omitted.
<subject>
contains a short description of the change:
use the imperative, present tense: "change" not "changed" nor "changes"
don't capitalize the first letter
no dot (
.
) at the endmax 90 characters
<body>
optional and can be used to describe the details of this
change.
<footer>
shall contain
the words "BREAKING CHANGE" if the changes break the API
reference to the GitHub issue or Pull Request if applicable.
Some examples:
fix(img): update size if a new source is set
fix(bar): fix memory leak The animations weren't deleted in the destructor.
Fixes: #1234
feat: add span widget
The span widget allows mixing different font sizes, colors and styles. It's similar to HTML <span>
docs(porting): fix typo
提交消息格式的灵感来自 Angular Commit Format。
应使用以下结构:
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
可能的 <type>
s 情况:
fix
源代码中的错误修复。feat
新功能arch
架构变化perf
影响性能的变化example
与示例相关的任何内容(甚至修复和新示例)docs
与文档相关的任何内容(甚至修复、格式设置和新页面)test
与测试相关的任何内容(新的和更新的测试或 CI 操作)chore
任何会使变更日志变得嘈杂的细微格式或样式更改
<scope>
是受提交影响的模块、文件或子系统。通常是一个词,可以自由选择。例如 img
, layout
, txt
, anim
。范围可以省略。
<subject>
包含更改的简短描述:
使用祈使句、现在时:“change”而不是“changed”或“changes”
不要将第一个字母大写
末尾没有点 (
.
)最多 90 个字符
<body>
可选,可用于描述此更改的详细信息。
<footer>
应包含
如果更改破坏了 API,则显示“BREAKING CHANGE”字样
参考 GitHub 问题或 Pull 请求(如果适用)。
一些例子:
修复(img):如果设置了新源则更新大小
fix(bar):修复内存泄漏动画未在析构函数中删除。
修复:#1234
技术:添加跨度小部件
Span 小部件允许混合不同的字体大小、颜色和样式。它类似于 HTML <span>
文档(移植):修复拼写错误
Developer Certification of Origin (DCO)(开发者原产地认证 (DCO))
Overview(概述)
显示原文
To ensure all licensing criteria are met for every repository of the LVGL project, we apply a process called DCO (Developer's Certificate of Origin).
The text of DCO can be read here: https://developercertificate.org/.
By contributing to any repositories of the LVGL project you agree that your contribution complies with the DCO.
If your contribution fulfills the requirements of the DCO no further action is needed. If you are unsure feel free to ask us in a comment.
为确保 LVGL 项目的每个存储库都满足所有许可标准,我们应用了一个称为 DCO(开发者原产地证书)的流程。
DCO 的文本可以在这里阅读:https://developercertificate.org/。
通过为 LVGL 项目的任何存储库做出贡献,您同意您的贡献符合 DCO。
如果您的捐款符合 DCO 的要求,则无需采取进一步行动。 如果您不确定,请随时在评论中询问我们。
Accepted licenses and copyright notices(接受的许可和版权声明)
显示原文
To make the DCO easier to digest, here are some practical guides about specific cases:
为了让 DCO 更容易消化,这里有一些关于特定案例的实用指南:
Your own work(你自己的作品)
显示原文
The simplest case is when the contribution is solely your own work. In this case you can just send a Pull Request without worrying about any licensing issues.
最简单的情况是贡献完全是您自己的工作。 在这种情况下,您可以只发送拉取请求而不必担心任何许可问题。
Use code from online source(使用来自网上的代码)
显示原文
If the code you would like to add is based on an article, post or comment on a website (e.g. StackOverflow) the license and/or rules of that site should be followed.
For example in case of StackOverflow a notice like this can be used:
如果您要添加的代码基于网站(例如 StackOverflow)上的文章、帖子或评论,则应遵循该网站的许可和/或规则。
例如,在 StackOwerflow 的情况下,可以使用这样的通知:
/* The original version of this code-snippet was published on StackOverflow.
* Post: http://stackoverflow.com/questions/12345
* Author: http://stackoverflow.com/users/12345/username
* The following parts of the snippet were changed:
* - Check this or that
* - Optimize performance here and there
*/
... code snippet here ...
Use MIT licensed code(使用 MIT 许可代码)
显示原文
As LVGL is MIT licensed, other MIT licensed code can be integrated without issues. The MIT license requires a copyright notice be added to the derived work. Any derivative work based on MIT licensed code must copy the original work's license file or text.
由于 LVGL 是 MIT 许可的,因此可以毫无问题地集成其他 MIT 许可代码。 MIT 许可证要求在衍生作品中添加版权声明。 任何基于 MIT 许可代码的衍生作品必须复制原始作品的许可文件或文本。
Use GPL licensed code(使用 GPL 许可代码)
显示原文
The GPL license is not compatible with the MIT license. Therefore, LVGL can not accept GPL licensed code.
GPL 许可证与 MIT 许可证不兼容。因此,LVGL 不能接受 GPL 许可代码。