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