You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/zh-CN/CONTRIBUTING.md

9.3 KiB

贡献《数据科学入门》

感谢您对《数据科学入门》课程的贡献兴趣!我们欢迎社区的贡献。

目录

行为准则

本项目采用了 Microsoft 开源行为准则。 有关更多信息,请参阅 行为准则常见问题 或通过 opencode@microsoft.com 联系我们提出其他问题或意见。

我如何贡献?

报告错误

在创建错误报告之前,请检查现有问题以避免重复。当您创建错误报告时,请尽可能提供详细信息:

  • 使用清晰且描述性的标题
  • 描述重现问题的具体步骤
  • 提供具体示例(代码片段、截图)
  • 描述您观察到的行为以及您的期望
  • 包括您的环境详细信息操作系统、Python版本、浏览器

提出改进建议

我们欢迎改进建议!提出建议时:

  • 使用清晰且描述性的标题
  • 提供建议改进的详细描述
  • 解释为什么此改进会有用
  • 列出其他项目中的类似功能(如果适用)

贡献文档

文档改进总是受到欢迎:

  • 修复拼写和语法错误
  • 提高解释的清晰度
  • 补充缺失的文档
  • 更新过时的信息
  • 添加示例或使用案例

贡献代码

我们欢迎以下代码贡献:

  • 新的课程或练习
  • 错误修复
  • 改进现有的笔记本
  • 新的数据集或示例
  • 测验应用程序的改进

入门指南

前提条件

在贡献之前,请确保您已具备以下条件:

  1. 一个 GitHub 账户
  2. 您的系统上已安装 Git
  3. 安装了 Python 3.7+ 和 Jupyter
  4. 安装了 Node.js 和 npm用于测验应用程序贡献
  5. 熟悉课程结构

请参阅 INSTALLATION.md 获取详细的设置说明。

Fork 和克隆

  1. 在 GitHub 上 Fork 仓库
  2. 本地克隆您的 Fork
    git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git
    cd Data-Science-For-Beginners
    
  3. 添加上游远程仓库
    git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
    

创建分支

为您的工作创建一个新分支:

git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix

分支命名约定:

  • feature/ - 新功能或课程
  • fix/ - 错误修复
  • docs/ - 文档更改
  • refactor/ - 代码重构

贡献指南

对课程内容的贡献

贡献课程或修改现有课程时:

  1. 遵循现有结构

    • README.md 包含课程内容
    • Jupyter 笔记本包含练习
    • 作业(如果适用)
    • 链接到前测和后测
  2. 包括以下元素

    • 清晰的学习目标
    • 分步解释
    • 带注释的代码示例
    • 练习以供实践
    • 额外资源的链接
  3. 确保可访问性

    • 使用清晰、简单的语言
    • 为图片提供替代文本
    • 包含代码注释
    • 考虑不同的学习风格

对 Jupyter 笔记本的贡献

  1. 在提交之前清除所有输出

    jupyter nbconvert --clear-output --inplace notebook.ipynb
    
  2. 包含带解释的 Markdown 单元格

  3. 使用一致的格式

    # Import libraries at the top
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    # Use meaningful variable names
    # Add comments for complex operations
    # Follow PEP 8 style guidelines
    
  4. 在提交之前完全测试您的笔记本

对 Python 代码的贡献

遵循 PEP 8 样式指南:

# Good practices
import pandas as pd

def calculate_mean(data):
    """Calculate the mean of a dataset.
    
    Args:
        data (list): List of numerical values
        
    Returns:
        float: Mean of the dataset
    """
    return sum(data) / len(data)

对测验应用程序的贡献

修改测验应用程序时:

  1. 本地测试

    cd quiz-app
    npm install
    npm run serve
    
  2. 运行代码检查工具

    npm run lint
    
  3. 成功构建

    npm run build
    
  4. 遵循 Vue.js 样式指南和现有模式

对翻译的贡献

