home.social

#semver — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #semver, aggregated by home.social.

fetched live
  1. [Перевод] One Branch To Rule Them All

    Всем привет. На связи Михаил, технический лидер проекта Axelix . Я уже довольно давно хотел написать небольшую статью о нашей модели ветвления git в надежде, что она может пригодиться и другим. В мире существует немало стратегий ветвления git, например: Gitflow, GitHub-flow, Trunk-Based-Development (TBD) и так далее. По своему опыту могу сказать, что команды обычно не берут какую-либо стратегию в точности в её исходной форме, а либо изобретают нечто совершенно новое сами, либо просто берут, к примеру, уже упомянутый GitFlow и адаптируют его под свои нужды.

    habr.com/ru/companies/spring_a

    #axelix #git #semver #версионирование #gitflow #tbd #trunkbaseddevelopment #github_flow #monorepo #lockstep

  2. semver: when a complete rewrite of your entire codebase only needs to cause a version change from 1.0.0 to 1.0.1

    #SemVer

  3. @jdm_ thank you for checking it out!

    Also, this is actually still only half the story! There will probably be more blog posts.

    To make this work, I had to work out a principled model for how re-exports interact with stability and doc(hidden). In discussing this with other Rustaceans, it turns out that this model is more complete and better-behaved than what rustc / rustdoc use internally. The rustc/rustdoc current internal model is a bit ... footgunny. For example, folks have accidentally stabilized things without anyone noticing 😬

    So now we opened a proposal to adopt the cargo-semver-checks model in rustc + rustdoc: github.com/rust-lang/rust/issu

    #rust #semver

  4. Rust CI now runs cargo-semver-checks to prevent accidental breakage in the standard library 🦀

    If you're wondering why that's important and why it took 15kLoC+, this post is for you.
    predr.ag/blog/protecting-the-r

    #rust #semver

  5. "You fixed something — your change made a program compile when it shouldn't have — and that's proof your API has a major breaking change"

    @lorilorusso interviewed me to understand how cargo-semver-checks will catch breakage in your traits and types
    youtube.com/watch?v=38h2OiVI1ms

    #rust #rustlang #semver

  6. With any luck, this is the cargo-semver-checks release that will start scanning the Rust standard library for breakage.

    Enjoy v0.50.0! What a fitting moment for a nice round number 🎉 Expect a blog post soon!

    #rust #rustlang #semver

  7. Как мы перестали копировать .gitlab-ci.yml и спасли пайплайны от хаоса с помощью модулей

    Копипаст .gitlab-ci.yml по десяткам сервисов привел к config drift: пайплайны расходились, а правка одной строчки требовала 10+ MR. Вынесли логику CI в отдельный репозиторий модулей, подключаемых через include с версионированием по SemVer — в проекте остается только короткий файл с переменными. В итоге миграция с Kaniko на BuildKit заняла 5 дней вместо 2-3 недель, а типовой багфикс на 20 сервисах — 1 час вместо 11. Смотреть, как устроены модули ->

    habr.com/ru/articles/1061280/

    #gitlab_ci #gitlabciyml #devops #semver #yaml #gitlab_ci_include #gitlab_ci_components #cicdcatalog #cicd

  8. Happy cargo-semver-checks release day 🎉

    After 30+ PRs and 15kLoC, we can now lint the Rust standard library for accidental breakage! I'll work with Rust maintainers to get that plugged in, then it's blog post time to tell you how it works! Stay tuned 🦀

    github.com/obi1kenobi/cargo-se

    #rust #rustlang #semver

  9. Still some cleanup to do before this can merge, but I'm exhausted. I'm 30 PRs and 15080 cumulative lines in on my week off from work 😅

    I'm calling this a win, and going to lay down and read a book.

    #rust #rustlang #semver

  10. Day 5, a picture worth a thousand words 👇

    I put an API-breaking `#[doc(hidden)]` in my local build of the Rust standard library, and asked cargo-semver-checks to find it. See for yourself!

    #rust #rustlang #semver

  11. Second, an improvement to how we normalize types.

    We'll need this to implement type-checking lints in the future. This will eliminate a large class of expensive type-checks where the previous logic was unnecessarily conservative and quite inefficient.

    github.com/obi1kenobi/trustfal

    #rust #rustlang #semver

  12. It's Thursday, day 4. Today's haul so far is ~2500 LoC.

    First, making use of default-value stability which we previously exposed in rustdoc JSON. Pairing with Codex on this caught a subtle new edge case that affects which traits are considered sealed.

    Copious test cases come standard, of course.
    github.com/obi1kenobi/trustfal

    #rust #rustlang #semver

  13. I had to take a brief detour to triage a surprising new class of SemVer breakage.

    It's always *a time* when the net result is "8 issues across 5 repos" 😅

    The net result is the same: even more lints!
    github.com/obi1kenobi/cargo-se

    #rust #rustlang #semver

  14. It's Wednesday, day 3.

    Default-stability is in rustdoc JSON in today's nightly Rust. Only *stable* defaults are public API, so we pretend unstable values don't exist.

    I'm working on a PR for this, and also on type normalization improvements to let us have type-checking lints 👀

    #rust #rustlang #semver

  15. RE: hachyderm.io/@predrag/11684034

    Day 2 of trying to scan the Rust standard library for accidental breakage with cargo-semver-checks 👇

    #rust #rustlang #semver

  16. Second, the last required upstream PR got merged into rustdoc!

    It lets us know which default values (like on associated consts, or default method impls in traits) are considered stable and therefore public API. This is the last "partial stability" mechanism we need.
    github.com/rust-lang/rust/pull

    #rust #rustlang #semver

  17. It's Tuesday, and so far so good!

    Two things happened today, by which I mean after midnight last night.

    First, I merged a PR to allow unstable stdlib items to be considered non-public-API. Similarly, const-unstable items are considered non-const in public API:
    github.com/obi1kenobi/trustfal

    #rust #rustlang #semver

  18. I'm taking a few days off from work, so let's see how far I can get with having cargo-semver-checks scan the Rust standard library for accidental breakage...

    Idea courtesy of a random hallway conversation with Amanieu at the Rust All Hands part of @rustnl this year.

    #rust #rustlang #semver

  19. New cargo-semver-checks release 🦀

    I'm hard at work on solving type checking lints, so this one is just a maintenance release — one new lint plus some bug fixes. Enjoy!
    github.com/obi1kenobi/cargo-se

    #rust #rustlang #semver

  20. Три мажора, две ошибки: проектирование API приостановки для интерпретатора машины Тьюринга

    Когда «снисходительность к входным данным» становится ловушкой? Когда имя хука начинает диктовать потребителю модель мышления? Когда подстановка снимка состояния — это не приём, а сигнал, что фазы жизненного цикла стоят не на том такте? Три мажорных релиза одной библиотеки — про эти три вопроса. К разбору полётов

    habr.com/ru/articles/1041090/

    #машина_тьюринга #npmпакет #breaking_changes #open_source #проектирование_интерфейсов #генераторы #интерпретаторы #semver #хуки #разбор_полетов

  21. Most engineers pick version numbers by feel. Learn how Semantic Versioning and Changesets turn your releases into a reliable contract your users can depend on. hackernoon.com/a-developers-gu #semver

  22. I spent most of this year so far figuring out possible designs to solve those problems.

    RustWeek + All Hands were phenomenally useful! I worked w/ rustdoc, types, compiler, cargo, and other folks to poke holes in the designs and then patch them.

    Thank you @rustnl for making it happen!

    #rust #rustlang #semver #rustweek #rustweek2026

  23. What we'll get out of it:
    - support for type-checking lints (#1 top user request)
    - fix the remaining classes of false-positives (#2 top user request)
    - Rust itself can use cargo-semver-checks to prevent accidental breakage in the standard library (!!)
    - a "SemVer crater" ability:
    predr.ag/blog/cargo-semver-che

    #rust #rustlang #semver

  24. Hard problems:
    - connecting rustdoc JSON across crate boundaries
    - generating rustdoc JSON in a performant, caching-friendly way
    - generating "witness programs" to catch type-related breakage
    - extending our static analysis to cover std too
    - making all of this not take hours to run in your CI, lol

    #rust #rustlang #semver

  25. Reflecting after the Rust All Hands: cargo-semver-checks is in a fascinating spot.

    We've never simultaneously had:
    - so many hard problems that must be solved at once
    - so many "this is hard but we're confident it'll work" solutions in flight at once

    Thrilling, but exhausting. But THRILLING 🦀

    #rust #rustlang #semver

  26. I'm working on cargo-semver-checks, and I realized that an edge case of one of my edge cases has an edge case that breaks my planned design.

    That means that so far, I'm having an average Saturday in cargo-semver-checks land 😅

    #semver #rust #rustlang

  27. Was that change really a patch—or did you just break someone’s build? Manual #SemVer is fragile, especially in growing teams. @JagoVreede enforces it with code.

    Make your versions trustworthy again and avoid hidden breaking changes: javapro.io/2026/03/26/semantic

    #Java #Maven #API

  28. #semver anyone? Semantic versioning like

    3.14.1 as major.minor.patch

    is defined on semver.org/ with

    PATCH version when you make backward compatible bug fixes

    What is a "backward compatible bug fix"? After a bug fix, the software is no longer compatible with the buggy version, ON PURPOSE. Any dependent software which accommodates so far to the bug may now have problems?

    What am I missing?

    #npm #java #javascript #programming #softwaredevelopment