********************* Ambiente de trabalho ********************* Preparação do ambiente ====================== A Simples Consultoria trabalha primariamente com Plone, portanto as descrições a seguir se referem às ferramentas, e configurações, mínimas para uma estação de trabalho produtiva. Ferramentas Básicas -------------------- Para o trabalho diário precisamos de um ambiente propício ao desenvolvimento de aplicações web. Seja você desenvolvedor ou designer, usando Windows, MacOS, BSD ou Linux as ferramentas abaixo **DEVEM** estar instaladas e configuradas: * Compilador C, C++ (ver descrição de qual a melhor solução para seu OS) * Mercurial * Subversion * Git * Editor de texto (ver descrição sobre recomendações para cada OS) * Navegadores web: Chrome, Firefox e específicos da plataforma (Internet Explorer, Safari, Konqueror) * No Firefox e no Chrome: Firebug Sistema operacional ------------------- Windows ******* * Garanta ter direitos de administrador sobre a máquina * Instale um editor de texto de sua preferência -- Ex: Notepad ++, Aptana * Instale ferramentas de desenvolvimento para Windows Ferramentas Básicas ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Compilador C, C++: Mingw * Python: Python 2.4 baixado do python.org Tornando a vida fácil ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Para facilitar a vida de quem trabalha com Windows, disponibilizamos um pacote com os componentes básicos a partir desta url: https://simplesnet.com.br/pacotes/catalogo/windowsbuildoutgoodies/releases/1.0/buildout_windows.zip MacOS ***** * Editor de textos: vim, emacs, TextMate, Aptana * XCode: Necessário para compilar extensões C do Zope e de alguns pacotes Python. (http://developer.apple.com/TOOLS/Xcode/) * Suporte GNU: Rudix, Darwin Ports Linux (Ubuntu / Debian) **************************** * Editor de textos: vim, emacs, Gedit, Aptana Instalação de pacotes ^^^^^^^^^^^^^^^^^^^^^^^^^ :: apt-get install build-essential subversion python python-dev python-setuptools libjpeg62-dev libzzip-dev zlib1g-dev lynx Python ------ Como regra geral é recomendada a instalação de interpretador Python independente do usado pelo sistema operacional. A prática usada pela comunidade Plone é a compilação de interpretadores a partir de um buildout disponível no repositório Collective. Este buildout permite que vários interpretadores sejam criados e configurados conforme a necessidade do desenvolvedor. O primeiro passo é baixar este buildout, na raiz da pasta do usuário, diretamente do svn.plone.org: :: cd ~/ svn co https://svn.plone.org/svn/collective/buildout/python python Para adequarmos o buildout as nossas necessidades editaremos o arquivo **buildout.cfg** existente na raiz da posta python e comentaremos as versões que não serão necessárias :: [buildout] extends = src/base.cfg src/readline.cfg src/libjpeg.cfg src/python24.cfg # src/python25.cfg src/python26.cfg src/links.cfg .. note:: Neste caso apenas a versão 2.5 não será utilizada. Usando o Python instalado no sistema -- última vez que o usaremos :-) -- executamos o buildout para compilar os interpretadores. :: python bootstrap.py ./bin/buildout Após um longo tempo -- ao menos no meu 8086 é um longo tempo -- você deve ter alguns scripts disponíveis na pasta *~/python/bin/* * buildout * virtualenv-2.4 * virtualenv-2.5 * virtualenv-2.6 Usaremos os scripts de virtualenv para a criação de ambientes Python apartados do intepretador do sistema. .. note:: O uso do virtualenv é extremamente recomendado para evitar problemas de conflitos de versão ou dependências entre pacotes Python usados por diferentes aplicações A criação de novos ambientes Python é simples: :: ~/python/bin/virtual-env-2.4 --no-site-packages py24 Cria um novo ambiente com Python 2.4 na pasta py24. Para usar Python 2.6, execute o comando: :: ~/python/bin/virtual-env-2.6 --no-site-packages py26 Que criará uma pasta py26 com o novo ambiente. O Jeito Simples: sc.dev.core ---------------------------------------- Finalidade ********** O pacote **sc.dev.core** é um agregador de outros pacotes Python utilizados para o desenvolvimento de soluções Plone pela Simples Consultoria. Componentes ************ * sc.paster.package * sc.paster.buildout * sc.paster.policy * sc.paster.theme * setuptools-git * zest.releaser * collective.dist * Sphinx * rst2pdf * i18ndude Preparando a instalação *********************** Usualmente o primeiro passo para a instalação do sc.dev.core é a criação de um virtualenv próprio. Um bom local seria uma pasta *simples/dev* também na raiz da pasta do usuário. :: mkdir -p ~/simples/ ~/python/bin/virtualenv-2.4 --no-site-packages dev .. note:: A opção --no-site-packages evita que usemos algum pacote existente no site-packages do python original do virtualenv O passo seguinte é ativar este virtualenv. :: source ~/simples/dev/bin/activate Instalando o pacote *********************** A instalação do **sc.dev.core** é feita com o *easy_install* do virtualenv que acabamos de ativar. :: easy_install -U sc.dev.core .. note:: A opção -U garante que mesmo que já tenhamos este pacote instalado procuraremos por uma nova versão e a instalaremos. O que ele instala ****************** sc.paster.package Implenenta modelo para criação de pacotes Python com 3 níveis (ex:sc.cliente.projeto). sc.paster.buildout Implementa modelo de buildout. sc.paster.policy Implementa modelo para criação de pacotes Python de políticas em portais Plone. sc.paster.theme Implementa modelo para criação de pacotes Python de temas para portais Plone. setuptools-git Pacote Python que facilita a integração entre setuptools e Git. collective.dist Suporte a múltiplos repositórios de pacotes para o setuptools. zest.releaser Scripts para automatização de releases de pacotes Python. Sphinx Ferramenta para a criação de documentação a partir de arquivos ReST. rst2pdf Geração de arquivos PDF a partir de arquivos ReST. i18ndude Ferramenta para automatização de tarefas relacionadas a internaciolização (i18n). Contas, contas e contas ======================== Além da sua conta da Simplesnet e da sua conta de e-mail, que são criadas quando da sua contratação, é necessário, para o dia a dia do seu trabalho, a criação de contas em alguns serviços externos. BitBucket Provedor de soluções Mercurial. Onde hospedamos nossos repositórios Plone.org Portal da comunidade Plone e local dos repositórios de código do produto. PyPi Repositório de pacotes Python. Local onde publicamos nossas contribuições à comunidade. BitBucket ---------- Nossos repositórios estão hospedados no BitBucket sob a conta simplesconsultoria e para acessá-los é necessária a criação de uma conta no serviço. Crie sua conta em https://bitbucket.org/account/signup/ e requisite a alguém de nossa equipe de infra a permissão para acesso aos repositórios. Não esqueça de informar qual o seu username. .. _conta_ploneorg: Plone.org ---------- Crie uma conta no site Plone.org em http://plone.org/@@register. Esta conta permite acesso ao site, criação de conteúdo em algumas áreas do site e, o mais importante, a possibilidade de criar tickets e reportar problemas para os mantenedores do Plone. Para ver os tickets abertos acesse https://dev.plone.org/plone/report. Este endereço requer usuário e senha ativos no Plone.org. Para criar um novo ticket a url é https://dev.plone.org/plone/newticket. Preste muita atenção na caixa que lista o componente ao qual o ticket se refere pois esta seleção é essencial ao rápido endereçamento de sua requisição. Aqui na Simples Consultoria nos sentimos na responsabilidade de não só apontar os problemas mas também resolvê-los. Para tanto precisamos de acesso aos respositórios de código do Plone, que estão divididos da seguinte maneira: Plone (https://svn.plone.org/svn/plone) Componentes principais do Plone. Archetypes (https://svn.plone.org/svn/archetypes) Componentes relacionados ao framework Archetypes. Collective (https://svn.plone.org/svn/collective) Componentes de terceiros. Local onde boa parte dos add-ons do Plone é mantido. O acesso ao primeiro repositório é restrito ao preenchimento de um documento, o `Contributors Agreement `_, e a um processo de aprovação. Os dois repositórios seguintes Archetypes e Collective são de uso frequente por nossa equipe, portanto você possuir acesso de commit a eles. O acesso é concedido após a criação de `um ticket `_ e a sua categorização como **commitaccess**. Informe neste ticket que você deseja acesso ao Collective e que você trabalha na Simples Consultoria e que ajudará na manutenção de produtos existentes neste repositório. .. _conta_pypi: PyPi -------- O PyPi (Python Package Index) é o repositório central de pacotes da linguagem Python. Apesar de ser um esforço relativamente recente ele é o local onde as comunidades de produtos desenvolvidos com Python contribuem seus códigos. A criação de uma conta no PyPi é relativamente simples. Acesse a url de cadastro em http://pypi.python.org/pypi?:action=register_form , preencha o formulário e confirme seu registro ao visitar o link enviado por email. Após a criação de sua conta, converse com nossa equipe de infra-estrutura para que seu usuário ganhe permissão de acesso (e administração) dos pacotes disponibilizados pela Simples Consultoria. .. note::No PyPi é possível utilizar seu OpenId como forma de autenticação, mas não temos nenhuma experiência do OpenId no processo automatizado de release de pacotes.