我有一个插件,我想更新它以与 Plone4.3 兼容,但当 Plone4.2 用户进行升级时,它应该保持功能。
自述文件是这样说的:
对于 Plone 3,您需要此软件包的 1.7.x 版本
Plone < 4.3 使用版本 < 1.9
如何在 setup.py 中配置这种特定于版本的依赖项?
实际上是 c.js.jqueryui 应该将 Plone 版本固定在他们的标签版本中,恕我直言。所以你应该联系作者。因此,您也应该将“Products.CMFPlone”添加为依赖项,但我不知道这里的最佳做法是什么。
无论如何,要回答您的问题,无论我们是否有 Plone-3,这里都有一个区分的可能性:
在您setup.py
的顶部添加
import glob
# BBB: Append Plone-3-specific version-pinnings
# to `install_requires`, in case third-party-eggs
# do not specify their requirement-versions.
# Assumes, Plone-eggs are in the same directory
# as this egg, which is given, if fetched of pypi.
# Otherwise assumes, you know how to tweak
# buildout and pin versions yourself.
# Collect P3-eggs in eggs-directory:
plone3_eggs = glob.glob('../Products.CMFPlone-3*')
# Found something?
if len(plone3_eggs) > 0:
# Expects `install_requires=[ ... ] + plone3_requires,`
# in setup-method below, to take effect:
plone3_requires = [
'collective.js.jqueryui<=1.7',
# Add more P3-pins here.
]
在install_requires
设置方法中,得到这个:
install_requires= [
'setuptools',
'collective.js.jqueryui',
] + plone3_requires,