DEV Community

Felipe 0liveira
Felipe 0liveira

Posted on

🚀 SemVer: por que esse `1.2.3` muda sua vida (e seus bugs)

VocĂȘ jĂĄ deve ter visto algo assim no package.json:

"react": "^18.2.0"
Enter fullscreen mode Exit fullscreen mode

E aĂ­ surge a dĂșvida:

“Mas que raios significam esses nĂșmeros? É sĂł o dev mostrando que sabe contar?”

NĂŁo, jovem padawan. Isso Ă© Semantic Versioning — o famoso SemVer — e ele Ă© mais importante do que parece.


📩 O formato

SemVer segue o padrĂŁo:

MAJOR.MINOR.PATCH
Enter fullscreen mode Exit fullscreen mode

Exemplo: 2.5.1 significa:

  • MAJOR (2) → Mudanças que quebram compatibilidade (breaking changes).

    Tipo quando vocĂȘ atualiza e metade do seu cĂłdigo para de funcionar 😅.

  • MINOR (5) → Novos recursos, mas compatĂ­veis com a versĂŁo anterior.

    É como adicionar novas pizzas no cardápio sem tirar as antigas.

  • PATCH (1) → CorreçÔes de bugs e ajustes pequenos.

    Aquele “remendinho” que ninguĂ©m percebe
 atĂ© perceber.


💡 Por que importa?

  • Te ajuda a saber o tamanho da treta antes de atualizar.
  • Facilita comunicação entre equipes.
  • Evita “surpresas” no deploy — embora a gente saiba que sempre rola.

⚠ O cuidado com ^ e ~

No npm/yarn, esses sĂ­mbolos definem como a versĂŁo pode variar:

  • ^1.2.3 → Pode atualizar MINOR e PATCH, mas nĂŁo MAJOR.
  • ~1.2.3 → Pode atualizar sĂł o PATCH.

📌 Ou seja: aquele npm install inocente pode te trazer um bug fresquinho se vocĂȘ nĂŁo prestar atenção.


🎯 Moral da história

  • Confie no SemVer (mas verifique o changelog).
  • MAJOR = risco alto
  • MINOR = recurso novo
  • PATCH = bug corrigido

E lembre-se: nem todo projeto segue SemVer direito
 às vezes, a galera inventa moda. 😏


💬 E aĂ­, vocĂȘ segue SemVer ou sĂł atualiza e reza? Conta aĂ­ nos comentĂĄrios.

Top comments (0)