Metadata-Version: 2.4
Name: bifrons
Version: 1.1.0
Summary: SemVer automation CLI based on PR title
Author-email: Fernando Barreto <kalimbinhaa@gmail.com>
License-Expression: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Bifrons

[![PyPI version](https://img.shields.io/pypi/v/bifrons)](https://pypi.org/project/bifrons/)
[![Python versions](https://img.shields.io/pypi/pyversions/bifrons)](https://pypi.org/project/bifrons/)
[![License](https://img.shields.io/github/license/Kalimbinha/Bifrons)](https://github.com/Kalimbinha/Bifrons/blob/main/LICENSE)

CLI para automação de versões SemVer baseada em títulos de PR/commit.

**Repositório**: [https://github.com/Kalimbinha/Bifrons](https://github.com/Kalimbinha/Bifrons)

**Pypi**: [https://pypi.org/project/bifrons/](https://pypi.org/project/bifrons/)    

## Descrição

O Bifrons analisa o título de uma PR ou commit e incrementa automaticamente a versão seguindo as regras do [Semantic Versioning (SemVer)](https://semver.org/). Ele classifica o título em:

- **patch** (correções): títulos começando com "fix"
- **minor** (novos recursos): títulos começando com "feat" ou "feature"
- **major** (mudanças incompatíveis): títulos começando com "breaking", "major" ou contendo "breaking change"

A versão atual é lida/escrita no arquivo [`version.txt`](version.txt ) no diretório atual.

## Instalação

Certifique-se de ter Python 3.8+ instalado.

```bash
pip install bifrons
```

## Uso

Execute o comando com o título da PR/commit:

```bash
bifrons --title "fix: correção de bug"
```

### Exemplos

- **Patch (correção)**:

  ```bash
  bifrons --title "fix: resolve memory leak"
  ```

  Saída:

  ```text
  [bifrons] versão anterior: 1.0.0
  [bifrons] nova versão: 1.0.1
  ```

- **Minor (novo recurso)**:

  ```bash
  bifrons --title "feat: add dark mode"
  ```

  Saída:

  ```text
  [bifrons] versão anterior: 1.0.1
  [bifrons] nova versão: 1.1.0
  ```

- **Major (mudança incompatível)**:

  ```bash
  bifrons --title "breaking: remove deprecated API"
  ```

  Saída:

  ```text
  [bifrons] versão anterior: 1.1.0
  [bifrons] nova versão: 2.0.0
  ```

- **Título inválido**:

  ```bash
  bifrons --title "random title"
  ```

  Saída:

  ```text
  Erro: Título inválido! Use fix/feat/major
  ```

### Arquivo de Versão

- O arquivo [`version.txt`](version.txt ) é criado automaticamente se não existir (inicia com `0.0.0`).
- Ele contém apenas a versão atual (ex.: `1.2.3`).
- Execute no diretório onde deseja gerenciar a versão.

## Desenvolvimento

- **Estrutura do Projeto**:

  ```text
  Bifrons/
  ├── bifrons/
  │   ├── __init__.py
  │   ├── cli.py       # Interface de linha de comando
  │   └── core.py      # Lógica principal
  ├── pyproject.toml   # Configuração do projeto
  ├── README.md        # Este arquivo
  └── version.txt      # Arquivo de versão (gerado)
  ```

- **Testes**: Execute `pytest` para rodar os testes em `tests/`.
- **Linting**: Use `black bifrons/` para formatar o código.

## Autor

Fernando Barreto

## Licença

MIT License. Veja o arquivo LICENSE para detalhes.
