One of the outcomes of the ZopeSkel BBQ sprint was a set of proposals regarding the future of the zopeskel project. Many of these proposals are sweeping enough in their scope that those of us in attendance at the sprint felt that the input of the community would be required before we moved forward enacting any of them. I'd like to take this opportunity to lay these proposals out in a public forum for discussion:
==================================== Splitting ZopeSkel into Egg Packages ==================================== :Author: j...@joelburton.com :Date: 5 Oct 2009 Background ========== ZopeSkel is currently a single egg, "ZopeSkel". It contains templates for: - scripts/utilities that are not template specific - basic nested Python packages, without any Zope/Plone bits - Basic Zope product/buildout templates - Plone product/buildout templates - Silva buildout template - Code for the "local commands" system - Local commands for Plone products Proposal ======== We propose to divide ZopeSkel into separate packages & eggs: ``zopeskel.base`` Local commands system, scripts/utilities ``zopeskel.zope`` *(will depend on zopeskel.base)* basic_zope template and Zope-only buildouts ``zopeskel.plone`` *(will depend on zopeskel.zope)* all plone templates/buildouts and local commands for Plone ``zopeskel.silva`` *(will depend on zopeskel.zope)* Silva buildout Backwards Compatibility ----------------------- Since there is a great deal of documentation that tells users to "easy_install ZopeSkel", we need to make sure there is still a package called this that provides the assumed components. Therefore, we will keep a ZopeSkel egg, but have this provide no code/packages-- it will only exist so that it has setuptools requires to pull in zopeskel.base, zopeskel.zope, zopeskel.plone, zopeskel.silva. Therefore, people following this documentation will get the "full" ZopeSkel. Rationale ========= Curently, ZopeSkel can be a bit of magnet for recipes that may not be widely needed by all members--there are non-Plone users of it that don't want to get all of the Plone recipes, for example. In the future, they would be able to :: easy_install zopeskel.zope to just get the Base/Zope parts. With additional adoption of ZopeSkel, we anticipate other communities (Repoze, etc) wishing to add templates, and would prefer to avoid an overly- long list of packages. This is especially important as, at least in the Plone world, ZopeSkel is increasingly used by integrators/non-developers, and a long list of packages unrelated to their needs is confusing. In addition, this will subtly reinforce to people that there *can be* 3rd party packages that add templates. Larger institutional users of Python/Zope/Plone/Silva may find it beneficial to write their own, customized templates (the author of this document already does, for example); however, that this is possible is slightly obscured by the fact that we ship only one monolithic system with all the recipes in it. Tasks Needed ============ 1) Change the imports and entry points inside of ZopeSkel to match these new package names; for example, changing "plone.py" to import the BasicZope class as "from zopeskel.zope.basic_zope import BasicZope". 2) Adding imports to zopeskel/__init__.py to import everything into this namespace that was previously there. This will ensure that 3rd party templates that made assumptions like "from zopeskel import basic_zope" will still work. 3) Break packages into separate eggs and check into new repository. 4) Empty ZopeSkel package and add setuptools requires so that this egg now installs all the new eggs. New Repository -------------- Given that ZopeSkel has a wider audience than just Plone, we don't feel it make sense to move it into the plone repository. However, it also doesn't seem right to leave it in the collective--here, it has become a magnet for individual, not-well-organized changes that run counter to the requirement that it be a stable, best-practice product. We recommend creating a new repository, "zopeskel", which would contain the zopeskel packages. This would allow us to grant svn access to people without sharing core plone access, and would discourage collective-style drive-by improvements. With thanks for your attention, and for any comments and discussion, c ******************************** Cris Ewing Webmaster, Lead Developer Department of Radiology Web Services University of Washington School of Medicine Work Phone: (206) 616-1288 Cell Phone: (206) 708-9083 Pager: (206) 559-2306 E-mail: cew...@u.washington.edu Web: http://www.rad.washington.edu *******************************
_______________________________________________ ZopeSkel mailing list ZopeSkel@lists.plone.org http://lists.plone.org/mailman/listinfo/zopeskel