feat: add code of conduct and contribution guidelines

Establish a community code of conduct to foster a respectful and inclusive environment, and provide comprehensive contribution guidelines to streamline project participation for all contributors.
This commit is contained in:
zhangyi 2024-09-25 09:51:34 +08:00
parent d2d7b0495d
commit d0e3c67c9b
6 changed files with 349 additions and 0 deletions

55
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,55 @@
English | [中文](CODE_OF_CONDUCT.zh_CN.md)
# Community Code of Conduct
Welcome to our open source project!
We are committed to creating a friendly, respectful, and inclusive community.
To ensure a positive experience in our project, we have established the following code of conduct, which we require all participants to abide by, and provide a safe and inclusive environment for all community members.
## Our Pledge
As participants, contributors, and maintainers of our community, we pledge to:
- Treat everyone with openness, inclusivity, and collaboration;
- Respect individuals with different backgrounds and viewpoints, regardless of gender, sexual orientation, disability, race, ethnicity, religion, age, or any other factor;
- Focus on contributing and improving the project, rather than attacking or criticizing individuals;
- Build trust with community members and promote our project through constructive feedback;
- Provide a safe, supportive, and encouraging environment for community members to promote learning and personal growth.
## Our standards
Our community members should adhere to the following standards:
- Respect the opinions, viewpoints, and experiences of others;
- Avoid using insulting, discriminatory, or harmful language;
- Do not harass, intimidate, or threaten others;
- Do not publicly or privately disclose others' private information, such as contact information or addresses;
- Respect the privacy of others;
- Establish a safe, inclusive, and respectful environment for community members.
## Our responsibility
Project maintainers have a responsibility to create a friendly, respectful, and inclusive environment for our community members.
They should:
- Clearly and publicly explain the community guidelines;
- Handle reports of guideline violations and resolve disputes appropriately;
- Protect the privacy and security of all community members;
- Maintain a fair, transparent, and responsible attitude.
## Scope
This code of conduct applies to all project spaces, including GitHub, mailing lists, forums, social media, gatherings, and conferences.
Violations of the code of conduct will be dealt with, including but not limited to warnings, temporary or permanent bans, revocation of contribution rights, and revocation of project access rights.
## Implementation guidelines
If you encounter behavior that violates this code of conduct, you can:
- Communicate privately with the relevant person to try to resolve the issue;
- Report the violation to the project maintainers(maintainer mailing list), who will take necessary action based on the situation;
- If you are not satisfied with the way the maintainers handle the situation, you can seek help from higher-level organizations or institutions.
Our community is a diverse, open, and inclusive community, and we welcome everyone's participation and contribution.
We believe that only in a safe, respectful, and inclusive environment can we create the best project together.

55
CODE_OF_CONDUCT.zh_CN.md Normal file
View File

@ -0,0 +1,55 @@
[English](CODE_OF_CONDUCT.md) | 中文
# 社区行为准则
欢迎来到我们的开源项目!
我们致力于创建一个友好、尊重和包容的社区,我们希望所有人都能为此做出贡献。
为了确保在我们的项目中有一个积极的体验,我们制定了以下行为准则,我们要求所有参与者遵守这些准则,并向所有社区成员提供一个安全和包容的环境。
## 我们的承诺
作为我们社区的参与者、贡献者和维护者,我们承诺:
- 以开放、包容和合作的态度对待所有人;
- 尊重不同背景和观点的人,不论是性别、性取向、残疾、种族、民族、宗教、年龄或任何其他因素;
- 专注于对项目的贡献和改进,而不是对个人的攻击或抨击;
- 与社区成员建立互信关系,通过积极的反馈来推动我们的项目发展;
- 为社区成员提供一个安全、支持和鼓励的环境,以促进学习和个人成长。
## 我们的标准
我们的社区成员应该遵守以下标准:
- 尊重他人的意见、观点和经验;
- 避免使用侮辱性、歧视性或有损的语言;
- 不要骚扰、恐吓或威胁他人;
- 不要公开或私下发布他人的私人信息,例如联系方式或地址;
- 尊重他人的隐私权;
- 为社区成员建立安全、包容和尊重的环境。
## 我们的责任
项目维护者有责任为我们的社区成员创造一个友好、尊重和包容的环境。
他们应该:
- 明确和公开地说明社区准则;
- 处理准则违规行为的举报,通过适当的方式解决纠纷;
- 保护所有社区成员的隐私和安全;
- 保持公正、透明和负责任的态度。
## 管理范围
本行为准则适用于所有的项目空间包括GitHub、邮件列表、论坛、社交媒体、聚会和会议等。
违反准则的行为将受到处理,包括但不限于警告、暂时或永久禁言、撤销贡献权、撤销项目访问权等。
## 实施指南
如果你遇到了违反本准则的行为,你可以:
- 私下与相关人员沟通,以尝试解决问题;
- 向项目维护者报告违规行为,维护者会根据情况采取必要的行动;
- 如果你不满意维护者的处理方式,你可以向更高级别的机构或组织寻求帮助。
我们的社区是一个多样化、开放和包容的社区,我们欢迎所有人的参与和贡献。
我们相信,只有在一个安全、尊重和包容的环境中,我们才能共同创造出最优秀的项目。

