请帮助 Krita 基金会! 八月 2018 的捐款 €1732 已收到捐款 162 位慷慨的捐赠者

Krita 是目前最受关注和进展最快的开源绘画应用软件。我们欢迎新的开发人员加入我们的行列并肩作战。

为了集中精力开发新功能,减少重复性的基础开发工作,Krita 采用了模块化的程序结构,基于 KDE 框架 和 Qt 程序库。这些特点让 Krita 的开发工作变得更加舒畅。Krita 使用 C++ 和 Qt 编写,学好两者将对你的工作大有助益。

新手入门

  1. 这一点最为重要:我们的源代码库位于 https://phabricator.kde.org/source/krita/。我们在 Github 上建有镜像,但我们并不使用它来进行开发,请不要在 Github 上创建拉取请求或提交问题。
  2. KDE 开发人员 Wiki 页面
  3. 配置好你的开发环境以便编译 Krita。 如果你需要在 Windows 或 OSX 下面编译,请查看源代码的 3rdparty 文件夹中的相关说明,并自行编译所需的依赖程序。
  4. 使用 KDE 的错误追踪系统来寻找可以修复的问题。我们建议你首先通过修复问题来入手,这样可以循序渐进地熟悉我们的代码结构和开发流程。如果你想要马上开发某项新功能,这也没有任何问题!
  5. 对于修复程序问题,你可以从“新手工作 (Junior Jobs)”开始。这是我们整理出来的一些相对简单的任务。在错误追踪系统里这些新手工作以“JJ”进行标记。

为 Krita 编写代码

程序结构:Krita 的代码库每天都在更新,在需要的时候我们会果断地对代码进行大幅重构。因此并不存在能反映最新代码结构的文档。过去我们也曾撰写过一些相关文档,但它们往往过不了几天就变得过时了,花了许多时间还派不上多大用处。如果你需要了解代码结构,可以查阅大致反映了最新情况的 API 说明

集成开发环境 (IDE):我们最常用的 IDE 是 Qt Creator、Emacs、KDevelop、vim。Qt Creator 有一个方便的 Ctrl-K 菜单,你可以用它跳传到某个程序类别或者某一行。你不需要通过 Qt Creator 来进行编译。直接切换到命令行终端进行“make”操作,观察程序变化,然后切换回 IDE 继续工作,这样做其实更简单直接。

程序调试:程序调试的难度有大有小。对于一些小问题,使用 Qt Creator 自带的调试器或者添加 qDebug 信息到代码里就足够了。如果问题比较复杂,首先应该编写一个单元测试,用一小段代码配合一组输入模式来对有问题的代码进行测试,揭示问题的所在。这样做不但可以帮助我们修复问题,还能确保该问题以后不再发生。

编程学习资源:学习编程的最重要一步是彻底搞懂内存管理的概念,把握好指针、智能指针和指针计算的相关知识。来自 Java 和 C# 背景的开发人员可能要多花些时间学习。以下是一些能够帮助你熟悉 C++ 和 Qt 的学习资源:

追踪问题的技巧

新功能和代码重构工作:有时候某项任务需要大量的工作,这些工作会被分配到“master”以外的分支。例如 Dmitry 把他正在编写的新功能放在一个测试分支上,这样用户们在检查他的工作进度时就比较方便。

性能改进:如果你发现程序的某些方面运行缓慢,首先要做的是在 callgrindvtune 下面重现触发缓慢的情况。这些工具在测试结束后会揭示出程序的瓶颈。不同的工具的测试侧重点不同,它们揭示的问题也不尽相同,所以要把两个工具都拿来测试一遍,这一点非常重要。

程序问题:有些程序问题比较简单,说不定用周六的一个上午就能解决掉。有些程序问题却相当紧急,如造成数据丢失的问题。有些问题则是在 IRC 或者论坛上被提及的。对于程序问题,首先要做的就是重现它们,然后再去检查代码,找出造成问题的原因。对于那些造成崩溃的问题,尤其是那些难以捉摸的崩溃,可以在崩溃报告的回溯跟踪里面找到一些关键字串,然后在搜索引擎里查找它们的含义。要注意的是这些并不总是 Krita 自身的问题,有些时候问题其实是操作系统的具体状况造成的。

遇到难题:如果你在为 Krita 编程时遇到难题,请告诉我们!你可以在 Krita 的 IRC 频道上与我们一同讨论你遇到的问题,我们会尽力帮助你!

保持沟通

参加开源软件开发工作的一个最大好处是项目的社区支持。如果你在为 Krita 编程时遇到难题,请与 Krita 团队的其他成员进行沟通。你可以在在 irc.freenode.net 的 #krita 频道上加入我们并大胆提问。要注意的是多数的开发人员身在欧洲或印度,有些人会一直开着他们的 IRC 客户端,但他们本人却未必身在电脑旁边。在提问之后如果没能立即得到回应,请耐心等待。

你也可以发送邮件到邮件列表:kimageshop@kde.org。这是因为向某一位开发人员单独发送电子邮件并不是最好的办法,你询问的那位成员可能恰好不清楚这个方面,而另外一位成员却知道,这样你就错过了一个得到答案的机会。

成为开发人员

如果你写好了你的第一个程序补丁,请将它提交到 https://phabricator.kde.org/。我们也准备了关于如何提交程序补丁的教学文档。完成提交后开发人员会对你的补丁进行检查,如果没有发现问题,他们就会帮你将它推送到 Git 上面。在成功提交三个补丁之后,我们便会发出邀请将你的 KDE 身份账号升级为开发人员!请按照下述说明进行操作:https://techbase.kde.org/Contribute/Get_a_Contributor_Account

要创建一个程序补丁,一个简单的办法是在一个本地的 Git 分支上修改代码,然后在命令行终端里运行:

git diff HEAD~2..HEAD > my-patch.diff

这个命令会将你最近所做的 2 次代码改动生成纯文本格式的 diff 文件。提交补丁时将它附上以便检查。

提交权限

在成功提交几个补丁之后,你就会得到直接将补丁推送到代码库的权限。在进行推送操作之前,你要先将你的 Git 代码库从只读版本切换到可读写版本。切换所用的 Git 指令如下:

git remote set-url origin git@git.kde.org:krita

除此之外你还要进行 SSH 访问配置和一个 KDE 身份账号。你可以通过下面的说明进一步了解:

如何获取开发人员账号