TIL: #semver (https://semver.org/#spec-item-9) defines a "prerelease" differently than python and dpkg does it:
Semever: 0.1.1-20250101 < 0.1.1 < 0.1.1
debian/python: 0.1.1 < 0.1.1-20250101 < 0.1.2
Why? WHY? WHYYYYY?
TIL: #semver (https://semver.org/#spec-item-9) defines a "prerelease" differently than python and dpkg does it:
Semever: 0.1.1-20250101 < 0.1.1 < 0.1.1
debian/python: 0.1.1 < 0.1.1-20250101 < 0.1.2
Why? WHY? WHYYYYY?
New cargo-semver-checks just dropped, enjoy!
And if you're enjoying, please support the project on GitHub Sponsors
https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.41.0
Обновил у себя Forgejo с 7.x.x LTS до 10.x.x Stable.
Думал, что придётся попердолиться с поломками обратной совместимости что-то опять поудалять или подобавлять в конфиг.
Сначала натравил на релизноты и чейнджлоги последних трёх мажоров ChatGPT и попросил сделать выжимку.
Почитал, не поверил, пошёл читать сам.
В итоге обновился буквально тем, что у себя в .env
файле поменял версию образа с 7 на 10 и дёрнул:
docker compose pull
docker compose up -d
Потом ещё для перестраховки пошёл и проверил с помощью forgejo doctor check --all
, что ничего не сломалось.
Там были ровно те же ворнинги, которые были ещё со времён переезда с Gitea на 7.x.x - заодно пофиксил их.
Короче, выражаю свой респект господам из @forgejo за достойный переход на SemVer, достойное ему следование и достойное избегание лишних поломок даже между мажорными версиями
P.S. Надо будет теперь где-нибудь в конце апреля заехать на выходящий скоро свежий LTS релиз и снова долго в ус не дуть обновляя минорные версии автоматом.
This episode of #OpenSourceSecurity talks to @predrag about cargo-semver-checks
it's a #Rust tool that can help you figure out if you broke #semver, it's pretty awesome
We also touch on the difficulty of detecting breaking changes, sustainable open source, and what's to come for semver checking
It's a fun chat and you'll learn a lot
https://opensourcesecurity.io/2025/2025-04-cargo-semver-checks-predrag-gruevski/
My first W3C specification has been posted by the W3C. Super excited, cant wait to get the others in!
https://www.w3.org/submissions/semantic-versioning/
Read more about it here: https://cleverthis.com/news/clever-semantic-versioning-w3c-submission/
Tänään lapsia nukuttaesa laitoin ulos viime viikonloppuna AI:n koodaaman uuden version mun harrasteprojekti Pelilaudasta. Jonka on muuten testannut myös AI.
Versio on nyt 17.0.0.
Kuulostaa tosi juhlalliselta. Mut oikeesti - koska semanttiset versiot - tossa julkaisussa ei ole mitään hienoa tai uutta. Siis sellaista mitä käyttäjä näkee. Jos ei lasketa muutamaa samalla korjautunutta pikkubugia.
Tän versiointimallin keksinyt tyyppi ei selkeästi ymmärrä markkinointia
Have you ever found something so tricky that you needed two weeks to get 200 lines of code exactly right?
The new cargo-semver-checks version had one of those cases. Here's why
https://predr.ag/blog/when-is-trait-can-be-implemented-public-api/
cargo-semver-checks v0.40 is out
https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.40.0
I have now installed and tested Authentik for CoreUnit.NET. So far I am satisfied. Keycloak, dex and other IDP's made me dissatisfied in some steps. As a developer I just dont like the container image taging, please use semver so I can pin major/minor versions.
there are two types programming language communities, identified by how they engage with semver
1. the type that labels a package version 0.32474 after its been used in mission critical production code making billions of dollars and literally saving Earth from the goa’uld because, like, the API just isn't stable yet
2. the type that are on version 312.2.42 after a full month of being out. 311 has an optional config change. 313 is going to seem like it does nothing but actually subtly inverts the behaviour of the entire API in a way that seems totally logical to the maintainers and exactly no-one else
Is it just me, or does Semantic Versioning feel more like a guideline than a strict rule in many open source projects? Breaking changes in patch versions, features in minor updates…
https://pridever.org/ Pride Versioning
https://github.com/romversioning/romver Romantic Versioning
https://semver.org/ Semantic Versioning
#TIL conda 25.1.1 has access to a #Python 3.13.2 runtime, but doesn't support installing it into conda base. I wouldn't wory too much as long long as the conda packages are kept up to date with a periodic `conda update --all` but the #semver failure bugs me. I expect minor & patch versions to be backwards-compatible.
I'm sure the reason is library dependencies, but that just begs the question. Do any #Pythonistas know why conda's base doesn't support the current stable runtime?
I updated my post that describes the way cargo-semver-checks decides if traits are sealed.
It now describes the latest method I've found for sealing traits: using a const item whose type cannot be named!
Check it out here:
https://predr.ag/blog/is-this-trait-sealed-or-not-sealed/
"When can a trait be implemented without touching `#[doc(hidden)]` items?"
Simple question, extremely complex answer! Most intense 2000 lines I've written in a long time!
Still needs cleanup & refactoring, but it's passing tests!
https://github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/742
Any #java devs out there with some good suggestions for semantic versioning strategies? I've been using Netflix's Nebula Release plugin for years but I'm starting to rethink that approach due to the long configuration times in #gradle. And from what I can tell, the changes to support configuration cache on their side would be significant.
How the heck did I find this?
- I read the Rust docs unreasonably closely.
- I write and test cursed Rust.
I want cargo-semver-checks to get all the edge cases right. This is what it takes.
When you become a GitHub Sponsor, you're funding that attention to detail: https://github.com/sponsors/obi1kenobi
Happy "new cargo-semver-checks release" day!
20 new lints
Full release notes here:
https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.39.0
Today I misremembered a rule that *I helped implement* in cargo-semver-checks.
I described something as breaking when it isn't, and failed to remember the *actually breaking* part. 0/2 on my part.
*This* is why we distill expertise into automation. `cargo-semver-checks` gets this right 100% of the time. I clearly do not.
Merged 5 new lints into cargo-semver-checks today
It's not even lunchtime yet