Metadata-Version: 2.1
Name: collective.recipe.plonesite
Version: 1.10.0
Summary: A buildout recipe to create and update a plone site
Home-page: http://sixfeetup.com
Author: Clayton Parker
Author-email: info@sixfeetup.com
License: ZPL
Keywords: plone buildout recipe
Platform: UNKNOWN
Classifier: Framework :: Buildout
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: License :: OSI Approved :: Zope Public License
Requires-Dist: setuptools
Requires-Dist: zc.buildout
Requires-Dist: six
Provides-Extra: tests
Requires-Dist: zope.testing ; extra == 'tests'
Requires-Dist: zc.buildout ; extra == 'tests'
Provides-Extra: upgrade
Requires-Dist: collective.upgrade (>=1.0rc1) ; extra == 'upgrade'

Introduction
************

This recipe enables you to create and update a Plone site as part of a
buildout run. This recipe only aims to run profiles and Quickinstall
products. It is assumed that the install methods, setuphandlers, upgrade
steps, and other recipes will handle the rest of the work.

.. contents::

- Code repository: https://github.com/collective/collective.recipe.plonesite
- Report bugs at https://github.com/collective/collective.recipe.plonesite/issues

Detailed Documentation
**********************

Options
=======

General Settings
----------------

site-id
    The id of the Plone site that the script will create. This will
    also be used to update the site once created. Default: Plone

admin-user
    The id of an admin user that will be used as the ``Manager``.
    Default: ``admin``

admin-password
    The password for the admin user. This is only needed when the ``use_vhm``
    option is set and the root object of the site is not accessible by
    ``Anonymous``.

instance
    The name of the instance that will run the script.
    Default: instance

zeoserver
    The name of the ``zeoserver`` part that should be used. This is
    only required if you are using a zope/zeo setup. Default: not set

container-path
    The path (relative from Zope root) to the container that should hold the
    Plone site.
    Default: ``/``

default-language
    The default language of the Plone site.
    Default: ``en``

use-sudo
    Run the task under a different user, as specified in the
    appropriate instance's buildout section. You need to configure
    sudo appropriately.

add-mountpoint
    Adds the ZODB Mount Point at the path specified by ``container-path``, if
    it doesn't exist. Very handy when used in conjunction with
    collective.recipe.filestorage.

Logging
-------

This recipe honors the ``log-level`` buildout-level config value, and the
``verbosity`` setting, overriding the running Zope instance's ``eventlog``
level. This allows you to get more logging output when running the part,
but have less verbosity when the site is actually running.

Install Products
----------------

products-initial
    A list of products to quick install just after initial site
    creation. See above for information about the product name
    format [2]_.

profiles-initial
    A list of GenericSetup profiles to run just after initial site
    creation. See above for information on the expected profile id
    format [1]_.

products
    A list of products to quick install each time buildout is run. See
    above for information about the product name format [2]_.

profiles
    A list of GenericSetup profiles to run each time buildout is run.
    See above for information on the expected profile id format [1]_.

.. [1] Profiles have the following format: ``<package_name>:<profile>``
       (e.g. ``my.package:default``). The profile can also be prepended
       with the ``profile-`` if you so choose
       (e.g. ``profile-my.package:default``).

.. [2] The product name is typically **not** the package name such as
       ``Products.MyProduct``, but just the product name ``MyProduct``.
       Quickest way to find out the name that is expected is to
       'inspect' the Quickinstaller page and see what value it is
       passing in.

Run Scripts
-----------

pre-extras
    An absolute path to a file with python code that will be evaluated
    before running Quickinstaller and GenericSetup profiles. Multiple
    files can be given. Two variables will be available to you. The app
    variable is the Zope root. The portal variable is the plone site as
    defined by the site-id option. NOTE: file path cannot contain
    spaces. Default: not set

post-extras
    An absolute path to a file with python code that will be evaluated
    after running Quickinstaller and GenericSetup profiles. Multiple
    files can be given. Two variables will be available to you. The app
    variable is the Zope root. The portal variable is the plone site as
    defined by the site-id option. NOTE: file path cannot contain
    spaces. Default: not set

before-install
    A system command to execute before installing Plone. You could use
    this to start a Supervisor daemon to launch ZEO, instead of
    launching ZEO directly. You can use this option in place of the
    zeoserver option. Default: not set

