一文读懂如何使用PyCharm为飞桨提PR

news2024/11/18 19:43:25

本文以使用PyCharm进行飞桨中文文档修复为例,详细介绍了如何给飞桨提交PR(Pull Request)。
在这里插入图片描述

背景介绍

关于飞桨框架

飞桨框架是一个开源深度学习框架,源代码公开在GitHub上的PaddlePaddle中。该目录下包括飞桨核心框架代码库Paddle、飞桨文档库docs等。

为什么要进行Pull Request

飞桨并非是一个仅由百度研发工程师进行维护的库,它支持也欢迎任何人进行代码贡献。如果你希望在飞桨中增加一个功能或者修复一个bug,你可以:

  • 提交issue,也就是告知他人你的需求或上报bug;
  • 自己攥写代码,并且进行PullRequest(PR),当仓库管理员审核你的代码后(可以理解为认可你的修改后),该代码将被合并到飞桨的代码中,其他程序员使用飞桨时就会运行到你写的代码啦。

除此之外,飞桨也举办了非常丰富的活动,如飞桨黑客马拉松、飞桨快乐开源活动等,参加这些活动的一个小门槛就是能够进行PR。

关于PaddlePaddle/docs

PaddlePaddle/docs存放了飞桨中文文档,我们平时查看的API文档就存放在这个仓库下,如果你在浏览这个文档时发现有的API解释不清楚、示例不明晰、找不到对应的API说明,都可以在PaddlePaddle/docs中提交issue,或者提交PR进行修改。
在这里插入图片描述

此外,docs库没有大量的CI流水线检查,提交难度较低,非常适合大家进行PR提交练习~

关于PaddlePaddle/Paddle

PaddlePaddle/Paddle是飞桨框架的代码仓库,你可以理解为,PaddlePaddle/docs是中文文档仓库,PaddlePaddle/Paddle是源代码仓库。
中文API文档在PaddlePaddle/docs中管理,英文文档以注释的形式存在于飞桨的源代码中。通常中英文文档应当保持一致。

前置准备

GitHub

首先,需要一个GitHub账号,在GitHub直接注册即可。之后,进入到PaddlePaddle/docs点击右上角的fork,创建一个属于自己的PaddlePaddle/docs副本。
在这里插入图片描述

此时,你就拥有了一个对应的下载地址,比如你的昵称是USERNAME;你的PaddlePaddle/docs下载链接:
https://github.com/USERNAME/docs.git

PyCharm

本项目使用PyCharm进行PR教学,你可以使用其他任何本地编辑器代替。从PyCharm官网下载社区版安装即可。

在PyCharm上获取PaddlePaddle/docs并修改提交

获取PaddlePaddle/docs

打开PyCharm点击从VCS获取,输入对应的URL即可。链接:

https://github.com/USERNAME/docs.git

在这里插入图片描述

如果拉取项目失败,建议挂代理后再次尝试,如果不方便设置代理,你可以更换时间再次尝试,个人经验来看大约有超过40%的概率能获取成功。成功拉取后,如提示是否信任项目,直接选择信任即可。

修改分支

进入项目后,通过左下角的Git选框进入分支序列,并且右键当前分支,新建一个分支。
在这里插入图片描述

安装pre-commit

pre-commit是一个格式预检查工具,能够在你提交的时候进行格式审查,对于有些GitHub仓库来说不太需要这个工具,但在飞桨的Paddle库提交PR时有这个工具,能够帮你在提交之前查出代码里的问题。

在PyCharm里想要安装pre-commit可以通过控制台,也可以通过“文件-项目-解释器”进行安装,只要保证版本号是2.17.0即可。
在这里插入图片描述

之后,在控制台执行pre-commit install即可。如果你的控制台不能执行,请通过“文件-项目-解释器”修改你的Python环境为venv。

修改文档

以飞桨中绝对值函数API paddle.abs为例,打开对应.rst文件,删除其中一些空行。
在这里插入图片描述

修改后的文档可以通过左侧提交进行审阅。

提交

在左侧的提交条目,选择想要提交的文件,插入一个说明,并点击提交并推送。PyCharm会自动调用pre-commit进行格式检查。
在这里插入图片描述

提交成功后,就可以看到左下角提示你提交成功。

