干酪棱镜
CheesePrism的Python项目详细描述
=====
奶酪棱柱体
=====
图片::https://secure.travis ci.org/whitmo/cheeseprism.png
一个用于管理静态python包索引的简单应用程序。它大量借用了'basket weaver
<;https://github.com/binarydudud/basketweaver>;``和'cheese'商场
<;git@github.com:binarydudududud/cheese\.git>;`。它利用了"pip
<;https://github.com/pypa/pypa/pip>;```和setuptools/`distribute
<;http://pypi.pypi.org/pypi/distribute>;``````````和setuptools和setuptools,用于各种包
管理任务。
<
<<
<
>>
e
$python cheeseprism.strap.pybundle new prism env
如果您已经在激活的virtualenv中,Prism将安装在那里。
2。pip从pypi安装包:
激活虚拟环境。然后在您选择的位置签出代码::
$git clone git://github.com/surveymonkey/cheeseprism.git
,然后安装::
$cd cheeseprism;pip install-e./
3。pip安装源代码:
RCE,要运行测试,首先安装
测试要求::
$cd cheeseprism
$pip install-r测试需要.txt
以及适合于测试和开发的静态文件服务器:
$paster serve development.ini
**您尚未安装源代码(即安装了
软件包或从strap文件中安装),您需要将
development.ini复制到方便的位置。
您还需要将ini key``cheeseprism.file_root``设置到希望索引文件所在的
目录。
此目录可能还不存在,或者可能是空目录。如果
目录包含格式良好的存档文件,它将根据找到的文件构建索引。
通过设置,您将需要在管理应用程序的wsgi主机和工业级文件服务器(例如nginx)之间拆分
服务。
>配置nginx
~~~~~~~~~~~~~~~~~
请参阅"doc/sample nginx.conf"并替换"alias cheeseprism/files;"和
"alias cheeseprism/static``与您的文件根和静态文件路径关联。
…待办事项:
have start-up-announce-static and-file-root(and-document)
serve-management app
~~~~~~~~~~~~~~~~~~~~~~
使用prod.ini(为您的设置编辑)进行最简单的服务。确保
删除诸如"pyramid.includes=pyramid_debugtoolbar"`
如果涉及安全问题::
$paster serve prod.ini
理智的人使用诸如upstart或"supervisord<;supervisord.org>;"之类的东西来管理此过程。
待办事项:
我的配置生成脚本
如何使用
==
这意味着对于
python2.6和更好的方法,您可以设置您的` ~/.pypirc``并像设置pypi一样上传到
prism;http://pypi.python.org/pypi>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `密码:secret
[local]
/>**注意**:prism目前对pypi的
基本身份验证方案有*最*基本的支持。这主要是为了获取要上载包的用户的
身份,而不是任何
实际安全性。如果您需要更多信息,它应该为扩展提供一个起点
(有关扩展金字塔应用程序的更多信息,请参见"金字塔文档"http://docs.pylonsproject.org/en/latest/docs/pyramid.html>;`
)。
现在**您的软件包可以从您的prism安装:
$pip install-i http://mycheese/index/myawesomepypkg
myawesomepypkg的所有依赖项也将来自您的prism,
因此请确保它们在那里(即将推出的功能将检查您的版本
,并执行NEEdful)。
使用依赖项填充索引
----------
加载文件的主要方法有3种:
>1。如果将存档文件放入索引的文件根目录并重新启动
应用程序,它将为它们生成索引项。有计划尽快使此自动运行,因此不需要重新启动。
2.通过"加载需求"页面,您可以上传一个pip
需求文件,cheeseprism将使用这些文件填充您的
索引。为virtualenv创建pip需求文件的最简单方法?::
$pip freeze-l>;myawesomerequirement.txt
>3。使用"find package"页面搜索pypi并将包加载到索引中。目前,这利用了get上的一些状态更改,但是
仍然是等幂的(很快就会修复)。
--
还有一些基本的只读json api::
$curl get http://mycheese/index/index.json
由每个
存档的md5散列键控。假设我们的索引只包含webob::
{u'1b6795baf23f6c1553186a0a8b1a2621':{u'added':1325609450.792506,
u'filename':u'webob-1.2b2.zip',
u'name':u'webob',
u'version':u'1.2b2'}
http api
——
文件可以通过一个不那么restful的接口添加到pypi的索引中,这个接口很快就会消失。如果pypi中存在"name"和"version",下面的
将从pypi下载该文件并将其注册到索引:
$curl get http://mycheese/package/{name}/{version}
future
==
/>***多索引支持**:一般的想法是,您可以发展
索引,而不是像需求文件那样,而是通过显式限制
在组中的成员资格,而不是需要
与外部索引对话的规范。一个存档可能存在于多个
索引中(但始终从同一位置服务以保留pip
缓存)。
索引为
,并克隆和扩展现有索引。
**less crap work**:通过find packages加载的版本和包的自动依赖关系加载。repo的一个文件监视程序,当添加和删除文件时,它会重建索引的适当部分。
**better readonly api**:versions.json为每个包提供了index.json格式的数据。
**betterrest**:创建``post/packages/{name}/{version}``从pypi中获取包。制作``get/packages/{name}/{version}`
提供有关包的数据,并指示包当前是否位于索引中。
**sphinx文档**:是的。
==
欢迎拉取请求!
如果你有问题或意见的话,大多数日子都会有问题或意见。
>2013-03-21 whit<;whit@surveymonkey.com>;
*清理日志
*清理日志
>*测试清理和修复
0.2a1
=
<2012-10-31 whit<;whit@surveymonkey.com>;:
*过滤来自pypi的非源分发下载
*修复了通过pypi生成add包的index.json错误d通过事务处理"数据文件"
*使"全部重新生成"重新生成数据文件(尽管效率很低)
>0.1a1
=
>初始alpha版本。
development log
----
<2012-01-09 whit<;whit@surveymonkey.com>;:
*递归下载of需求文件和依赖项
*搜索pypi并下载文件
*提高测试覆盖率
*启动时初始化索引
*索引的基本只读api
*更广泛的事件支持
*文档改进
2011-12-21 whit<;whit@surveymonkey.com>;:
*通过上载时的事件进行单个叶更新
*重构以使用pkginfo
2011-12-01 whit<;whit@surveymonkey.com>;:
*内务管理:为开发添加索引静态文件服务,
更多地使用path.py
*商场自述文件上的端口。
2011-11-07 whit<;whit@surveymonkey.com>;:
*获取应用程序基本服务
2011-11-07 whit<;whit@surveymonkey.com>;:
*设置初始包结构
奶酪棱柱体
=====
图片::https://secure.travis ci.org/whitmo/cheeseprism.png
一个用于管理静态python包索引的简单应用程序。它大量借用了'basket weaver
<;https://github.com/binarydudud/basketweaver>;``和'cheese'商场
<;git@github.com:binarydudududud/cheese\.git>;`。它利用了"pip
<;https://github.com/pypa/pypa/pip>;```和setuptools/`distribute
<;http://pypi.pypi.org/pypi/distribute>;``````````和setuptools和setuptools,用于各种包
管理任务。
<
<<
<
>>
e
$python cheeseprism.strap.pybundle new prism env
如果您已经在激活的virtualenv中,Prism将安装在那里。
2。pip从pypi安装包:
激活虚拟环境。然后在您选择的位置签出代码::
$git clone git://github.com/surveymonkey/cheeseprism.git
,然后安装::
$cd cheeseprism;pip install-e./
3。pip安装源代码:
RCE,要运行测试,首先安装
测试要求::
$cd cheeseprism
$pip install-r测试需要.txt
以及适合于测试和开发的静态文件服务器:
$paster serve development.ini
**您尚未安装源代码(即安装了
软件包或从strap文件中安装),您需要将
development.ini复制到方便的位置。
您还需要将ini key``cheeseprism.file_root``设置到希望索引文件所在的
目录。
此目录可能还不存在,或者可能是空目录。如果
目录包含格式良好的存档文件,它将根据找到的文件构建索引。
通过设置,您将需要在管理应用程序的wsgi主机和工业级文件服务器(例如nginx)之间拆分
服务。
>配置nginx
~~~~~~~~~~~~~~~~~
请参阅"doc/sample nginx.conf"并替换"alias cheeseprism/files;"和
"alias cheeseprism/static``与您的文件根和静态文件路径关联。
…待办事项:
have start-up-announce-static and-file-root(and-document)
serve-management app
~~~~~~~~~~~~~~~~~~~~~~
使用prod.ini(为您的设置编辑)进行最简单的服务。确保
删除诸如"pyramid.includes=pyramid_debugtoolbar"`
如果涉及安全问题::
$paster serve prod.ini
理智的人使用诸如upstart或"supervisord<;supervisord.org>;"之类的东西来管理此过程。
待办事项:
我的配置生成脚本
如何使用
==
这意味着对于
python2.6和更好的方法,您可以设置您的` ~/.pypirc``并像设置pypi一样上传到
prism;http://pypi.python.org/pypi>;` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `密码:secret
[local]
/>**注意**:prism目前对pypi的
基本身份验证方案有*最*基本的支持。这主要是为了获取要上载包的用户的
身份,而不是任何
实际安全性。如果您需要更多信息,它应该为扩展提供一个起点
(有关扩展金字塔应用程序的更多信息,请参见"金字塔文档"http://docs.pylonsproject.org/en/latest/docs/pyramid.html>;`
)。
现在**您的软件包可以从您的prism安装:
$pip install-i http://mycheese/index/myawesomepypkg
myawesomepypkg的所有依赖项也将来自您的prism,
因此请确保它们在那里(即将推出的功能将检查您的版本
,并执行NEEdful)。
使用依赖项填充索引
----------
加载文件的主要方法有3种:
>1。如果将存档文件放入索引的文件根目录并重新启动
应用程序,它将为它们生成索引项。有计划尽快使此自动运行,因此不需要重新启动。
2.通过"加载需求"页面,您可以上传一个pip
需求文件,cheeseprism将使用这些文件填充您的
索引。为virtualenv创建pip需求文件的最简单方法?::
$pip freeze-l>;myawesomerequirement.txt
>3。使用"find package"页面搜索pypi并将包加载到索引中。目前,这利用了get上的一些状态更改,但是
仍然是等幂的(很快就会修复)。
还有一些基本的只读json api::
$curl get http://mycheese/index/index.json
由每个
存档的md5散列键控。假设我们的索引只包含webob::
{u'1b6795baf23f6c1553186a0a8b1a2621':{u'added':1325609450.792506,
u'filename':u'webob-1.2b2.zip',
u'name':u'webob',
u'version':u'1.2b2'}
http api
——
文件可以通过一个不那么restful的接口添加到pypi的索引中,这个接口很快就会消失。如果pypi中存在"name"和"version",下面的
将从pypi下载该文件并将其注册到索引:
$curl get http://mycheese/package/{name}/{version}
future
==
/>***多索引支持**:一般的想法是,您可以发展
索引,而不是像需求文件那样,而是通过显式限制
在组中的成员资格,而不是需要
与外部索引对话的规范。一个存档可能存在于多个
索引中(但始终从同一位置服务以保留pip
缓存)。
索引为
,并克隆和扩展现有索引。
**less crap work**:通过find packages加载的版本和包的自动依赖关系加载。repo的一个文件监视程序,当添加和删除文件时,它会重建索引的适当部分。
**better readonly api**:versions.json为每个包提供了index.json格式的数据。
**betterrest**:创建``post/packages/{name}/{version}``从pypi中获取包。制作``get/packages/{name}/{version}`
提供有关包的数据,并指示包当前是否位于索引中。
**sphinx文档**:是的。
==
欢迎拉取请求!
如果你有问题或意见的话,大多数日子都会有问题或意见。
>2013-03-21 whit<;whit@surveymonkey.com>;
*清理日志
*清理日志
>*测试清理和修复
0.2a1
=
<2012-10-31 whit<;whit@surveymonkey.com>;:
*过滤来自pypi的非源分发下载
*修复了通过pypi生成add包的index.json错误d通过事务处理"数据文件"
*使"全部重新生成"重新生成数据文件(尽管效率很低)
>0.1a1
=
>初始alpha版本。
development log
----
<2012-01-09 whit<;whit@surveymonkey.com>;:
*递归下载of需求文件和依赖项
*搜索pypi并下载文件
*提高测试覆盖率
*启动时初始化索引
*索引的基本只读api
*更广泛的事件支持
*文档改进
2011-12-21 whit<;whit@surveymonkey.com>;:
*通过上载时的事件进行单个叶更新
*重构以使用pkginfo
2011-12-01 whit<;whit@surveymonkey.com>;:
*内务管理:为开发添加索引静态文件服务,
更多地使用path.py
*商场自述文件上的端口。
2011-11-07 whit<;whit@surveymonkey.com>;:
*获取应用程序基本服务
2011-11-07 whit<;whit@surveymonkey.com>;:
*设置初始包结构