vindi/vindi-woocommerce

View on GitHub
CONTRIBUTING.md

Summary

Maintainability
Test Coverage
# Contribuindo para o Vindi-Woocommerce

:clap::grin: Antes de mais nada, muito obrigado por sua contribuição  :thumbsup:

Este projeto e todos os participantes estão sob o regimento do [**Código de Conduta Vindi**](CODE_OF_CONDUCT.md). Ao participar, espera-se que você mantenha este código.

**Contribuições** são **muito bem vindas** e serão totalmente [**creditadas**](https://github.com/vindi/vindi-woocommerce/graphs/contributors).

Nós valorizamos muito as [**contribuições por Pull Requests (PR)**](https://github.com/vindi/vindi-woocommerce/pulls) em [GitHub](https://github.com/vindi/vindi-woocommerce), mas também adoramos **sugestões de novas features**. Por isso, fique à vontade para **reportar um bug :rotating_light:** ou **parabenizar :tada: o projeto!**

## Requisitos de um bom Pull Request (PR) para vindi-woocommerce

- **Branches separadas** - Recomendamos que o PR não seja a partir da sua branch `master`.

- **Um PR por feature** - Se você deseja ajudar em mais de uma feature, envie múltiplos PRs :grin:.

- **Clareza** - Além de uma boa descrição sobre a motivação e a solução proposta é possível incluir imagens ou animações que demonstrem quaisquer modificações visuais na interface. 

Exemplo de **Motivação** com uma **Solução Proposta**:
> Motivação

> Fazer com que o pedido seja cancelado, caso o pagamento seja reprovado na primeira tentativa (compras avulsas ou primeiro ciclo de uma assinatura), mas atualmente o cliente recebe a informação que o pedido foi registrado com sucesso, e posteriormente recebe a informação de falha no pagamento no Woocommerce.

> Solução proposta

> Adicionar o cancelamento automático de faturas na Vindi após a recusa de uma transação no Woocommerce, exceto: compras via Boleto ou pendente de revisões do Antifraude.

- **Foco** - Um PR deve possuir um único objetivo bem definido. Evite mais de um viés (bug-fix, feature, refactoring) no mesmo PR.

- **Formatação de código** - Não reformate código que não foi modificado. A reformatação de código deve ser feita exclusiva e obrigatoriamente nos trechos de código que foram afetados pelo contexto da sua alteração.
Obs.: Gostamos muito do [WordPress PHP Coding Standards](https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/) :smile:

- **Fragmentação** - Quando um PR for parte de uma tarefa e não entregar valor de forma isolada, será necessário explicitar na motivação quais são os objetivos da tarefa, e na solução proposta, os objetivos que foram concluídos no PR em questão e os que serão concluídos em PRs futuros.

#### Se você nunca criou um Pull Request (PR) na vida, seja bem vindo :tada: :smile: [Aqui está um ótimo tutorial](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) de como enviar um.

1. Faça um [fork](http://help.github.com/fork-a-repo/) do projeto, clone seu repositório (fork):

   ```bash
   # Clone repositório (fork) na pasta corrente
   git clone https://github.com/<seu-username>/vindi-woocommerce
   # Navegue ate a pasta recém clonada
   cd vindi-woocommerce
   ```

2. Crie uma branch nova a partir da `master` que vai conter o "tipo/tópico" como nome da branch
- tipos: feature e fix

   ```bash
   git checkout -b feature/cria_metodo_pagamento
   ```

3. Faça um push da sua branch para seu repositório (fork) 

   ```bash
   git push -u origin feature/cria_metodo_pagamento
   ```

4. [Abra um Pull Request](https://help.github.com/articles/using-pull-requests/) com uma motivação e solução proposta bem claras.


## Revisão da Comunidade

A revisão deve verificar se o PR atende aos requisitos abaixo, na ordem que são apresentados, e a decisão final ficaria com a 
equipe Vindi quanto à prioridade:

#### Correto

- O código realmente faz o que o autor está propondo?
- O tratamento de erros está adequado?

#### Seguro

- As modificações introduzem vulnerabilidades de segurança?
- Dados sensíveis estão sendo tratados da maneira correta?

#### Legível

- O código está legível?
- Métodos, classes e variáveis foram nomeadas apropriadamente?
- Os padrões definidos pelo projeto ou pela equipe estão sendo respeitados?

## 
**Feliz desenvolvimento!**