> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Política de Versões

> Entenda o esquema de versionamento do VillageSQL e a matriz de compatibilidade com o MySQL.

## Visão geral

O VillageSQL segue políticas claras de versionamento e compatibilidade para ajudar você a tomar decisões bem fundamentadas sobre implantação e atualizações.

## Versionamento do VillageSQL

O VillageSQL usa o [Versionamento Semântico](https://semver.org/) (SemVer) para comunicar a natureza e o impacto das mudanças em cada lançamento.

### Formato da versão

As versões seguem o formato: **MAJOR.MINOR.PATCH**

```
0.0.1
│ │ │
│ │ └─ PATCH version
│ └─── MINOR version
└───── MAJOR version
```

### Regras de incremento de versão

* **Versão MAJOR** (por exemplo, 1.0.0 → 2.0.0): mudanças incompatíveis que podem exigir modificações no código ou migrações de banco de dados
* **Versão MINOR** (por exemplo, 0.1.0 → 0.2.0): novos recursos e funcionalidades adicionados de forma compatível com versões anteriores
* **Versão PATCH** (por exemplo, 0.0.1 → 0.0.2): correções de bugs e pequenas melhorias compatíveis com versões anteriores

<Note>
  O VillageSQL está atualmente em desenvolvimento pré-1.0 (versão 0.x.x). Durante essa fase, as interfaces de API e de extensões podem mudar com mais frequência à medida que estabilizamos a plataforma.
</Note>

### Builds de desenvolvimento

Versões com um sufixo de pré-lançamento (por exemplo, `0.0.5-dev`) são builds de desenvolvimento. Por padrão, o servidor bloqueia atualizações a partir de um banco de dados inicializado com um build de desenvolvimento. Os builds de desenvolvimento não são testados quanto à compatibilidade de atualização e podem incluir mudanças incompatíveis de esquema ou de protocol.

Para permitir isso, inicie o servidor com `--villagesql-allow-unsafe-dev-upgrade`:

```bash theme={null}
mysqld --villagesql-allow-unsafe-dev-upgrade --datadir=/path/to/data
```

Sem a flag, o servidor sai com um erro se detectar um banco de dados de versão de desenvolvimento:

```
Upgrading from a development version (0.0.5-dev) is not allowed. Use --villagesql-allow-unsafe-dev-upgrade to permit this.
```

Com a flag, o servidor registra um aviso e prossegue:

```
Upgrading from a development version (0.0.5-dev); --villagesql-allow-unsafe-dev-upgrade was specified.
```

O servidor sai com um erro se a flag for especificada, mas a versão atual não for um build de desenvolvimento:

```
--villagesql-allow-unsafe-dev-upgrade specified, but current version (0.0.3) is not a development version.
```

Ou se nenhuma atualização de esquema estiver sendo realizada:

```
--villagesql-allow-unsafe-dev-upgrade specified, but no upgrade is being performed.
```

## Compatibilidade de extensões

As extensões do VillageSQL são específicas de cada versão. Uma extensão compilada para uma versão do VillageSQL pode não funcionar com outra versão.

Ao atualizar o VillageSQL:

1. Verifique a compatibilidade da extensão com a nova versão
2. Atualize ou recompile as extensões conforme necessário
3. Teste as extensões em um ambiente de desenvolvimento antes da implantação em produção

Consulte o [Guia de Atualização](/docs/guides/upgrade) para procedimentos detalhados de atualização.
