无废话:开源小白如何加入开源社区,贡献代码

本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!


首先为你选择加入开源贡献行列的行为点赞👍🏻。

本篇文章以VIsActor开源项目为例,手把手带你如何加入一个开源社区,为开源项目贡献自己的光和热。

拥有自己的账号

开源团队通常在 github 上进行开发和 issue 维护,请打开 Github 网站,点击右上角 Sign up 按钮,注册一个自己的账号,开启你开源之旅的第一步。

如果因为特殊情况,你无法打开 Github 站点,也可以通过 Gitee 进行项目开发。

阅读贡献指南

开源项目通常会有一份贡献指引,在动手之前,请仔细阅读。

在VIsActor的各个仓库中,都有一份贡献指南。

VChart:github.com/VisActor/VC...

VTable:github.com/VisActor/VT...

VMind:github.com/VisActor/VM...

VGrammar:github.com/VisActor/VG...

VRender:github.com/VisActor/VR...

贡献指南介绍了有关版本管理、分支管理等内容,请花几分钟时间阅读了解一下

你的第一个 Pull Request

Step0:安装 Git

Git是一种版本控制系统,用于跟踪和管理软件开发项目中的代码变更。它帮助开发者记录和管理代码的历史记录,方便团队协作、代码版本控制、合并代码等操作。通过Git,您可以追踪每个文件的每个版本,并轻松地在不同版本之间进行切换和比较。Git还提供了分支管理功能,使得可以同时进行多个并行开发任务。

  • 访问Git官方网站:git-scm.com/
  • 下载最新版本的Git安装程序。
  • 运行下载的安装程序,按照安装向导的提示进行安装。
  • 安装完成后,你可以通过命令行使用 git version 命令确认安装成功。

Step1:Fork 项目

  • 首先需要 fork 这个项目,进入项目仓库,以VChart 为例,VChart 项目页面,点击右上角的 Fork 按钮。
  • 你的 github 帐号中会出现 xxxx(你的github用户名)/vchart 这个项目
  • 在本地电脑上使用以下命令: 得到一个 VChart 文件夹
php 复制代码
// ssh
git clone git@github.com:xxxx(你的github用户名)/VChart.git
// https
git clone https://github.com/xxxx(你的github用户名)/VChart.git

Step2:获取项目代码

  • 进入 VChart 文件夹,添加 VChart 的远程地址
csharp 复制代码
git remote add upstream https://github.com/VisActor/VChart.git
  • 获取 VChart 最新源码

    git pull upstream develop

Step3:创建分支

  • 好了,现在可以开始贡献我们的代码了。VChart 默认分支为 develop 分支。无论是功能开发、bug 修复、文档编写,都请新建立一个分支,再合并到 develop 分支上。使用以下代码创建分支:
csharp 复制代码
// 创建功能开发分支
git checkout -b feat/xxxx 

// 创建问题修复开发分支
git checkout -b fix/xxxx 

// 创建文档、demo分支
git checkout -b docs/add-funnel-demo

假设我们创建了文档修改分支 docs/add-funnel-demo

  • 现在我们可以在分支上更改代码了

  • 假设我们已经添加了一些代码,提交到代码库

  • git commit -a -m "docs: add custom funnel demo and related docs" 。VisActor 的 commit 提交信息遵循 Conventional Commits 规范

    • <type>[optional scope]: <description>

    • 其中常用的type包括 docs(文档、日志修改)、feat(新功能)、fix(问题修复)、refactor(代码重构)等,请根据实际情况选择。

    • 请用简短精确的英文描述编写 description

    • 提交 commit 之前,我们会进行 commit lint 检查,具体可以查看检查规则

Step4:合并修改

  • 一个常见的问题是远程的 upstream (@visactor/vchart) 有了新的更新, 从而会导致我们提交的 Pull Request 时会导致冲突。 因此我们可以在提交前先把远程其他开发者的 commit 和我们的 commit 合并。使用以下代码切换到 develop 分支:

    git checkout develop

  • 使用以下代码拉出远程的最新代码:

    git pull upstream develop

  • 切换回自己的开发分支:

bash 复制代码
git checkout docs/add-funnel-demo
  • 把 develop 的 commit 合并到自己分支:

    git rebase develop

  • 把更新代码提交到自己的分支中:

bash 复制代码
git push upstream docs/add-funnel-demo

Step5:提交Pull Request

你可以在你的 github 代码仓库页面点击 Compare & pull request 按钮。

或通过 contribute 按钮创建:

按照模板填写本次提交的修改内容:

  • 勾选这是什么类型的修改
  • 填写关联的 issue
  • 若有复杂变更,请说明背景和解决方案

相关信息填写完成后,点击 Create pull request 提交。

选择合适的任务,逐步提升难度

"good first issue"

"good first issue" 是一个在开源社区常见的标签,这个标签的目的是帮助新贡献者找到适合入门的问题。

