github托管python包的帮助程序
github-tools的Python项目详细描述
github的特点是git存储库托管,git标记的下载页面 (或任何存档)、基本问题跟踪程序、wiki和静态页面宿主 (gh-pages)。它将是一个完美的主办 python包及其文档如果gh页面易于设置和 与Sphinx兼容。
为gh页面设置根分支相当复杂;sphinx将其 名为“静态”和“源”的目录中的源文件和静态文件 GH页面不想为他们服务。
狮身人面像扩展(github.tools.sphinx)更正了最后一个问题; 一些铺路机任务(github.tools.task.*)负责创建git 子模块以承载生成的html文档;pastescript模板 创建基本布局和pavement.py脚本开始。
要求
此扩展及其依赖项需要:
- a GitHub user account and,
- Git (tested with 1.6.2.4),
- Python 2.5+.
它目前只在Ubuntu8.04上测试过(以及从源代码构建的Git) 使用Python2.5。
它应该在OSX上工作。对于Windows,它应该在 GitPython可以。但是自从它 只需启动git子进程即可工作,使用 Git安装程序,如msysgit或 gitextensions。
安装
获得github工具的最简单方法是安装setuptools:
easy_install github-tools
如果没有安装工具,请从 Pypi或来自 Github,解开它 然后运行:
python setup.py install
当前的开发版本可以在 http://github.com/dinoboff/github-tools/tarball/master。
用法
包装布局
如果您是从头开始,请使用粘贴器创建基本布局:
paster create -t gh_package <project name>
项目名称将用于pypi和github存储库 (http://github.com/<user>/<project name>)。
要完成开发环境设置,请创建一个虚拟环境 并以开发模式部署包:
cd <project name> python bootstrap.py --no-site-packages
基本包附带一个virtualenv boostrap脚本 创建一个独立的python环境。激活此环境 在您的壳中,运行:
source ./virtual-env/bin/activate # or .\virtual-env\Scripts\activate.bat on windows
最后:
paver generate_setup minilib develop.
摊铺机将setup.py文件添加到包和便携式摊铺机库中 (由setup.py要求),并以开发模式部署应用程序; 包含包的“src”文件夹被添加到python路径中。
setup.py不包含太多内容。所有setup()参数都设置在 pavement.py。所有distutils和setuptools任务都可与paver一起使用 而且很容易扩展或添加自己的命令(请参见 paver documentation 更多细节)。
您已经准备好编写包(在src/中)及其文档 (在docs/source中)。您现在应该开始跟踪您的项目:
git init git add . git commit -m "initial import"
github项目创建
当你准备好分享你的工作时,你需要 在github创建一个存储库并推送本地存储库。摊铺机能做到 为你。paver需要您的github用户名和令牌来创建 储存库。您可以使用以下命令设置它们:
git config --global github.user <user> git config --global github.token <token>
你可以在你的 Github account page。
然后,创建存储库并上载项目:
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://<username>.github.com/<project name>处。
您可能还需要更新子模块引用(子模块点 在远程存储库上进行特定的提交,而不是向头部提交 特定分支的:
git add docs/build/html git commit -m "update gh-pages submodule"
帮助和发展
如果你想帮忙的话,你可以分钱做这个项目 在http://github.com/dinoboff/github-tools/报告任何错误 在http://github.com/dinoboff/github-tools/issues。