Browse Source

Fix #451 atualizar readme (#455)

* Alteração em processo do arquivo README.rst

* Refat. Proc de instalação, Testes, Issues

  - Falta Intruções de tradução
  - Falta Melhores práticas

* inclusão do link de atualização de arq estáticos

* Termina a traducao do README

* Faz ajustes no README
pull/459/head
eduardocalil 9 years ago
committed by Edward
parent
commit
c12f7dff9e
  1. 284
      README.rst

284
README.rst

@ -3,163 +3,277 @@
:alt: 'Stories in Ready' :alt: 'Stories in Ready'
*********************************************** ***********************************************
SAPL - Legislative Process Support System SAPL - Sistema de Apoio ao Processo Legislativo
*********************************************** ***********************************************
This page brings together useful information on the current development of Esta página reúne informações úteis sobre o desenvolvimento atual do SAPL.
**SAPL - Sistema de Apoio ao Processo Legislativo** (Legislative Process Support System).
That means all information presented here applies only to **version 3.1** and greater. Isso significa que toda a informação aqui apresentada aplica-se apenas para a versão 3.1 e superior.
For more information about the the project as a whole and the current working version of the system (2.5)
please visit the `project page at Interlegis wiki <https://colab.interlegis.leg.br/wiki/ProjetoSapl>`_.
Para obter mais informações sobre o projeto como um todo e a versão de trabalho
atual do sistema (2.5), visite a página do `projeto na Interlegis wiki <https://colab.interlegis.leg.br/wiki/ProjetoSapl>`_.
Development Environment Installation
====================================
* Install the following system dependencies (command bellow for Ubuntu):: Instalação do Ambiente de Desenvolvimento
=========================================
* Procedimento testado nos seguintes SO's:
* `Ubuntu 16.04 64bits <https://github.com/interlegis/sapl/blob/master/README.rst>`_;
* edite e incremente outros, ou ainda, crie outros readme's dentro do projeto para outros SO's e adicione o link aqui.
Instalar as seguintes dependências do sistema::
----------------------------------------------------------------------------------------
* ::
sudo apt-get install git nginx python3-dev libpq-dev graphviz-dev graphviz \ sudo apt-get install git nginx python3-dev libpq-dev graphviz-dev graphviz \
pkg-config postgresql postgresql-contrib pgadmin3 python-psycopg2 nodejs npm \ pkg-config postgresql postgresql-contrib pgadmin3 python-psycopg2 \
software-properties-common build-essential libxml2-dev libjpeg-dev \
libssl-dev libffi-dev libxslt1-dev python3-setuptools curl
sudo easy_install3 pip lxml
sudo ln -s /usr/bin/nodejs /usr/bin/node sudo -i
curl -sL https://deb.nodesource.com/setup_5.x | bash -
exit
sudo apt-get install nodejs
sudo npm install npm -g
sudo npm install -g bower sudo npm install -g bower
* Setup git, following the instructions in https://help.github.com/articles/set-up-git. Instalar o virtualenv usando python 3 para o projeto.
-----------------------------------------------------
* Para usar `virtualenvwrapper <https://virtualenvwrapper.readthedocs.org/en/latest/install.html#basic-installation>`_, instale com::
sudo pip install virtualenvwrapper
mkdir ~/Envs
* Edite o arquivo ``.bashrc`` e adicione ao seu final as configurações abaixo para o virtualenvwrapper::
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Envs
source /usr/local/bin/virtualenvwrapper.sh
* Saia do terminal e entre novamente para que as configurações do virtualenvwrapper sejam carregadas.
* Fork and clone this repository, following the instructions in https://help.github.com/articles/fork-a-repo. Clonar o projeto do github, ou fazer um fork e depois clonar
------------------------------------------------------------
* If you don't have pip installed then execute the following instructions: * Para apenas clonar do repositório do Interlegis::
sudo apt-get install python-pip python-dev build-essential cd ~/Envs
sudo pip install --upgrade pip git clone git://github.com/interlegis/sapl
sudo pip install --upgrade virtualenv
* Create a virtualenv using python 3 for the project and activate it. * Para fazer um fork e depois clonar, siga as instruções em https://help.github.com/articles/fork-a-repo que basicamente são:
If you use `virtualenvwrapper <https://virtualenvwrapper.readthedocs.org/en/latest/install.html#basic-installation>`_::
mkvirtualenv -p /usr/bin/python3 sapl * Criar uma conta no github - é gratuíto.
* Acessar https://github.com/interlegis/sapl e clicar em **Fork**.
* Install python dependencies (run on the project root):: Será criado um domínio pelo qual será possível **clonar, corrigir, customizar, melhorar, contribuir, etc**::
cd ~/Envs
git clone git://github.com/[SEU NOME]/sapl
* As configurações e instruções de uso para o git estão espalhadas pela internet e possui muito coisa bacana. As tarefas básicas de git e suas interações com github são tranquilas de se aprender.
Criar o ambiente virtual de desenvolvimento para o SAPL
-------------------------------------------------------
* ::
mkvirtualenv sapl -a $HOME/Envs/sapl -p /usr/bin/python3
Instalação e configuração das dependências do projeto
-----------------------------------------------------
* **Acesse o terminal e entre no virtualenv**::
workon sapl
* **Instalar dependências ``python``**::
pip install -r requirements/dev-requirements.txt pip install -r requirements/dev-requirements.txt
* Install bower dependencies (run on the project root):: * **Configurar Postgresql**:
* Acessar Postrgresql para criar o banco ``sapl`` com a role ``sapl``::
sudo su - postgres
CREATE ROLE sapl LOGIN
ENCRYPTED PASSWORD 'sapl'
NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION;
ALTER ROLE sapl VALID UNTIL 'infinity';
CREATE DATABASE sapl
WITH OWNER = sapl
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'pt_BR.UTF-8'
LC_CTYPE = 'pt_BR.UTF-8'
CONNECTION LIMIT = -1;
\q
* Se você possui uma cópia da base de dados do SAPL, essa é a hora para restaurá-la.
* Obs: no ambiente de desenvolvimento, a role deve ter permissão para criar outro banco. Isso é usado pelos testes automatizados.
* (caso você já possua uma instalação do postrgresql anterior ao processo de instalação do ambiente de desenvolvimento do SAPL em sua máquina e sábia como fazer, esteja livre para proceder como desejar, porém, ao configurar o arquivo ``.env`` no próximo passo, as mesmas definições deverão ser usadas)
* **Configurar arquivo ``.env``**:
* Criação da `SECRET_KEY <https://docs.djangoproject.com/es/1.9/ref/settings/#std:setting-SECRET_KEY>`_:
É necessário criar um projeto fake para extrair uma chave SECRET_KEY::
mkdir ~/Envs/temp
cd ~/Envs/temp
django-admin startproject sapl_temp
grep SECRET_KEY sapl_temp/sapl_temp/settings.py
Copie a linha que aparecerá, volte para a pasta do projeto SAPL e apague sua pasta temporária::
cd ~/Envs/sapl
rm -R ~/Envs/temp
* Criar o arquivo ``.env`` dentro da pasta ~/Envs/sapl/sapl/.env::
DATABASE_URL = postgresql://USER:PASSWORD@HOST:PORT/NAME
SECRET_KEY = Gere alguma chave e coloque aqui
DEBUG = [True/False]
EMAIL_USE_TLS = [True/False]
EMAIL_PORT = [Insira este parâmetro]
EMAIL_HOST = [Insira este parâmetro]
EMAIL_HOST_USER = [Insira este parâmetro]
EMAIL_HOST_PASSWORD = [Insira este parâmetro]
* Uma configuração mínima para atender os procedimentos acima seria::
DATABASE_URL = postgresql://sapl:sapl@localhost:5432/sapl
SECRET_KEY = 'Substitua esta linha pela copiada acima'
DEBUG = True
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST =
EMAIL_HOST_USER =
EMAIL_HOST_PASSWORD =
* Instalar as dependências do ``bower``::
./manage.py bower install ./manage.py bower install
* Install `PostgreSQL <https://help.ubuntu.com/community/PostgreSQL>`_ if you haven't already. * Atualizar e/ou criar a base de dados para refletir o modelo da versão clonada::
./manage.py migrate
* Atualizar arquivos estáticos::
* Create a ``sapl`` role with: ./manage.py collectstatic --noinput
- Password ``sapl`` * Subir o servidor do django::
- The privilege ``can create databases``
- A big expiration date (or infinite, using eg ``ALTER ROLE SAPL VALID UNTIL 'infinity';``)
* Create a database ``sapl`` with owner ``sapl``. ./manage.py runserver
* Either run ``./manage.py migrate`` (for an empty database) or restore a database dump. * Acesse o SAPL em::
* In ``sapl/sapl`` directory create one file called ``.env``. Write the following attributes in it: http://localhost:8000/
- DATABASE_URL = postgresql://USER:PASSWORD@HOST:PORT/NAME Instruções para Tradução
- SECRET_KEY = Generate some key and paste here ========================
- DEBUG = [True/False]
- EMAIL_USE_TLS = [True/False]
- EMAIL_PORT = [Set this parameter]
- EMAIL_HOST = [Set this parameter]
- EMAIL_HOST_USER = [Set this parameter]
- EMAIL_HOST_PASSWORD = [Set this parameter]
`Generate your secret key here <https://docs.djangoproject.com/es/1.9/ref/settings/#std:setting-SECRET_KEY>`_ Nós utilizamos o `Transifex <https://www.transifex.com>`_ para gerenciar as traduções do projeto.
Se você deseja contribuir, por favor crie uma conta no site e peça para se juntar a nós em `Transifex SAPL Page <https://www.transifex.com/projects/p/sapl>`_.
Assim que for aceito, você já pode começar a traduzir.
Instructions for Translators Para integrar as últimas traduções ao projeto atual, siga estes passos:
============================
We use `Transifex <https://www.transifex.com>`_ to manage the project's translations. * Siga as instruções em `Development Environment Installation`_.
If you want to contribute, please setup an account there and request to join us at
the `Transifex SAPL Page <https://www.transifex.com/projects/p/sapl>`_.
Once your join request is accepted, you can start to translate.
To integrate the last translations on a working instance follow these steps: * Instale `Transifex Client <http://docs.transifex.com/client/config/>`_.
* Follow the instructions at `Development Environment Installation`_. Aviso:
* Install `Transifex Client <http://docs.transifex.com/client/config/>`_. O Transifex Client armazena senhas em 'plain text' no arquivo ``~/.transifexrc``.
.. warning:: Nós preferimos logar no site do Transifex por meio de redes sociais (GitHub, Google Plus, Linkedin) e modificar, frequentemente, a senha utilizada pelo client.
The Transifex Client stores passwords in plain text on the file ``~/.transifexrc``.
We personally prefer to log into Transifex website with social network credentials and change the password used for the client frequently. * `Pull translations <http://docs.transifex.com/client/pull/>`_ ou `push translations <http://docs.transifex.com/client/push/>`_ usando o client. Faça o Pull somente com o repositório vazio, isto é, faça o commit de suas mudanças antes de fazer o Pull de novas traduções.
* `Pull translations <http://docs.transifex.com/client/pull/>`_ or `push translations <http://docs.transifex.com/client/push/>`_ using the client. Pull only on a clean repo, i.e. commit your changes before pulling new translations. * Execute o programa com ``.manage.py runserver`` e cheque o sistema para ver se as traduções tiveram efeito.
* Run the program with ``.manage.py runserver`` and check the system to see the translations into effect. Nota:
.. note:: O idioma do browser é utilizado para escolher as traduções que devem mostradas.
The browser language preference is used to choose the translations to display.
General implementation guidelines
=================================
Best practices Orientações gerais de implementação
===================================
Boas Práticas
-------------- --------------
* Use English for all the code, commit messages and project docs. * Utilize a língua portuguesa em todo o código, nas mensagens de commit e na documentação do projeto.
* Commit messages following the standard 50/72 columns. Start every commit message with a verb in infinitive. For more info on this please check: * Mensagens de commit seguem o padrão de 50/72 colunas. Comece toda mensagem de commit com o verbo no infinitivo. Para mais informações, clique nos links abaixo:
- Http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html - Http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
- Http://stackoverflow.com/questions/2290016/git-commit-messages-50-72-formatting - Http://stackoverflow.com/questions/2290016/git-commit-messages-50-72-formatting
* Keep all code in standard PEP8 (without exceptions). * Mantenha todo o código de acordo com o padrão da PEP8 (sem exceções).
* Antes de todo ``git push``:
- Execute ``git pull --rebase`` (quase sempre).
- Em casos excepcionais, faça somente ``git pull`` para criar um merge.
* Before every ``git push``: * Antes de ``git commit``, sempre:
- Run ``git pull --rebase`` (almost always). - Execute ``./manage.py check``
- In exceptional cases simply use ``git pull`` to produce a merge. - Execute todos os testes com ``py.test`` na pasta raiz do projeto
* Before ``git commit``, always: Atenção:
- Run ``./manage.py check``
- Run all tests with ``py.test`` at the root of the project tree
.. attention:: O usuário do banco de dados ``sapl`` deve ter a permissão ``create database`` no postgres para que os testes tenham sucesso
The database user ``sapl`` needs to have the permission ``create database`` in postgres for the tests to complete successfully
* If you're not part of the core team, fork the repo and submit pull requests. * Se você não faz parte da equipe principal, faça o fork deste repositório e envie pull requests.
All are welcome to contribute. Please make a separate pull request for each bugfix/new feature. Todos são bem-vindos para contribuir. Por favor, faça uma pull request separada para cada correção ou criação de novas funcionalidades.
* New features are subject to approval, since they may impact a lot of people. * Novas funcionalidades estão sujeitas a aprovação, uma vez que elas podem ter impacto em várias pessoas.
We suggest you open an issue to discuss new features. That can be made in Portuguese, as well as in English. Nós sugerimos que você abra uma nova issue para discutir novas funcionalidades. Elas podem ser escritas tanto em Português, quanto em Inglês.
Tests Testes
----- ------
* Write tests for all the functionality you implement. * Escrever testes para todas as funcionalidades que você implementar.
* Keep the test coverage near 100%. * Manter a cobertura de testes próximo a 100%.
* To run all tests activate your virtualenv and issue these commands * Para executar todos os testes você deve entrar em seu virtualenv e executar este comando **na raiz do seu projeto**::
**at the root of the repository**::
py.test py.test
* To run the tests with coverage issue the command:: * Para executar os teste de cobertura use::
py.test --cov . --cov-report term --cov-report html && firefox htmlcov/index.html py.test --cov . --cov-report term --cov-report html && firefox htmlcov/index.html
* The first time you run the tests after a migration (``./manage.py migrate``) use the db recreation option. * Na primeira vez que for executar os testes após uma migração (``./manage.py migrate``) use a opção de recriação da base de testes.
This needs to be done only once:: É necessário fazer usar esta opção apenas uma vez::
py.test --create-db py.test --create-db
Issues Issues
------ ------
* Open all issues about the current development version (3.1) at the * Abra todas as questões sobre o desenvolvimento atual no `Github Issue Tracker <https://github.com/interlegis/sapl/issues>`_.
`Github Issue Tracker <https://github.com/interlegis/sapl/issues>`_.
* You can file issues in either Portuguese or English (at least for the time being). * Você pode escrever suas ``issues`` em Português ou Inglês (ao menos por enquanto).

Loading…
Cancel
Save