diff --git a/Home.md b/Home.md index cb9c5a4..5893c41 100644 --- a/Home.md +++ b/Home.md @@ -1,3 +1,47 @@ -Bem-vindo à wiki do projeto SAPL. +# SAPL: Sistema de Apoio à Atividade Parlamentar -Leia as [Diretrizes para a implementação](Diretrizes-para-a-implementação). +Esta página reúne informações úteis ao desenvolvimento atual do SAPL. + +Para maiores informações sobre a versão corrente do sistema (2.5) visite a [página do projeto na wiki do Interelgis](https://colab.interlegis.leg.br/wiki/ProjetoSapl) + +## Diretrizes gerais para a implementação da versão 3.1 + +Reproduzir exatamente (ou o mais próximo possível) a funcionalidade existente. As melhorias serão feitas nas versões a partir da 3.2 + +### Boa práticas + +* Mensagens de commit no padrão 50/72 colunas começando com um verbo no infinitivo. Vide: + - http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html + - http://stackoverflow.com/questions/2290016/git-commit-messages-50-72-formatting +* Todo código no padrão PEP8 + * Apenas relaxamos E501 (linhas sem limite de tamanho) nos arquivos models.py, por enquanto. +* Antes de `git push`: + * Rodar principalmente `git pull --rebase`. Em alguns casos apenas usar merge (lembre que `git pull` => merge). +* (...Usar um ramo novo para cada feature significativo? ...Talvez) +* Antes de `git commit`, sempre: + - Rodar `./manage.py check` + - Rodar testes com `py.test` (**Importante**: É necessário que o usuário `sapl` tenha a permissão `create database` no postgres) + +### Testes +* Escreva testes para toda a funcionalidade que implementar. +* Mantenha a cobertura de testes próxima de 100%. +* Para executar todos os testes, raiz do repositório, com o virtualenv ativado, usar o comando `py.test`. +* Para executar os testes com cobertura usar o comando: + + `py.test --cov . --cov-report term --cov-report html && firefox htmlcov/index.html` + +### Componentes + +* Bootstrap para templates (ter sempre dispositivos móveis e acessibilidade em mente) +* [Django Vanilla Views](http://django-vanilla-views.org) para views (e function based views para os casos mais simples) +* Urls semânticas +* [django-crispy-forms](http://django-crispy-forms.readthedocs.org/en/latest/) para forms com diagramação com Bootstrap + +### A definir + +* O que usar para API Rest. Provavelmente usaremnos o [django-rest-framework](http://www.django-rest-framework.org/). O Colab usou [django-tastypie](https://django-tastypie.readthedocs.org/en/latest/) +* O que usar para fazer forms de busca mais facilmente. Testar [django-filter](http://django-filter.readthedocs.org/en/latest/index.html) + +### Idioma +* Inglês (Avaliar se isso funcionará bem para a comunidade) + - Commits, comentários, identificadores (nomes de variáveis, classes, funções, etc) em inglês