after-install
    A system command to execute after installing Plone.
    Default: not set

Upgrading
---------

upgrade-portal
    Upgrade the site to the current version on the filesystem by
    running all upgrade steps for the site's base GenericSetup
    profile.  Requires `collective.upgrade`_ be installed.  Default: false

upgrade-all-profiles
    Upgrade all GenericSetup profiles installed in the site to their current
    versions on the filesystem by running all their upgrade steps.  Requires
    `collective.upgrade`_ be installed. Default: false

upgrade-profiles
    A list of GenericSetup profiles to run upgrade steps for each time buildout
    is run. Upgrades are run after ``profiles-initial`` and before
    ``profiles``. See above for information on the expected profile id format
    [1]_.  Requires `collective.upgrade`_ be installed.

site-replace
    Replace any existing plone site named ``site-id``. Default: false

enabled
    Option to start up the instance/zeoserver. Default: true. This can
    be a useful option from the command line if you do not want to
    start up Zope, but still want to run the complete buildout.

    $ bin/buildout -Nv plonesite:enabled=false

VHM (VirtualHostMonster)
------------------------

host
    A hostname used in VirtualHostMonster traversal.  This will set the
    root URL for the `portal` variable in any `pre-extras` or `post-extras`
    scripts. Default: not set

protocol
    Either 'http' or 'https' for a VirtualHostMonster path. Requires the
    host option be set. Default: http

port
    Port for the Zope site used in a VirtualHostMonster path. Requires the
    host option be set. Default: 80

use-vhm
    Signals whether Plone site should use VirtualHostMonster or ordinary
    Zope traversal when generating a request. Useful for setting up instances
    that will not be proxied behind Apache or Nginx, such as local development.
    Default: True

Example
=======

Here is an example buildout.cfg with the plonesite recipe::

    [buildout]
    parts = 
        zope2
        instance
        zeoserver
        plonesite

    [zope2]
    recipe = plone.recipe.zope2install
    ...

    [instance]
    recipe = plone.recipe.zope2instance
    ...
    eggs = 
        ...
        my.package
        my.other.package

    zcml = 
        ...
        my.package
        my.other.package

    [zeoserver]
    recipe = plone.recipe.zope2zeoserver
    ...

    [plonesite]
    recipe = collective.recipe.plonesite
    site-id = test
    instance = instance
    zeoserver = zeoserver
    # A profile with proper upgrade steps
    profiles-initial = addon.package:default
    profiles = 
    # A profile not using upgrade steps, such as a simple policy package
        my.package:default
    upgrade-portal = True
    upgrade-all-profiles = True
    post-extras =
        ${buildout:directory}/my_script.py
    pre-extras =
        ${buildout:directory}/my_other_script.py
    host = www.mysite.com
    protocol = https
    port = 443


Example with Plone 4 content enabled
====================================

Here is another example buildout.cfg with the plone4site recipe::

    [buildout]
    parts = 
        ...
        plone4site

    [plone4site]
    recipe = collective.recipe.plonesite
    site-id = test
    instance = instance
    zeoserver = zeoserver
    # Create default plone content like News, Events...
    profiles-initial = 
        Products.CMFPlone:plone-content 
        my.package:initial
    profiles = 
        my.package:default
        my.other.package:default


.. _collective.upgrade: https://pypi.python.org/pypi/collective.upgrade

Example with Multiple Mount Points
==================================

This uses collective.recipe.filestorage to create the mount point configuration::

    [buildout]
    parts =
        filestorage
        instance
        zeoserver
        plonesite1
        plonesite2

    [filestorage]
    recipe = collective.recipe.filestorage
    parts = 
        mp1
        mp2

    [instance]
    recipe = plone.recipe.zope2instance
    ...
    eggs =
        ...
        my.package
        my.other.package

    zcml =
        ...
        my.package
        my.other.package

    [zeoserver]
    recipe = plone.recipe.zope2zeoserver
    ...

    [plonesite1]
    recipe = collective.recipe.plonesite
    add-mountpoint = true
    container-path = /mp1
    profiles-initial = Products.CMFPlone:plone-content
    site-id = portal

    [plonesite2]
    recipe = collective.recipe.plonesite
    add-mountpoint = true
    container-path = /mp2
    profiles-initial = Products.CMFPlone:plone-content
    site-id = portal


