跳转到主要内容

GitHub上的Python包托管辅助工具

项目描述

Github功能Git仓库托管、Git标签(或任何存档)的下载页面、基本的issue跟踪器、wiki和静态页面托管(gh-pages)。如果gh-pages易于设置且与Sphinx兼容,那么它将非常适合托管Python包及其文档。

设置gh-pages的根分支相当复杂;Sphinx将其源代码和静态文件放在名为“_static”和“_source”的目录中,gh-pages不想提供这些目录的服务。

Sphinx扩展(github.tools.sphinx)纠正了最后一个问题;一些paver任务(github.tools.task.*)负责创建一个Git子模块来托管构建的HTML文档;PasteScript模板创建基本布局和pavement.py脚本以开始。

要求

此扩展及其依赖项需要

  • 一个GitHub用户帐户和

  • Git(与1.6.2.4版进行测试),

  • Python 2.5+。

它目前仅在Ubuntu 8.04(以及从源构建的Git)和Python 2.5上进行测试。

它应在OS X上运行。对于Windows,只要GitPython运行正常,它就应能正常工作。然而,因为它只是启动git子进程来工作,所以可能难以与像msysgitgitextensions这样的Git安装程序一起使用。

安装

如果您已经安装了setuptools,那么获取github-tools的最简单方法是:

easy_install github-tools

如果没有setuptools,可以从Pypi或从Github下载,解压缩并运行:

python setup.py install

当前的开发版本可以在http://github.com/dinoboff/github-tools/tarball/master找到。

用法

包布局

如果您是从头开始,可以使用paster创建基本布局:

paster create -t gh_package <project name>

项目名称将用于pypi以及您的Github仓库(http://github.com/<user>/<project name>)。

要完成您的开发环境设置,创建一个虚拟环境和以开发模式部署您的包:

cd <project name>
python bootstrap.py --no-site-packages

基本包附带一个虚拟环境引导脚本,用于创建独立的Python环境。要在您的shell中激活此环境,请运行:

source ./virtual-env/bin/activate
# or .\virtual-env\Scripts\activate.bat on windows

最后

paver generate_setup minilib develop.

Paver会将一个setup.py文件添加到您的包中,以及一个便携式Paver库(由setup.py要求),并以开发模式部署您的应用程序;包含您的包的“src”文件夹被添加到Python路径中。

setup.py文件内容不多。所有setup()参数都设置在pavement.py中。所有的distutils和setuptools任务都可以通过paver使用,并且很容易扩展或添加自己的命令(有关更多详细信息,请参阅paver文档)。

您现在可以编写您的包(在src/中)及其文档(在docs/source中)。您现在可能应该开始跟踪您的项目了。

git init
git add .
git commit -m "initial import"

Github项目创建

当您准备好分享您的工作时,您需要在GitHub上创建一个仓库并将本地仓库推送到那里。Paver可以为您完成这项工作。Paver需要您的GitHub用户名和令牌来创建仓库。您可以使用以下命令设置它们:

git config --global github.user <user>
git config --global github.token <token>

您可以在您的Github账户页面找到您的令牌。

然后,为了创建仓库并上传您的项目:

paver gh_register

文档托管

一旦项目创建完成,您就可以创建您的gh-pages分支并将其上传到GitHub。

paver gh_pages_create gh_pages_build

Paver将在您的项目的docs/build/html处创建一个项目子模块,创建一个gh-pages根分支并将分支推送到您的项目。然后它构建html文档。要清理html构建文件夹,它会更新子模块(您将丢失未提交和推送的更改),删除所有文件和目录(除了.git/),并重新构建文档。

当您的文档可以发布时,只需将您的gh-pages子模块推送到GitHub。

paver gh_pages_build gh_pages_update -m "update docs with..."

您的文档应该可以在http://<user name>.github.com/<project name>上找到。

您可能还想更新子模块引用(子模块指向远程仓库的特定提交,而不是特定分支的HEAD)。

git add docs/build/html
git commit -m "update gh-pages submodule"

帮助和开发

如果您想帮忙,您可以在http://github.com/dinoboff/github-tools/上fork项目,并在http://github.com/dinoboff/github-tools/issues上报告任何错误。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

github-tools-0.1.7.tar.gz (103.8 kB 查看哈希值)

上传时间 源代码

由支持