添加或更新翻译时:

  1. 遵循 translations/ 文件夹中的结构
  2. 使用语言代码作为文件夹名称(例如,法语为 fr
  3. 保持与英文版本相同的文件结构
  4. 更新测验链接以包含语言参数:?loc=fr
  5. 测试所有链接和格式

拉取请求流程

提交之前

  1. 使用最新更改更新您的分支

    git fetch upstream
    git rebase upstream/main
    
  2. 测试您的更改

    • 运行所有修改过的笔记本
    • 测试测验应用程序(如果已修改)
    • 验证所有链接是否有效
    • 检查拼写和语法错误
  3. 提交您的更改

    git add .
    git commit -m "Brief description of changes"
    

    编写清晰的提交消息:

    • 使用现在时态(“添加功能”而不是“已添加功能”)
    • 使用命令式语气(“移动光标到...”而不是“光标移动到...”)
    • 限制第一行为 72 个字符
    • 在相关时引用问题和拉取请求
  4. 推送到您的 Fork

    git push origin feature/your-feature-name
    

创建拉取请求

  1. 转到 仓库
  2. 点击“Pull requests” → “New pull request”
  3. 点击“compare across forks”
  4. 选择您的 Fork 和分支
  5. 点击“Create pull request”

PR 标题格式

使用清晰、描述性的标题,遵循以下格式:

[Component] Brief description

示例:

  • [Lesson 7] 修复 Python 笔记本导入错误
  • [Quiz App] 添加德语翻译
  • [Docs] 更新 README添加新前提条件
  • [Fix] 修正可视化课程中的数据路径

PR 描述

在您的 PR 描述中包括:

  • 内容:您做了哪些更改?
  • 原因:为什么需要这些更改?
  • 方法:您如何实现这些更改?
  • 测试:您如何测试这些更改?
  • 截图:对于视觉更改,请包含截图
  • 相关问题链接到相关问题例如“Fixes #123”

审核流程

  1. 自动检查将运行在您的 PR 上
  2. 维护者将审核您的贡献
  3. 根据反馈进行额外提交
  4. 一旦获得批准,维护者将合并您的 PR

PR 合并后

  1. 删除您的分支:

    git branch -d feature/your-feature-name
    git push origin --delete feature/your-feature-name
    
  2. 更新您的 Fork

    git checkout main
    git pull upstream main
    git push origin main
    

样式指南

Markdown

  • 使用一致的标题级别
  • 在章节之间添加空行
  • 使用带语言标识符的代码块:
    ```python
    import pandas as pd
    ```
    
  • 为图片添加替代文本:![Alt text](../../translated_images/zh-CN/image.4ee84a82b5e4c9e6651b13fd27dcf615e427ec584929f2cef7167aa99151a77a.png)
  • 保持合理的行长度(约 80-100 个字符)

Python

  • 遵循 PEP 8 样式指南
  • 使用有意义的变量名
  • 为函数添加文档字符串
  • 在适当的地方添加类型提示:
    def process_data(df: pd.DataFrame) -> pd.DataFrame:
        """Process the input dataframe."""
        return df
    

JavaScript/Vue.js

  • 遵循 Vue.js 2 样式指南
  • 使用提供的 ESLint 配置
  • 编写模块化、可重用的组件
  • 为复杂逻辑添加注释

文件组织

  • 将相关文件放在一起
  • 使用描述性的文件名
  • 遵循现有的目录结构
  • 不要提交不必要的文件(如 .DS_Store、.pyc、node_modules 等)

贡献者许可协议

本项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议 (CLA),声明您有权并实际授予我们使用您的贡献的权利。详情请访问 https://cla.microsoft.com

当您提交拉取请求时CLA-bot 会自动确定您是否需要提供 CLA并适当装饰 PR例如标签、评论。只需按照机器人提供的说明操作即可。您只需在所有使用我们 CLA 的仓库中执行一次此操作。

有问题?

感谢!

您的贡献使这门课程对所有人都更好。感谢您抽出时间贡献!


免责声明
本文档使用AI翻译服务 Co-op Translator 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。