以VChart为例,你可以通过 issue 列表 查看,目前包括两类:

  • Demo 案例制作
  • 简单功能开发

如果你当前有时间和意愿 参与到社区贡献,可以在 issue 里看一看 good first issue,选择一个感兴趣、适合自己的认领。

相信你一定是一个有始有终的同学,所以,当你了解并决定认领一个 issue 后,请在 issue 下留言告知大家。

Demo Task 开发指南

几乎所有的开源项目都会提供丰富的demo来帮助使用者理解用法,VIsActor 准备了一些在实际应用场景中常见的案例,需要思考如何利用 相关组件的能力实现。

你可以通过这类任务,上手对 某一组件的使用。每个人或许都有不同的实现思路,你可以在 issue 下留言,和大家讨论自己的方案

任务完成后,你可以将自己制作的案例提交到官网 demo,让更多需要的人学习和使用。

以VChart 为例,所有的 demo 存放在 docs/assets/examples 目录下

  1. 请基于 develop 分支,新拉一个 docs/***demo/*** 分支进行开发

  2. (如果你已经安装,请跳过此步骤)全局安装 @microsoft/rushnpm i --global @microsoft/rush

  3. 根目录下运行 rush update

  4. 运行rush docs 在本地预览目前 demo 内容

  5. docs 目录下

    1. docs/assets/examples/menu.json 目录文件中添加你的 demo 信息
    2. zh/en目录下分别完成中英文 demo 文档
    3. docs/public/vchart/preview目录下添加 demo 预览图片并将相对路径更新在 demo 文档中
  6. 提交所有代码,并在 Github 创建 Pull Request,邀请其他人进行 review

Feature Task 开发指南

VIsActor 准备了一些简单、易上手的特性开发任务,如果你有一定的 Javascript / Typescript 基础,可以认领这类任务。

你可以通过需求开发,更快地了解 VChart 代码架构。你可以在 issue 下留言,和大家讨论自己的方案

  1. 请基于 develop 分支,新拉一个 feat/***分支进行开发

  2. (如果你已经安装,请跳过此步骤)全局安装 @microsoft/rushnpm i --global @microsoft/rush

  3. 根目录下运行 rush update

  4. rush start 在本地运行 VChart 代码的测试页面

    1. 你可以在develop/packages/vchart/__tests__/runtime/browser下创建 index.page.local 页面,引入自己创建的开发用例
  5. 确认所有的测试都是通过的 rush test

  6. 开发完成后,运行 rush change 命令,编写 changelog 并提交

  7. 提交所有代码,并在 Github 创建 Pull Request,邀请其他人进行 review

拥抱社区

在你为 某一个开源项目贡献代码之余,我们鼓励你参与其他让社区更加繁荣的事情,比如:

  1. 为项目的发展、功能规划 等提建议
  2. 创作文章、视频,开办讲座来宣传该项目
  3. 撰写推广计划,同团队一同执行

VisActor 也在努力帮助参与社区建设的同学一同成长,我们计划(但不限于,期待大家更多的建议)提供如下帮助:

  1. 以 VisActor 为基础的数据可视化研发培训,帮助参与的同学在编程技能、可视化理论、架构设计等多个方面快速成长。
  1. 定期评选"代码贡献奖"和"社区推广奖",颁发奖品和证书

  2. 组织社区成员参与开源活动

欢迎联系

如果在开源贡献中有任何问题(不限于VIsActor),都可以通过以下途径找到我们:

官方网站:www.visactor.io/

Discord:discord.gg/3wPyxVyH6m

飞书群:

微信公众号:

Twiter:twitter.com/xuanhun1

github:github.com/VisActor

相关文档

  1. VisActor------面向叙事的智能可视化解决方案 - 掘金
  2. VTable------不只是高性能的多维数据分析表格,开源,免费,百万数据秒级渲染 - 掘金
  3. 探索 VChart 图表库:简单、易用、强大、炫酷的可视化利器 - 掘金
  4. VMind------一句话生成图表、图片和视频 - 掘金
相关推荐
GISer_Jing1 小时前
前端面试通关:Cesium+Three+React优化+TypeScript实战+ECharts性能方案
前端·react.js·面试
落霞的思绪2 小时前
CSS复习
前端·css
咖啡の猫4 小时前
Shell脚本-for循环应用案例
前端·chrome
百万蹄蹄向前冲6 小时前
Trae分析Phaser.js游戏《洋葱头捡星星》
前端·游戏开发·trae
朝阳5817 小时前
在浏览器端使用 xml2js 遇到的报错及解决方法
前端
GIS之路7 小时前
GeoTools 读取影像元数据
前端
ssshooter7 小时前
VSCode 自带的 TS 版本可能跟项目TS 版本不一样
前端·面试·typescript
Jerry8 小时前
Jetpack Compose 中的状态
前端
dae bal9 小时前
关于RSA和AES加密
前端·vue.js
柳杉9 小时前
使用three.js搭建3d隧道监测-2
前端·javascript·数据可视化