进行PR

回到GitHub网页,在你的docs目录下可以看到Compare&pull request的提示。当然,你也可以通过点击pull request→New pull request进行提交PR。
在这里插入图片描述
之后在弹出页面中填写PR的目的、内容,形式类似于写邮件。注意在标题处明确表达自己的意图,并在正文中进行详尽描述。
在这里插入图片描述

最后,点击Create pull request即可。之后,你可以通过PaddlePaddle/docs→Pull requests看到你和其他人的PR,并且审阅大家的工作内容,留下一些友善的建议/评论。以刚刚创建的PR为例,创建后的界面如下:
在这里插入图片描述

后续事项

如果你进行的改动非常完美,将会收到GitHub提醒邮件,表明你的PR已经被合入。如果你的改动仍需调整,你会在上述页面中收到审阅人的建议/意见,在这里你可以对自己的PR进行解释,以拒绝这些建议/意见,也可以根据意见进行修改,但无论如何请进行回复,不然这个PR将永远无法被合入(合入的基础是该PR得到审阅人的认可)。

所以,你学会了吗?快速练习上手&检验学习成果的时候到了,快来参加:飞桨快乐开源活动:快来提PR,领取新年礼物啦

为鼓励更多的开发者参与到飞桨社区的开源建设中,帮助社区修复bug或贡献feature,加入开源、共建飞桨。飞桨快乐开源活动暖冬来袭,我们提供了三种类型的贡献任务,并为完成任务的贡献者准备了礼品表示感谢!

如果你对提PR仍有问题,欢迎在评论区留言或扫描下方图片二维码沟通咨询~
在这里插入图片描述

关注【飞桨PaddlePaddle】公众号,获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

51单片机——IO拓展(串转并)-74HC595 小白详解

74HC595 芯片介绍 74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三 态输出(即高电平、低电平和高阻抗)。芯片管脚及功能说明如下:图1 上面两张都是 74HC595 芯片管脚图,细心的朋友就会发现左侧的…

python+django在线考试系统39n99

目 录 目 录 III 第一章 概述 1 1.1 研究背景 1 1.2 开发意义 1 1.3 研究现状 1 1.4 研究内容 2 1.5 论文结构 2 第二章 开发技术介绍 1 第三章 系统分析 1 3.1 可行性分析 1 3.1.1 技术可行性 1 3.1.2 操作可行性 1 3.1.3 经济可行性 …

STM32频率测量

频率测量是个最基本的且常见的工业需求. 但是这种简单的需求却不是那么的好实现. 总体来看, 目前的单片机还是有很大的改进空间. 很少有频率测量能够覆盖所有的频率范围. 而使用 STM32F103 性能有限. 根据待测频率, 我分成低中高, 三个阶段. 分别对应着3种不同的测量方法. 低频…

springboot 协同办公OA管理系统源码带文字安装教程【免费分享】

Java协同办公OA管理系统源码带文字安装教程 文末获取源码! 框架:springboot freemark jpa mybatis mysql 环境:jdk8 mysql5.7 IntelliJ IDEA maven nginx 宝塔面板 这是一套OA办公系统,使用Maven作项目管理,基…

NETCAD GIS快速而简单的搜索引擎

NETCAD GIS快速而简单的搜索引擎 NETCAD GIS是一种支持国际标准的CAD和GIS软件,旨在为用户设计和使用地理信息系统。它还提供了CAD、GIS和光栅与未来的强大连接。 该程序也是一个快速而简单的搜索引擎,只能通过向查看器键入几个单词来访问,并…

嵌入式开发学习之--中断应用概览

文章目录前言一、什么是NVIC1.1NVIC 简介1.2 NVIC 寄存器简介二、中断优先级2.1优先级定义2.2优先级分组三、中断编程总结前言 中断是系统逻辑十分常用的,学好中断,以及中断优先级的合理配置,才能使自己的项目更加稳定。 提示:以…

rdd 相关信息整理

RDD 是什么? 官网描述 A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable, partitioned collection of elements that can be operated on in parallelRDD 是三个单词的首字母缩写,它表示弹性分布式数…

火爆全网的ChatGPT上手体验,文尾免费送账号!