Contributors
************

- Clayton Parker [claytron], Author
- Andrew Burkhalter [andrewb]
- JeanMichel FRANCOIS [toutpt]
- Andreas Jung [ajung]
- Jeff Kowalczyk [jeffk]
- Pelle Krogholt [pelle]
- Michael Davis [davismr]
- Nolan Brubaker [nrb]
- David Blewett [davidblewett]
- Toni Mueller [muellert]
- Fabio Rauber [fabiorauber]
- Bryan Wilson [bryanlandia]
- Chrissy Wainwright [cdw9]
- Victor Fernandez de Alba [sneridagh]

Change history
**************

1.10.0 (2019-03-20)
===================

- Python3 compatibility
  [sneridagh]

1.9.5 (2016-06-22)
==================

-  for GenericSetup 1.8.0+ set runAllImportStepsFromProfile to reapply
   the dependency profiles. This will keep our buildouts running as
   previously expected, with the profiles listed in the policy's metadata.xml
   being run every time
   [cdw9]

1.9.4 (2016-01-20)
==================

- Nothing new, but pypi was having issues with 1.9.3

1.9.3 (2016-01-15)
==================

- Plone 5 compatibility
  [santonelli]

1.9.2 (2015-06-22)
==================

- Only use valid Python logging levels. Round up to the closest level
  if the passed in value does not exist.
  [claytron]

1.9.1 (2014-12-01)
==================

- Add ability to ``use_vhm`` when the homepage is not accessible by
  ``Anonymous`` by setting the ``admin-password`` option.
  [claytron]

- PEP8 and pyflakes
  [claytron]

- Restore Python 2.4 compatibility
  [bryanlandia]

- Plone 5 compat, re-use add site form default profile logic.
  [@rpatterson]

1.9.0 (2014-08-29)
==================

- Add the ``add-mountpoint`` option to automatically create the mount-point if
  it does not exist.
  [fabiorauber]

- Add options for running profile upgrade steps if ``collective.upgrade`` is
  installed.
  [@rpatterson]

- Add an option to allow the use of sudo, if you have specified different UIDs for
  Zope and the ZEO server.
  [muellert]

- Clean up the docs and separate the options by headers.
  [claytron]

1.8.2 (2013-04-08)
==================

- Handle ``setSite`` import for Plone 4.3
  [claytron]

1.8.1 (2012-11-16)
==================

- Add changelog entry for 1.8.90
  [nrb]

1.8.0 (2012-11-16)
==================

- Add the ``use-vhm`` option to select traversal mode.
  Setting ``use-vhm`` to ``False`` will cause the traversal to use
  regular Zope traversal when running the recipe.
  [nrb]

1.7.3 (2012-11-02)
==================

- Use ``_delObject(site_id, suppress_events=True)`` to delete the site.
  This ignores all events and just removes the site completely when
  using the ``site-replace`` option.
  [claytron]

1.7.2 (2012-08-06)
==================

- Fixed typo on logger when removing existing Plone site.
  [hvelarde]

1.7.1 (2012-07-13)
==================

- Add support for changing the logging level used when the part runs,
  honoring the buildout log-level and verbosity. [davidblewett]

- Update version check to correctly differentiate between Plone 4.1.x
  and Plone 4.0 and below. [davidblewett]

1.6.3 (2012-07-03)
==================

- Update VirtualHostMonster support to correct loss of elevated security
  context. [davidblewett]

1.6.1 (2012-06-27)
==================

- Fix reST formatting. [nrb]

- Correct some doc oversights. [nrb]

1.6 (2012-06-26)
================

- Add VirtualHostMonster path support for the 'portal' variable
  available in ``pre-extras`` and ``post-extras`` scripts. [nrb]

- ``host`` recipe option specifices a hostname to be used in
  a VirtualHostMonster path for extra recipe scripts. [nrb]

- ``port`` recipe option specifies a port to be used in a
  VirtualHostMonster path for extra recipe scripts. [nrb]

- ``protocol`` recipe option specifies a protocol to be used in
  a VirtualHostMonster path from extra recipe scripts. [nrb]

- Fixed typo in documentation.
  [hvelarde]

- ``container-path`` recipe option specifies the path to the
  container where the Plone site will be added.
  [gotcha]

- ``default-language`` recipe option specifies the default language
  of the Plone site.
  [sgeulette]

