This repository has been archived by the owner. It is now read-only.

WeCase 开发指南

Stark Li edited this page May 21, 2015 · 21 revisions

开发工具

  1. Python 3.2
  2. PyQt 4
  3. 新浪微博 Python SDK(WeCase Python 3 移植版本)
  4. Git
  5. 使用 pep8 检查编码规范,使用 pyflakes 检查明显的错误。flake8 则可以同时代替以上两者。
  6. 一个顺手的编辑器,Vim 是官方支持的

目录规范

  1. doc - 与项目有关的文档
  2. sdk - 新浪微博 Python SDK 的一份拷贝,指向 WeCase/sinaweibopy 的 Submodule
  3. src - 主要的源代码所在地
  4. locale - 语言翻译文件
  5. res - 程序资源文件
    • ui - Qt Designer 生成的 .ui 文件
    • img - 程序运行时所需图片 为了使用方便,目录中这些目录可以互相进行符号链接。

值得注意的是,ui 文件夹仅仅用来收录 Qt Designer 生成的文件。至于 pyuic 生成的程序运行时需要的界面文件,由 Autotools 在构建时生成,要放置在 src 下。命名标准是:LoginWindow.ui -> LoginWindow_ui.py。由于自动生成的界面文件随时可能丢失,所以严禁对其进行修改。

版本规范

本项目在 experimental 分支进行开发工作,称作“开发分支”;添加特性时,应创建新分支完成,称作“特性分支”;master 分支是唯一的稳定分支,其它分支均不是稳定分支。

开发分支用来进行主要的开发工作,但是,添加新特性时,应先创建功能分支进行开发,以保证开发分支处于较稳定状态,如创建 0.06 分支为未来的 0.06 版本开发新特性。特性分支允许提交半成品;开发分支则不允许。开发后,将功能分支合并入开发分支,合并后。删除功能分支。可见,开发分支仍具有一定稳定性,尝鲜者和 Daily Build 都应选择 experimental 而非开发分支。

稳定分支仅限于 biergaizi 进行合并。master 的代码应合并开发分支。合并后,我应该对新版本打上 tag,并且附带我的 PGP 签名验证身份。开发分支也可以打 tag,但是同样只限于 biergaizi 进行,只允许打 Alpha 和 Beta 版本的 tag。

贡献者们做贡献时,应该在功能分支完成,并且发送合并入开发分支的 Pull Request,详细阐述特性,进行绝对不会有争议的修改时,时可以直接并入。

编码规范

本项目使用 PEP8 作为编码规范。我们建议所有代码经过提交之前,要经过 PEP8 检查器的检查(pyuic 生成的代码除外),保证错误尽可能少。

然而,PyQt 的风格有时会与 PEP8 有冲突(如大小写规范),这时请以 PyQt 的惯用风格为准。 这样做的原因,参见 PEP8 and PyQt, how to reconcile

变量命名

在命名 Qt 部件时,请参考:

QTextEdit *userNameEdit = new QTextEdit(this);
QListView *userListView = new QListView(this);
QPushButton *userClearButton = new QPushButton(this);

细节

除了标准的 PEP8 之外,有两个我希望在本项目中强调的规范。

  1. Shebang - 应为 #!/usr/bin/env python3,而不是 #!/usr/bin/env python#!/usr/bin/python3。这样可以减少多版本 Python 带来的问题。 2. 编码标识符 - 统一为 # -*- coding: UTF-8 -*-,这种风格比较醒目,也最常用。 现在去除它。
  2. Vim 的 Modeline - # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4,这样可以使缩进自动遵循 PEP8 的标准。

我希望本项目的头部应当是统一的,如下示范:

#!/usr/bin/env python3
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

# WeCase -- Linux Sina Weibo Client
# Copyright (C) 2013, 2014, 2015 The WeCase Developers.
# License: GPL v3 or later.


class Main():
# your code...

WeCase -- Linux Sina Weibo Client 可以换成对特定模块的介绍。

关于 Python 版本的问题

Python 3.2 以上为官方支持。

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.