Como maneira de agilizar o trabalho de criação de novos pacotes Python a comunidade desenvolveu ferramentas de templates (skeletons). A mais famosa delas é o PasteScript.
A partir desta ferramenta a comunidade Zope/Plone criou o projeto ZopeSkel que contempla alguns modelos de criação de pacotes
Desenvolvimento Plone | |
---|---|
archetype | Projeto Plone para criação de conteúdos com Archetypes |
kss_plugin | Projeto para plugin KSS |
plone | Projeto para produtos Plone |
plone3_portlet | Portlet para Plone 3 |
plone_app | Projeto Plone com namespace duplo (dois pontos no nome) |
plone_pas | Projeto para plugin Plone PAS |
Desenvolvimento de Temas Plone | |
---|---|
plone2_theme | Tema para Plone 2.1 |
plone2.5_theme | Tema para Plone 2.5 |
plone3_theme | Tema para Plone 3 |
Buildout | |
---|---|
plone2.5_buildout | Buildout para instalações Plone 2.5 |
plone3_buildout | Buildout para instalação Plone 3 ou superior |
plone_hosting | Plone hosting: buildout com ZEO e Plone com versões abaixo de 3.2 |
portal_buildout | Buildout para projetos Plone |
recipe | Projeto de recipe para zc.buildout |
silva_buildout | Buildout para projetos usando Silva |
Desenvolvimento Python | |
---|---|
basic_namespace | Projeto Python com namespace |
nested_namespace | Projeto Python com namespace duplo (dois pontos no nome) |
Desenvolvimento Zope | |
---|---|
basic_zope | Um projeto Zope |
A utilização dos modelos, tanto os específicos da Simples Consultoria como os existentes via ZopeSkel, é feita através do comando paster. Este comando deve estar no path do seu sistema operacional após a ativação do virtualenv que contém o sc.dev.core.
O uso, para criação de um projeto/pacote a partir de um modelo existente, é feito com o subcomando create e a opção -t, que indica qual template será utilizado
paster create -t <nome-do-template> <caminho>
Ou seja, para criarmos um buildout para Plone 3 na pasta projetos/clienteA abaixo da pasta de usuário:
$ cd ~/
$ mkdir -p projetos/clienteA/
$ paster create -t plone3_buildout buildout
Ao executarmos este template, recebemos uma mensagem dizendo que o método preferencial de instalação do Plone a partir da versão 3.1 é utilizar o instalador disponível para cada plataforma. Esta mensagem pode ser ignorada.
Selected and implied templates:
ZopeSkel#plone3_buildout A buildout for Plone 3 installation
Variables:
egg: buildout
package: buildout
project: buildout
**************************************************************************
** *** NOTE: You probably don't want to use this template!
** Since Plone 3.1, the preferred way to get a buildout-based setup
** for Plone is to use the standard installer for your operating
** system (the Windows installer, the Mac installer, or the Unified
** Installer for Linux/Unix/BSD). These give you a best-practice,
** widely-used setup with an isolated Python and a well-documented
** buildout. This template is here for older versions of Plone and
** for experts who explicitly want a raw, non-installer-based
** installation.
** (This message is particularly aimed at people following out-of-
** date books/documentation that suggest this is the right way to get
** a Plone-based buildout. This is no longer the case.)
**************************************************************************
Logo em seguida temos uma pergunta sobre qual o modo do assistente será utilizado: easy, expert ou all.
Enquanto o primeiro modo assume diversos valores padrão, o modo all permite uma configuração muito mais detalhada.
Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']:
Nota
Como regra geral utilize o modo all ou configure valores padrão que sejam adequados para o nosso ambiente.
Em adição aos modelos existentes no ZopeSkel, a Simples Consultoria implementou novos modelos com base em nossa experiência com projetos Plone.
Seu uso é similar ao de qualquer outro modelo existente no ZopeSkel.
$ paste create -t <nome-do-template> caminho
A diferença está no produto gerado que será aderente às práticas e modelos da Simples Consultoria.
Foram criados pacotes especializados para cada novo template e estes pacotes são dependências do sc.dev.core, portanto ao instalar a última versão do sc.dev.core são instaladas as últimas versões destes templates.
Buildout | |
---|---|
portal_buildout | Buildout para projetos Plone |
Cria buildout para Plone 3.x e 4.x já incluindo configurações de blob storage e arquivos de configuração especializados.
Desenvolvimento Plone | |
---|---|
portal_package | Package usado em projetos Plone |
Este template é utilizado para a criação de pacotes Python com 3 níveis – sendo 2 de namespaces e 1 do pacote propriamente dito – para uso em projetos Plone.
Os pacotes gerados por este template já incluem um profile padrão – default –, um mecanismo para upgrades, utilizando Generic Setup, e configurações de dependências.
O padrão de nomes utilizado na Simples Consultoria para este tipo de pacote segue a linha sc.cliente.projeto, onde:
Nota
Saiba mais sobre o padrão de nomes da Simples Consultoria na seção de boas práticas
Desenvolvimento Plone | |
---|---|
portal_policy | Portal Policy para projetos Plone |
Template para a criação de pacotes com políticas para novos portais usando Plone.
Este template é utilizado em todos os projetos desenvolvidos pela Simples Consultoria para a configuração – e gestão de dependências – do projeto.
O padrão de nomenclatura de pacotes criados com este template é similar ao utilizado no portal_package apenas substituindo-se o nome do projeto pelo termo policy. ex: sc.cliente.policy.
Pacotes criados com este template possuem código para controle de dependências e upgrades.
Todas as dependências são listadas em quatro arquivos: setup.py, config.py, dependencies.zcml e to01.py.
A inclusão de uma dependência dentro do arquivo setup.py objetiva sua inclusão automática pelo mecanismo de distutils. As dependências declaradas neste arquivo são listadas na seção install_requires e devem seguir o padrão:
install_requires=[
# -*- Extra requirements: -*-
'sc.paster.package==0.5.3',
],
No exemplo acima a dependência a ser instalada é o sc.paster.package na versão 0.5.3. Caso seja necessário especificar um limite superior para a versão da dependência a ser utilizada deve-se substituir o comparador == por <=. No cenário de ser necessário um limite inferior – versão mínima – o comparador será >=.
Quando o pacote de política, criado por este template, for incluído em uma configuração de buildout, as dependências listadas no setup.py serão obtidas, automaticamente, quando da execução do buildout.
Por fim, é necessário adicionar as dependências no upgrade step inicial do produto de políticas, isto é, da versão 0 para a versão 1. Tal upgrade step é definido no arquivo configure.zcml do subpacote upgrades, onde você poderá declarar novos upgrade steps conforme novas versões do produto de políticas sejam lançadas. Para começar, basta informar quais produtos devem ser instalados durante a primeira instalação do produto de políticas em um site Plone.
Aviso
Devido à adoção da política de upgrade steps, a opção de reinstalação do produto por meio das interfaces do Zope e do Plone não reinstalará as dependências – a não ser que explicitamente definido em um novo handler.
Temas para Plone | |
---|---|
portal_theme portal_theme4 | Tema visual para projetos Plone 3 Tema visual para projetos Plone 4 |
Templates para a criação de temas para novos portais usando Plone.
Estes templates são utilizados na maioria dos projetos desenvolvidos pela Simples Consultoria para a alteração do layout e design do portal.
O padrão de nomenclatura de pacotes criados com estes templates é similar ao utilizado no portal_package e portal_policy, apenas substituindo-se o namespace sc pelo namespace beyondskins, que agrupa os temas criados pela Simples Consultoria
Ex: beyondskins.cliente.projeto.