1.5 (2011-09-22)
================

- Support for ``zope.globalrequest``.
  [gotcha]

- Support Plone 4.1
  [gotcha]

1.4.3 (2011-07-07)
==================

- Minor doc updates.
  [claytron]

1.4.2 (2011-07-07)
==================

- Released to plone.org
  [claytron]

- Doc updates.
  [claytron]

1.4.1 (2011-02-15)
==================

- Minor doc updates
  [claytron]

1.4 (2011-02-15)
================

- PEP8 cleanup
  [claytron]

- Handle new zeoserver recipe on windows which changes the name of the
  executable.
  [claytron]

- Use the ``plone`` variable not ``portal`` otherwise ``plonesite.py`` raises
  ``NameError: global name 'portal' is not defined`` on a new install.
  [pelle]

- Enable GS profiles to work in plone 2.5
  [davismr]

- Use ``setSite`` in the initial creation as well.
  [claytron]

1.3 (2010-02-11)
================

- Use ``setSite`` in the ``plonesite`.py` script so that the component
  architecture gets initialized properly. This will allow the
  installation of a product like ``plone.app.dexterity``
  [clayton]

1.2 (2010-02-10)
================

- Update docs with info about how to add a ``Product``
  [claytron]

- Adjusted the support for Plone4 since the ``addPloneSite()`` has
  changed slightly.
  [pelle]

1.1 (2009-11-10)
================

- Make sure to commit the transaction after adding the plone site to
  avoid some strange behavior.
  [claytron]

- Add support for Plone4
  [toutpt]

1.0 (2009-08-24)
================

- Added a ``before-install`` and ``after-install`` option to the recipe. this
  allows you to use something like supervisor to launch the processes.
  Thanks to Shane Hathaway for the patch.
  [claytron]

0.9 (2009-08-10)
================

- Fixed the ``site-id`` option so that it defaults to ``Plone`` properly.
  Thanks to aclark for the bug report.
  [claytron]

0.8 (2009-06-24)
================

- Subversion 1.6 and setuptools are not friends yet. Fixed upload.
  [claytron]

0.7 (2009-06-23)
================

- Clarification to docs.  Cleaning up copy/paste error to post-extras
  [andrewb]

- Fixed the ``instance`` option so that it defaults to ``instance`` properly
  [claytron]

0.6 (2008-12-16)
================

- Make ``admin-user`` configuration option truly optional per the documentation.
  Fallback to ``admin`` which would be the common default per ZopeSkel's
  plone3_buildout template
  [andrewb]

- Added new options ``pre-extras`` and ``post-extras``.  The two options are files that
  can be run before and after the quickinstaller and profiles have been run.
  [claytron]

- Add condition so that the script can be used on older versions of plone
  [claytron]

0.5 (2008-11-11)
================

- Fixed a bug where already installed Products would not be re-installed
  [claytron]

- Added example buildout config and updated the READMEs
  [claytron]

- Re-factored the ``plonesite.py`` script
  [claytron]

- A dash of PEP 8
  [claytron]

0.4 (2008-11-11)
================

- Added a ``enabled`` option so that you can switch the part
  off from the command line. (``buildout:parts-=plonesite`` doesn't
  work yet)
  [claytron]

- Change the script so that profiles prefixed with ``profile-`` can
  also be given.
  [claytron]

- Added some docs to the recipe
  [claytron]

0.3 (2008-10-30)
================

- Added ``site-replace`` option to the readme
  [claytron]

- The ``site-replace`` option is no longer required
  [claytron]

0.2 (2008-10-30)
================

- new Plone sites will be created with a datetime suffix
  which is helpful if you need to re-run new instances
  over and over again e.g. for migration purposes. If you
  need a fixed site id then explictely set the id using
  the ``site-id`` option.
  [ajung]

- Fixed error with uninitialized variable
  [jeffk]

- Add buildout recipe option site-replace, defaults to
  off. Use with ``site-id``.

  New recipe option ``site-replace = on`` will remove any
  existing object in app named ``site-id``. A new plone site
  will be created to replace it.

  Default option setting ``site-replace = off`` will not remove
  existing objects in app named site-id.
  [jeffk]

0.1 (2008-10-11)
================

- Created recipe with ZopeSkel
  [claytron]

Download
********


