后端企业应用运维【免费下载链接】bk-cmdb蓝鲸智云配置平台(BlueKing CMDB)项目地址https://gitcode.com/gh_mirrors/bk/bk-cmdb点击查看免费下载蓝鲸配置平台BlueKing CMDBbk-cmdb是蓝鲸智云开源的一款企业级配置管理平台其社区以 Issue 与 Pull Request 两条主线承载开发者互动。本文以 docs/wiki/community.md 为核心骨架结合仓库内 Issue 提单规范、提需求流程、社区贡献指南、Contributing Guide 与版本管理、升级等 wiki 章节系统讲解如何反馈问题、提出需求、提交代码并最终合入主库帮助开发者快速上手这条完整贡献链路。一、社区参与的两种主要途径bk-cmdb 社区向所有开发者开放官方明确推荐通过Issue与Pull RequestsPR两种途径与社区互动与蓝鲸官方及其他开发者建立联系。这两条路径覆盖了从提出问题到解决问题的完整闭环Issue 负责沟通与确认PR 负责交付与合入。1.1 通过 Issue 与社区互动无论你处于什么使用阶段都可以创建 Issue。社区文档列出的典型场景包括遇到问题使用过程中需要寻求社区的帮助发现 Bug幸运地发现了一个缺陷需要反馈给社区定位提出需求有一个很好的点子能帮助用户解决痛点希望转化为 cmdb 的新需求功能优化发现某处功能存在优化空间交流互动想与社区成员交朋友、交流技术。社区在收到 Issue 后会第一时间响应问题会得到协助解决Bug 会共同定位也欢迎通过 PR 提交修复需求则可以提出供大家讨论与评审。为了方便社区响应仓库内还准备了针对 Bug 和需求的专项提交流程详见下文第二章。1.2 通过 Pull Request 贡献力量如果你是社区的深度参与者在阅读源代码、社区文档等过程中发现了问题可以通过提交 PR 来修复问题或优化代码。社区明确欢迎以下类型的 PR源码中出现的 Bug 修复源码中某个功能的优化文档中的描述错误甚至一个标点符号其它你认为需要改进的地方。通过 PR你可以将自己的想法和需求合入社区主线版本——当然需要经过社区评审。对于针对源代码修改的 PR社区建议先创建一个 Issue 与社区沟通想法再开始工作这样社区能更好地了解 PR 的背景避免重复劳动。无论提交 Issue 还是 PR都需要一个 GitHub 账号你也可以点击仓库上方的Watch按钮实时跟踪社区动态。二、Issue 提交流程从问题反馈到需求评审2.1 Bug 提单提供关键信息加速定位如果使用过程中发现了 Bug社区欢迎通过提交 Issue 反馈。为帮助社区快速定位与修复docs/wiki/issue.md 明确要求提供以下基础信息问题本身的具体内容可以是一段日志也可以是 Web 页面上弹出的提示截图等使用的版本号可对某个组件执行 version 命令获取如./cmdb_apiserver --version。版本信息的实现位于 src/common/version/version.goGetVersion()会输出Version / Tag / BuildTime / GitHash / RunMode / Distribution / ServiceName / GoVersion等字段因此提交时请给出精确的发布版本号如v3.14.7或 git tag / git sha而不是最新版本这类无法定位代码版本的描述问题复现的具体流程。对于复杂问题社区可能需要更多详细信息——你提供的信息越多定位和解决的速度就越快。社区提供的 Issue 模板如下可直接参考填写问题描述 这里写问题描述 重现方法 列出如何重现的方法或操作步骤 **重要提醒**: 请优先尝试最新发布的版本 (发布清单见 docs/support-file/changelog/release.md), 如果问题不能在最新发布的版本里重现说明此问题已经被修复。 关键信息 **重要提醒**: 这些关键信息会辅助我们快速定位问题。 请提供以下信息: - [x] bk-cmdb 版本 (发布版本号 或 git tag): 示例 v3.0.6-alpha 或者 git sha. 请不要使用 最新版本 或 当前版本等无法准确定位代码版本的语句描述 - [ ] Redis 版本: 示例 3.2.11 - [ ] MongoDB 版本: 示例 2.8.0 - [ ] ZooKeeper 版本: 示例 3.4.11 - [ ] 操作系统 : 示例 Centos 5 (x64) - [ ] bk-cmdb 异常日志模板中的发布清单对应仓库内的 版本日志该文件按版本记录了新增功能、功能优化与缺陷修复条目例如 v3.14.7 中接入审计中心字段类型支持插件等。提交 Issue 前先核对最新版本可避免反馈已被修复的问题。Bug 被确认后修复方式有三种熟悉源码者可直接修复并以 PR 提交review 通过后合入主库熟悉 Golang 但不知如何下手者社区可指导修复最终同样以 PR 合入也可以由社区直接修复。修复后你可以基于该分支自行编译部署或等待社区发布新版本。2.2 需求提交从想法到方案评审如果你发现现有版本无法满足某些需求欢迎创建 Issue 提交需求。社区希望你的需求具备两个前提具有普适的使用场景在 cmdb产品形态的适用范围内。简单的需求在 Issue 里描述清楚即可复杂需求若能一并给出落地实施方案则更佳可包含但不局限于需求产生的背景、实现该特性的设计方案、需要调整的组件、代码实现方案。社区收到需求后会在社区范围内对需求与方案进行评审docs/wiki/feature.md 给出了完整的需求处理流程2.3 先沟通、再动手避免重复工作docs/CONTRIBUTING.md 与 docs/wiki/contribute.md 都强调在动手前先通过 Issue 与社区沟通。目的有三了解社区是否已经解决了该问题确认需求是否已进入排期避免因信息不对称导致重复性工作。提交前也建议先搜索已存在或类似的 Issue保证不存在冗余对应 CONTRIBUTING 中的查找已知的 issue 优先原则。新建 Issue 时请提供详细描述、截图或短视频辅助定位。三、Pull Request 贡献全流程社区遵循通用的 GitHub 代码贡献流程docs/wiki/contribute.md 将整个流程拆解为七个环节下面逐一展开。3.1 注册账户、Fork 与本地开发注册账户首先需要一个 GitHub 账户这是参与社区资源维护的前提。沟通与确定方案通过 Issue 反馈问题或需求并得到社区确认后即可确定解决方案输出相应的设计文档、接口文档——这是深度参与开发的基础。Fork 与 clone将 bk-cmdb 仓库Fork到自己的 GitHub 仓库随后将代码clone到本地并根据确定方案checkout到对应分支或 tag。社区会根据方案确定该问题、需求所属的分支或 tag请以此为准。开发按照确定的方案、接口文档进行开发大的需求可以拆解为多个commit分批提交。3.2 提交 PR创建流程与信息填写完成代码开发后即可在自己的仓库向 bk-cmdb 主库发起Pull Request。创建流程分为三步进入仓库Pull requests页面点击New pull request发起创建选择本地分支和要合入的主库分支即确定方案后拿到的开发分支填写 PR 信息标题简要概括 PR 主要内容描述框中详细填写新增、优化功能或问题修复的具体内容最后可利用 close 命令关闭该 PR 合入主库后需要关闭的 Issue。3.3 PR Review 与 ApprovePR 创建完成后即进入 review 环节自动 CI 检查提交 PR 后会自动触发 CI 流程对提供的代码进行代码扫描、编译检查、单元测试、集成测试等仓库内可参见 scripts/gotest.sh、src/Makefile 等测试与构建入口。通过检查后社区会对 PR 发起 review。Review 通过如果 PR 完善、符合方案与开发规范reviewer 会Approve并合入主库。Review 需调整reviewer 会在 PR 下评论提出调整建议待你修改并提交对应 commit 后再次 review直到符合要求。整个流程看似复杂实际操作起来较为简单无需被流程步骤困扰。3.4 贡献前的自查清单docs/CONTRIBUTING.md 在提交 PR 前要求开发者完成以下确认从master或hotfixfork 自己的分支修改代码后同步修改对应的文档和注释在新建文件中加入 license 和 copyright 声明确保一致的代码风格做充分的测试将代码提交到dev或hotfix分支。另外注意代码团队会监控所有 Pull Request完成代码检查和测试后会接纳 PR但不会立即合并到 master 分支。项目基于 MIT 协议见 LICENSE.txt你贡献的代码同样受该协议保护。四、分支管理与版本规范4.1 分支策略从 docs/CONTRIBUTING.md 的分支管理约定与 docs/wiki/contribute.md 的合并规则可以归纳出社区的分支使用习惯开发分支基于master或hotfixfork提交目标为dev或hotfix分支通用功能经项目管理员审核通过后合并到master分支个性功能由用户自己使用放在特定分支或版本中release的最新 tag 与蓝鲸社区版软件保持一致参与开发时应根据管理员安排 Fork 指定分支。4.2 三段式版本号规则docs/wiki/version-guidline.md 说明了 bk-cmdb 的版本号规则示例v3.2.4共三段它依据项目整体迭代节奏管理第一段大版本如3代表整个蓝鲸 cmdb 的大版本仅在大的版本调整时变更第二段迭代周期如2代表一个版本迭代周期周期内包含一个或多个新特性需求或大的结构调整随迭代周期演进调整第三段迭代内容如4代表当前迭代周期内包含的特性与多个 bugfix随开发节奏不定期调整一般为 1~3 周的周期。这与 版本日志 中的发布记录相互印证——每个 Release 均按新增功能 / 功能优化 / 缺陷修复组织方便贡献者核对当前代码处于哪个迭代。五、从合入到发布版本日志与升级PR 合入主库后新代码会随下一个 Release 发布。仓库内可对照两份文档了解发布与升级机制版本日志按版本号倒序记录新增功能、功能优化与缺陷修复例如最新记录为 v3.14.8-beta12026-05-22包含添加 bk-ops 专用的查询业务集下的容器信息的特殊接口、mongo-driver 升级、xss 防护补丁等。贡献者可通过它判断某修复/特性随哪个版本发布。版本升级说明CMDB 数据升级包含 DB 数据升级与权限中心数据升级两部分。DB 升级通过调用cmdb_adminserver的迁移接口实现scripts/init_db.sh 中保留了实际调用示例curl -X POST -H Content-Type:application/json -H X-Bkcmdb-User:migrate -H X-Bkcmdb-Supplier-Account:0 http://${cmdb_adminserver_host}:${cmdb_adminserver_port}/migrate/v3/migrate/community/0DB 升级程序按版本号升序与当前版本号逐个比对执行当前版本可在 MongoDB 中执行db.cc_System.find({type: version}).pretty()查看升级程序定义在scene_server/admin_server/upgrader目录下如y3.6.201911261109即为一个升级程序。这解释了为何社区建议贡献者在开发前先明确分支/tag——升级链路与版本号强绑定。六、其它互动方式与常见问题除了 Issue 与 PR 两条主线社区还提供了多种互动渠道点击仓库Watch按钮实时跟踪社区动态加入 CMDB 开源交流 QQ 群305496802PaaS 平台和 SaaS 交流群878501914群内可交流 Golang 开发框架如 gin、go-restful、源码编译等问题关注 蓝鲸论坛 的图解指引。docs/wiki/faq.md 汇总了社区高频问题其中与贡献者/开发者强相关的内容包括操作系统官方开发、测试、部署均在 CentOS 环境推荐在 CentOS 开发测试Go 语言跨平台也可尝试其它系统。ZooKeeper 是否必须是的配置中心服务、服务发现服务均依赖 ZooKeeper 实现。技术架构bk-cmdb 采用微服务架构后端 Go 语言开发前端基于 Vue.js 构建。nodejs 编译不过大陆用户需特殊配置才可使用 nodejs 编译源码编译可参考 docs/overview/source_compile.md。2.0 数据升级到 3.0已有迁移工具可加入开源版本 QQ 群获取。结语蓝鲸 cmdb 社区致力于构建开放、透明、合作、共赢的开源氛围鼓励广大开发者参与其中。参与社区并不限于写代码——一个高质量的 Bug 报告、一份清晰的方案文档、一次细致的文档勘误都是对社区实实在在的贡献。从 docs/wiki/community.md 出发可以顺着 Issue 规范、需求流程、贡献指南、Contributing Guide 逐章深入容器化部署、数据库升级、版本迭代规划 等 wiki 章节则能帮助你更全面地理解项目现状让每一次参与都更加有的放矢。赞分享后端企业应用运维【免费下载链接】bk-cmdb蓝鲸智云配置平台(BlueKing CMDB)项目地址https://gitcode.com/gh_mirrors/bk/bk-cmdb点击查看免费下载相关推荐bk-cmdb 社区贡献指南从 Issue 沟通到 Pull Request 合入的完整参与流程bk cmdb 社区贡献指南从 Issue 沟通到 Pull Request 合入的完整参与流程 蓝鲸配置平台bk cmdb遵循通用的 GitHub 代码后端企业应用运维Stencil 社区贡献指南从 Issue 提报到 Pull Request 合并的完整开发流程Stencil 社区贡献指南从 Issue 提报到 Pull Request 合并的完整开发流程 Stencil stencil/core 是一个基于开发工具前端前端构建CodeIgniter 社区贡献指南从 Issue 报告到 Pull Request 合并的完整开发流程CodeIgniter 社区贡献指南从 Issue 报告到 Pull Request 合并的完整开发流程 导读 本文以 CodeIgniter 官方仓库根目录后端Web框架上一篇MediaPipe实时人脸检测与手部跟踪5分钟跑通从单张图片到多平台部署下一篇Vrite代码编辑器集成如何在技术文档中嵌入智能代码块创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考