文章目录1. ChatGPT公开信息2. ChatGPT上手体验3. ChatGPT目前趋势4. 福利派送1. ChatGPT公开信息 近期关于网路上对 ChatGPT(OpenAI发布的一款人工智能对话引擎)的讨论比较多。官方对ChatGPT的定义如下: We’ve trained a model called Cha…

[Linux打怪升级之路]-文件操作

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。 目录 一、认识操…

python -- PyQt5(designer)中文详细教程(七)控件2

控件2 本章我们继续介绍PyQt5控件。这次的有 QPixmap , QLineEdit , QSplitter ,和 QComboBox 。 图片 QPixmap 是处理图⽚的组件。本例中,我们使用 QPixmap 在窗⼜⾥显示⼀张图片。 from PyQt5.QtWidgets import (QWidget, QH…

PLC远程监控助力食品废水处理智能化管理

食品加工行业是用水大户,因其原料广泛、成品丰富,中间需要多种不同的加工工艺,因此排放的废水差异很大,废水量也不一样,对污水处理厂提出不同的要求。为了保证污水处理工作的稳定进行,保证视频废水的净化效…

Matplotlib入门[06]——figures,subplots,axes和ticks对象

Matplotlib入门[06]——figures,subplots,axes和ticks对象 参考: https://ailearning.apachecn.org/Matplotlib官网matplotlib xticks yticks import matplotlib.pyplot as pltfigures,axes和ticks的关系 这些对象的关系可以用下图表示&…

基于jsp+mysql+ssm服装商城平台-计算机毕业设计

项目介绍 实现一个基于SSM框架的服装商城平台的的设计与开发。实现用户从浏览服装,搜索服装,加入购物车,下订单,评论服装一整个购物流程的功能,系统采用了jsp的mvc框架,SSM(springMvcspringMybatis)框架进行开发,本系统使用mysql…

Matter中国开发者大会实录(2022年12月2日,深圳)

目录 背景介绍 Nodic-Matter Silicon Labs-Matter Telink-Matter NXP-Matter BEKEN-Matter ESP32-Matter 背景介绍 2022年12月2日,Matter中国区开发者大会在深圳举行。大概有300多位开发者到会,我也是其中的300分之一。这次大会从早上9点半开始&a…

pybind11的Hello World

pybind11的Hello World pybind11 是用来将c的函数\类等封装为python模块的。从而在python中就可以调用C的库。 安装 pybind11是个C的header-only的库。因此无需安装,只需要有头文件即可。 自己新建一个C文件夹。在文件夹内将pybind作为一个外部库,使…

第七次更新,Spring Cloud Alibaba,迎接微服务生态的下一个十年

Spring Cloud Alibaba是什么? 2022年都快过完了,我相信大家肯定不用我说Spring Cloud Alibaba是什么了! 近期阿里最新开源了一份,Spring Cloud Alibaba(全解第7版),我大概看了一下&#xff0c…

JAMA Neurology:帕金森病跨疾病阶段的新兴神经成像生物标记物

意义:帕金森病(PD)的成像生物标记物在临床试验中的发病进程监测方面起到越来越重要,也具有改善临床护理和管理的潜力。这篇综述阐述了临床医生和研究人员需要明确在临床过程中使用的PD诊断和发病进程的成像生物标记物的时间相关性。磁共振成像(扩散成像、…

目标检测算法——人体姿态估计数据集汇总(附下载链接)

🎄🎄近期,小海带在空闲之余收集整理了一批人体姿态估计数据集供大家参考。 整理不易,小伙伴们记得一键三连喔!!!🎈🎈 一、KTH 多视图足球数据集 数据集链接&#xff1a…

python快速实现NPV净现值计算

净现值指未来资金(现金)流入(收入)现值与未来资金(现金)流出(支出)现值的差额,是项目评估中净现值法的基本指标。未来的资金流入与资金流出均按预计折现率各个时期的现值…

2023年天津仁爱学院专升本报名确认缴费考试流程

2023年天津仁爱学院专升本报名确认缴费操作流程说明及考试时间一、报名操作流程 1. 报名注册 请考生于2022年12月7日上午9点—12月11日中午12:00点登录报名系统https://jw.tjrac.edu.cn/zsb,点击“注册”按钮后进入报名登录界面,先请仔细阅读…