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子进程来工作,所以可能难以与像msysgit或gitextensions这样的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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b68e5e46542aa86a3f7e9ad99711f6957dfa2c2723d64e2fbdc55c143ed63238 |
|
MD5 | 85a77c74639598368f879bc07ca98b2b |
|
BLAKE2b-256 | 0d2135fb8ae0bb6c1b2bd83c27b95aad6743dbeed852cad20eed300a7a053bcb |