You are viewing a single thread.
View all comments View context
7 points
*

I prefer the SemVer Major.Minor.Patch approach so I can tell at a glance if the update breaks compatibility or is just bug fixes. Technically the Patch part can be any number as long as it increases each update of that same Minor version, so one could write the versions as AA.BB.YYMMXX where AA is the Major version, BB is the Minor, YY is the two digit year, MM is the month, and XX is just an incrementing number.

I think this approach has the best of both systems.

permalink
report
parent
reply
-1 points
*

That works for libraries, but applications? What is the interface you’re looking at for backwards compatibility? Towards websites, towards workflows, towards CLI arguments, towards ABI, or something else?

There’s also the disadvantage of being perceived as moving slower than the competition. If Chrome is at v162 and you’re at v3, people perceive the version numbers to reflect the quality and development. Shouldn’t be the case, but it is.

permalink
report
parent
reply
2 points

If Chrome is at v162 and you’re at v3, people perceive the version numbers to reflect the quality and development.

I don’t think it is the case. Ask some random person what version their browser is and they probably won’t even know how to check.

It doesn’t matter for the vast majority of people, the only people who care are power users. And what do power users appreciate? Clear communication. If there’s a major UI change or something, bump the major version. If there’s a new feature, bump the minor version. If it’s just bug fixes, bump the patch version. Or even simpler, since Firefox has the ESR build, bump the major version whenever an ESR build is cut, bump the minor version every regular release (4 weeks?), and bump the patch version every patch release like we do now. That way I know how much the ESR build has deviated from the regular build, which is valuable information (just look at the minor version for the latest Firefox).

How you manage versions doesn’t matter to the vast majority of people, so it should be tuned for the minority who actually kind of care, so make it mean something. A year would be fine and useful, a number that increases w/ the ESR refresh would be useful, an ever-increasing number isn’t useful. Pick one of the useful options…

permalink
report
parent
reply
1 point

All the feedback and attempts at studies I’ve seen point in the opposite direction, don’t know what to tell you.

permalink
report
parent
reply
1 point

Yes, especially for applications, and especially for Firefox. The Major version in SemVer increases with any interface change public or private (or it’s supposed to). This is important to communicate to users who rely on any 3rd party plugins, or who need to open files created with prior versions of the software, including configuration profiles.

Using Firefox as an example, I use the Firefox UI Fix. If Firefox changes their browser userchrome/layout, this mod breaks. But it is nice that I can tell at a glance when a new Minor version or Patch version releases that it contains no changes that break this mod. Any breaking changes in these versions are bugs in Firefox.

As for higher number versioning. I’m not advocating that Firefox restarts their Major versioning number back to 0. They could skip Major versions and call the next Major version 200 for all I care. The only thing my comment advocated for was including the date in the patch version number.

permalink
report
parent
reply
1 point
*

I think you have a misconception about what Semver is. No, changing private interfaces does NOT increase major version - why do you think that Semver specifies that you must declare a public API? This would also mean any bugfixes would result in major bumps, but they don’t, because not every interface change is treated equally.

You also skipped the actual question. What are all of Firefoxes interfaces? Is user flow itself an interface?

permalink
report
parent
reply
-1 points

I would never trust a dev defined SemVer as more than a relatively useless indicator of compatibility. I make sure there’s proper unit and integration testing to prevent external dependencies breaking production. If it’s a major dependency I check the release notes every version.

permalink
report
parent
reply
1 point

Eh, I’d much rather have a dev-defined SemVer that’s sometimes inaccurate than something that just arbitrarily increases every release. The first provides some information, the second doesn’t.

permalink
report
parent
reply
1 point

My suggestion is in compliance with standard SemVer as far as I can tell, but yes it is frustrating when apps use versioning that looks like SemVer, but make interface changes in Minor versions and don’t really adhere to SemVer.

permalink
report
parent
reply

Firefox

!firefox@lemmy.ml

Create post

A place to discuss the news and latest developments on the open-source browser Firefox

Community stats

  • 1.8K

    Monthly active users

  • 439

    Posts

  • 4.6K

    Comments

Community moderators