112
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,112 @@
English | [中文](CONTRIBUTING.zh_CN.md)
# How to Contribute
Thank you for your interest and support in AimRT!
We welcome and appreciate any form of contribution, including but not limited to submitting issues, providing improvement suggestions, improving documentation, fixing bugs, and adding features.
This document aims to provide you with a detailed contribution guide to help you better participate in the project.
Please read this guide carefully before contributing and make sure to follow the rules here.
We look forward to working with you to make this project better together!
## Before contributing code
The project welcomes code patches, but to make sure things are well coordinated you should discuss any significant change before starting the work.
It's recommended that you signal your intention to contribute in the issue tracker, either by claiming an [existing one](https://github.com/AimRT/AimRT/issues) or by [opening a new issue](https://github.com/AimRT/AimRT/issues/new).
### Checking the issue tracker
Whether you already know what contribution to make, or you are searching for an idea, the [issue tracker](https://github.com/AimRT/AimRT/issues) is always the first place to go.
Issues are triaged to categorize them and manage the workflow.
Most issues will be marked with one of the following workflow labels:
- **NeedsInvestigation**: The issue is not fully understood and requires analysis to understand the root cause.
- **NeedsDecision**: The issue is relatively well understood, but the AimRT team hasn't yet decided the best way to address it.
It would be better to wait for a decision before writing code.
If you are interested in working on an issue in this state, feel free to "ping" maintainers in the issue's comments if some time has passed without a decision.
- **NeedsFix**: The issue is fully understood and code can be written to fix it.
### Opening an issue for any new problem
Excluding very trivial changes, all contributions should be connected to an existing issue.
Feel free to open one and discuss your plans.
This process gives everyone a chance to validate the design, helps prevent duplication of effort, and ensures that the idea fits inside the goals for the language and tools.
It also checks that the design is sound before code is written; the code review tool is not the place for high-level discussions.
When opening an issue, make sure to answer these five questions:
1. What version of AimRT are you using?
2. What operating system and compiler are you using?
3. What did you do?
4. What did you expect to see?
5. What did you see instead?
## Contributing code
Follow the [GitHub flow](https://docs.github.com/en/get-started/quickstart/github-flow) to [create a GitHub pull request](https://docs.github.com/en/get-started/quickstart/github-flow#create-a-pull-request).
Some things to keep in mind:
- Ensure that your code conforms to the project's code specifications.
This includes but is not limited to code style, comment specifications, etc. This helps us to maintain the cleanliness and consistency of the project.
The most basic, you can run `./format.sh` in the root directory to format the code.
- Before submitting a PR, please make sure that you have tested your code locally(`./test.sh`).
Ensure that the code has no obvious errors and can run normally.
- To update the pull request with new code, just push it to the branch;
you can either add more commits, or rebase and force-push (both styles are accepted).
- If the request is accepted, all commits will be squashed, and the final commit description will be composed by concatenating the pull request's title and description.
The individual commits' descriptions will be discarded.
See following "Write good commit messages" for some suggestions.
### Writing good commit messages
Commit messages in AimRT follow a specific set of conventions, which we discuss in this section.
Here is an example of a good one:
> math: improve Sin, Cos and Tan precision for very large arguments
>
> The existing implementation has poor numerical properties for
> large arguments, so use the McGillicutty algorithm to improve
> accuracy above 1e10.
>
> The algorithm is described at <https://wikipedia.org/wiki/McGillicutty_Algorithm>
>
> Fixes #159
#### First line
The first line of the change description is conventionally a short one-line summary of the change, prefixed by the primary affected package.
A rule of thumb is that it should be written so to complete the sentence "This change modifies AimRT to _____."
That means it does not start with a capital letter, is not a complete sentence, and actually summarizes the result of the change.
Follow the first line by a blank line.
#### Main content
The rest of the description elaborates and should provide context for the change and explain what it does.
Write in complete sentences with correct punctuation, just like for your comments in AimRT.
Don't use HTML, Markdown, or any other markup language.
Add any relevant information, such as benchmark data if the change affects performance.
#### Referencing issues
The special notation "Fixes #12345" associates the change with issue 12345 in the AimRT issue tracker.
When this change is eventually applied, the issue tracker will automatically mark the issue as fixed.
## Copyright headers
Files in the AimRT repository don't list author names, both to avoid clutter and to avoid having to keep the lists up to date.
Instead, your name will appear in the [change log](todo).
New files that you contribute should use the standard copyright header:
```cpp
// Copyright (c) 2024 The AimRT Authors.
// AimRT is licensed under Mulan PSL v2.
```
Files in the repository are copyrighted the year they are added.
Do not update the copyright year on files that you change.

105
CONTRIBUTING.zh_CN.md Normal file
View File

@ -0,0 +1,105 @@
[English](CONTRIBUTING.md) | 中文
# 如何贡献
感谢您对 AimRT 的关注和支持!
我们欢迎并感激任何形式的贡献,包括但不限于提交 issue、提供改进建议、改进文档、修复错误和添加功能。
本文档旨在为您提供详细的贡献指南,以帮助您更好地参与项目。
在贡献之前,请仔细阅读本指南并确保遵循这里的规则。
我们期待与您共同努力,使这个项目变得更好!
## 在贡献代码之前
项目欢迎代码补丁,但为了确保事情得到良好协调,您应该在开始工作之前讨论任何重大变更。
建议您在 issue 跟踪器中表明您的贡献意图,可以通过[认领现有 issue](https://github.com/AimRT/AimRT/issues)或[创建新 issue](https://github.com/AimRT/AimRT/issues/new) 来实现。
### 查看 issue 跟踪器
无论您已经知道要做哪些贡献,还是正在寻找想法,[issue 跟踪器](https://github.com/AimRT/AimRT/issues)始终是您的第一个去处。
issue 会被分类以管理工作流程。
大多数 issue 都会被标记为以下工作流标签之一:
- **NeedsInvestigation**issue 尚未完全理解,需要分析以了解根本原因。
- **NeedsDecision**issue 相对已经理解得很好,但 AimRT 团队尚未决定解决 issue 的最佳方法。
在编写代码之前最好等待决策。
如果一段时间内没有决策且您有兴趣处理处于这种状态的 issue请随时在 issue 评论中“ping”维护者。
- **NeedsFix**issue 已完全理解,可以编写代码进行修复。
### 为任何新问题打开一个 issue
除非是非常细小的变更,否则所有贡献都应与现有 issue 有关。
请随时打开一个 issue 并讨论您的计划。
这个过程让每个人都有机会验证设计,有助于防止工作重复,确保想法符合语言和工具的目标。
在编写代码之前,还可以检查设计是否合理;代码审查工具并非用于高层次的讨论。
在提交 issue 时,请确保回答以下五个问题:
1. 您正在使用哪个版本的AimRT
2. 您正在使用哪个操作系统和编译器?
3. 您做了什么?
4. 您期望看到什么?
5. 您实际看到的是什么?
## 贡献代码
遵循 [GitHub 流程](https://docs.github.com/en/get-started/quickstart/github-flow)来[创建 GitHub PR(Pull Request)](https://docs.github.com/en/get-started/quickstart/github-flow#create-a-pull-request)。
请记住以下几点:
- 确保您的代码符合项目的代码规范。
这包括但不限于代码风格、注释规范等。这有助于我们维护项目的整洁性和一致性。
最基础的,您可以在项目根目录下运行 `./format.sh` 进行格式化。
- 在提交 PR 之前,请确保您已在本地测试过您的代码。 确保代码没有明显的错误并且可以正常运行(`./test.sh`)。
- 要使用新代码更新拉取请求,只需将其推送到分支; 您可以添加更多提交,也可以 rebase 并 force-push两种风格都可以接受
- 如果请求被接受,所有提交将被压缩,最终提交描述将由 PR 的标题和描述组成。
单个提交的描述将被丢弃。 请参阅以下“编写良好的提交消息”以获取一些建议。
### 编写良好的提交消息
AimRT 中的提交消息遵循一套特定的约定,我们将在本节中讨论。
以下是一个良好的示例:
> math: improve Sin, Cos and Tan precision for very large arguments
>
> The existing implementation has poor numerical properties for large arguments, so use the McGillicutty algorithm to improve accuracy above 1e10.
>
> The algorithm is described at <https://wikipedia.org/wiki/McGillicutty_Algorithm>
>
> Fixes #159
#### 第一行
变更描述的第一行通常是一个简短的一行摘要,描述变更的内容,并以主要受影响的包为前缀。
一个经验法则是,它应该被写成完成句子 "This change modifies AimRT to _____." 这意味着它不以大写字母开头,不是一个完整的句子,而且确实概括了变更的结果。
在第一行之后空一行。
#### 主要内容
描述的其余部分应该详细说明,为变更提供上下文并解释它的作用。
像在 AimRT 中的注释一样,使用正确的标点符号写完整的句子。
不要使用 HTML、Markdown 或任何其他标记语言。
添加任何相关信息,例如如果变更影响性能,请添加基准数据。
#### 引用 issue
特殊表示法 "Fixes #12345" 将变更与 AimRT issue 跟踪器中的 issue 12345关联。
当此变更最终应用时issue 跟踪器将自动将该 issue 标记为已修复。
## 版权声明
AimRT 代码仓库中的文件不列出作者姓名,以避免混乱并避免不断更新列表。
而您的名字将出现在变更日志中。
您贡献的新文件应使用标准版权声明:
```cpp
// Copyright (c) 2024 The AimRT Authors.
// AimRT is licensed under Mulan PSL v2.
```
代码仓库中的文件在添加时受版权保护,年份为添加年份。
在变更文件时,请勿更新版权年份。

View File

@ -1,3 +1,5 @@
English | [中文](README.zh_CN.md)
# AimRT

20
README.zh_CN.md Normal file
View File

@ -0,0 +1,20 @@
[English](README.md) | 中文
# AimRT
项目的完整细节请参考[aimrt.org](https://aimrt.org/)。
## 简介
- AimRT 是一个面向现代机器人领域的运行时开发框架。 它基于 Modern C++ 开发,轻量且易于部署,在资源管控、异步编程、部署配置等方面具有更现代的设计。
- AimRT 致力于整合机器人端侧、边缘端、云端等各种部署场景的研发。 它服务于现代基于人工智能和云的机器人应用,提供完善的调试和性能分析工具链,以及良好的可观测性支持。
- AimRT 还提供了全面的插件开发接口,具有高度可扩展性。 它与 ROS2、HTTP、Grpc 等传统机器人生态系统或云服务生态系统兼容,并支持对现有系统的逐步升级。
## 文档
- [AimRT-Docs](https://docs.aimrt.org/)
- [快速开始](https://docs.aimrt.org/tutorials/index.html)
- [联系我们](https://docs.aimrt.org/contact/index.html)
- [发布说明](https://docs.aimrt.org/release_notes/index.html)