# LTS support and version clarifications



## fufukauliza (Apr 17, 2021)

Hello everybody,
I have read the documentation for a while but have not been able to clarify my doubts.
I will try to be as short as possible.
At present according to this table: https://www.freebsd.org/security/#sup the latest LTS version is Stable 12.
So if I wanted to have a long support I don't have to update for example at 12.2 so just do a package updates.
It's correct?
Finally, I still don't understand the difference between Stable and Release.
Does the Release then become stable and then once stable LTS at least this for the major versions?
Instead, the minor versions remain in the release state?

Thank you all.


----------



## zirias@ (Apr 17, 2021)

Sorry but, it's all wrong.

There is no "LTS", and there's no need for one because every major release is supported for a long term (AFAIK 5 years). This still means you must follow the minor releases (12.0 → 12.1 → 12.2 → [...]). Each minor release will reach EOL 3 months after the successor is released. BUT: Minor releases use the same ABI, so upgrades are pain- and riskless.

Right now, there are 3 supported major releases, but support for the 11.x line will end soon. So the sane choices for a new installation would be either 12.2-RELEASE or 13.0-RELEASE.

As for `-STABLE`: That's for each major release the branch from which minor releases are created. It's still a *development* branch, the "stable" refers to the ABI that doesn't change.


----------



## fufukauliza (Apr 17, 2021)

Zirias said:


> Sorry but, it's all wrong.
> 
> There is no "LTS", and there's no need for one because every major release is supported for a long term (AFAIK 5 years). This still means you must follow the minor releases (12.0 → 12.1 → 12.2 → [...]). Each minor release will reach EOL 3 months after the successor is released. BUT: Minor releases use the same ABI, so upgrades are pain- and riskless.
> 
> ...



Thanks for the clarifications.


----------



## SirDice (Apr 17, 2021)

-RELEASE branches are made from -STABLE branches. So in a sense the -STABLE branches are the alpha versions of the _next_ minor release version. 
I've made this crude ASCII art before, I really should make a proper picture for it. 

```
----------------------------------------------------------------------------------------> -CURRENT
\__ 11.0-RELEASE -> p1 -> p2, etc     \__12.0-RELEASE    \__ 13.0-RELEASE
 \__ 11.1-RELEASE -> p1 -> p2, etc     \__ 12.1-RELASE    \
  \__ 11.2-RELEASE                      \__ 12.2-RELEASE   \
   \__ 11.3-RELEASE                      \                 13-STABLE
    \__ 11.4-RELEASE                      \
     \                                 12-STABLE
      \
   11-STABLE
```


----------



## sidetone (Apr 17, 2021)

What I was already planning to do, is to do a fresh install for major releases, or for the next whole number. I'm still using 12.2 now, and I'll install 13.0 with a fresh install. I needed to adjust my partition size anyway. Haven't gotten around to this, because it feels like a big task.

When I install 13.0, I'll use `freebsd-update` to go to 13.1, 13.2 and so on. The last time I checked, freebsd-update can only be used when running releases and their updates, but can't be used when running stable.

13 Stable isn't listed there yet, but for a new install, I would go with the next newest release of 13, than 12.

*Edit:* _13 Stable and 13.0 release aren't listed there yet._


----------



## SirDice (Apr 17, 2021)

sidetone said:


> 13 Stable isn't listed there yet


stable/13 was branched off before releng/13.0. It needs to exist before a release version can be branched off. But snapshot images may not exist yet, the focus was on getting 13.0-RELEASE out the door. I'm sure they'll be generated once the release frenzy settles down. 

Don't use -STABLE unless you have a reason to do so (doing development, support for a device that's not in the last release yet, etc). Most people should simply use a -RELEASE version. The -STABLE and -CURRENT versions can only updated/upgraded by building from source. The -RELEASE versions can be updated/upgraded with freebsd-update(8) (binary upgrade/update tool).


----------



## anlashok (Apr 17, 2021)

SirDice said:


> -RELEASE branches are made from -STABLE branches. So in a sense the -STABLE branches are the alpha versions of the _next_ minor release version.
> I've made this crude ASCII art before, I really should make a proper picture for it.
> 
> ```
> ...



Here's a picture for you  SirDice 






I've attached it as an .svg should you want to update the branch numbers or anything else in the future. There are supported boxes for each row, just edit the class to sup to show or unsup to hide. That class could also be applied to any of the text labels for the horizontal text elements to un/hide those as needed, and they can be easily renamed when 14.x starts up

I share this as public domain / CC0 so feel free to use it wherever you want to


----------



## zirias@ (Apr 17, 2021)

anlashok nice work! Although I think SirDice' ASCII art already was a good visualization of what I tried to describe in words, pictures *do* help, and this one looks pretty polished


----------



## SirDice (Apr 19, 2021)

anlashok That's excellent! I'm definitely bookmarking it for future reference 



Zirias said:


> pictures *do* help


Absolutely. In this case it certainly helps a lot to visualize it because I think that's what most new users have problems with, just seeing how the different branches fit together can be quite illuminating.

Because this question comes up quite often, I've stickied the thread too.


----------



## mer (Apr 24, 2021)

-STABLE the ABI usually doesn't change;  but it may.  99% of the time, it won't but may.  Latest was related to drm-kmod stuff in 12.0/12.1/12.2.  
The best way is to really pay attention and read all release notes and errata.

I agree that pictures help and thanks for sharing yours anlashok


----------



## zirias@ (Apr 24, 2021)

mer said:


> -STABLE the ABI usually doesn't change; but it may. 99% of the time, it won't but may. Latest was related to drm-kmod stuff in 12.0/12.1/12.2.


That's an _in-kernel_ issue, that's not considered an ABI change. ABI (for _userspace_!) never changes in a -STABLE branch. Therefore, there's only one package repository for each supported major release (packages for 12.1 and 12.2 are the same). This _can_ break when packages contain kernel modules, which is a slight shortcoming in the whole scheme.


----------



## Deleted member 67440 (Apr 24, 2021)

I think thiere is a deadly confusion in using "stable" in BSD versus Linux practice.
While for the latter "stable" means ... slightly modified, reliable, in short, "for use in production", for BSD it is (essentially) the opposite.
Better *not *to use STABLE in production, rather a RELEASE.
The subjects of "stable" are different from Linux.

By heart 5 or 6 years ago there was a symposium to change the BSD notation and, unfortunately, they chose this one in "conflict" with Linux.
EDIT: this one https://lists.freebsd.org/pipermail/freebsd-announce/2015-February/001624.html

It's not wrong, but it confuses Linux users.

I don't think this aspect was taken into consideration enough, but I could be wrong.


----------



## mtu (Apr 24, 2021)

The issue is being raised and discussed and considered constantly. It's just that the conclusion on the part of the developers is always: _"The current system makes sense from a development perspective, and everyone else just needs to learn it and stop complaining."_


----------



## mer (Apr 24, 2021)

Zirias said:


> That's an _in-kernel_ issue, that's not considered an ABI change. ABI (for _userspace_!) never changes in a -STABLE branch. Therefore, there's only one package repository for each supported major release (packages for 12.1 and 12.2 are the same). This _can_ break when packages contain kernel modules, which is a slight shortcoming in the whole scheme.


True, KABI vs ABI.  But since drm-kmod is moved to a port and it's not really "inkernel" anymore, it still is worth reminding to "read release notes".


----------



## zirias@ (Apr 24, 2021)

mer said:


> True, KABI vs ABI. But since drm-kmod is moved to a port and it's not really "inkernel" anymore,


The _change_ is "in-kernel". There are no guarantees about that, still ABI is "stable" in -STABLE, hence the name…


mer said:


> it still is worth reminding to "read release notes".


Definitely, as well as UPDATING, for all sorts of possible issues. But the "kernel module in package" issue is a recurring one, so you can already know there will be problems with such packages during the time two minor releases from the same -STABLE are supported.


mtu said:


> The issue is being raised and discussed and considered constantly. It's just that the conclusion on the part of the developers is always: _"The current system makes sense from a development perspective, and everyone else just needs to learn it and stop complaining."_


If you're talking about this "kmod in package" issue, I really don't think that's what people are telling you. Everyone will be well aware there _is_ an issue. More likely, it's an issue that would require a lot of effort to "fix" (e.g. with a package repository structure also taking Kernel ABI into account) while it only affects packages with kernel modules and only for a period of 3 months, so maybe many think it's just not worth the effort fixing it, because the user can compile these few packages himself for this period of time  You're free to disagree of course


----------



## mtu (Apr 24, 2021)

Zirias said:


> If you're talking about this "kmod in package" issue, I really don't think that's what people are telling you.


I was talking about the question of naming with respect to -CURRENT, -STABLE and -RELEASE.


----------



## Alain De Vos (May 7, 2021)

I don't check out "stable", but "releng". [It's more stable then stable]


----------



## SirDice (May 14, 2021)

The branches are named releng/*, which is short for RELease ENGineering, the releng/* branches are the -RELEASE versions.


----------



## drhowarddrfine (May 14, 2021)

This doesn't need "fixing". It's not broken. Only developers care about this naming scheme and they understand it perfectly. It makes sense. People who want to use anything other than RELEASE will understand the naming scheme.

Users should only use RELEASE.


----------



## mtu (May 14, 2021)

drhowarddrfine said:


> This doesn't need "fixing". It's not broken. Only developers care about this naming scheme and they understand it perfectly. It makes sense. People who want to use anything other than RELEASE will understand the naming scheme.


That is not the reality. The reality is that users download and install the wrong version _all the time_ (myself included back in the day).

Just ask SirDice, who triages most of them these days. Evidence, all from the last couple of months:

this thread
https://forums.freebsd.org/threads/whats-different-about-stable-and-release.78446/
https://forums.freebsd.org/threads/...-for-rx-580-on-stable-12-2.78148/#post-487767
https://forums.freebsd.org/threads/emacs-error.79060/#post-497217
https://forums.freebsd.org/threads/make-buildworld-failed-on-aarch64.79115/#post-496758
https://forums.freebsd.org/threads/pkg-update-error.74260/page-2#post-495579
https://forums.freebsd.org/threads/gnome3-unusable-lags-on-matebook-x-amdgpu.79965/#post-508488
https://forums.freebsd.org/threads/...-to-networking-12-2-stable.79826/#post-506124
https://forums.freebsd.org/threads/...e-i-e-the-installer-proper.80146/#post-509009
https://forums.freebsd.org/threads/...reebsd-13-0-current-r369222.78830/post-493605
Now, you _could_ say that:

… all those users are stupid and it's their own fault for doing it wrong, or:
… these problems don't matter because it's all about development.
But you _cannot_ say that the naming scheme is working for everyone, because it's clearly not working for all those people above.


----------



## zirias@ (May 14, 2021)

mtu said:


> … all those users are stupid and it's their own fault for doing it wrong




(and yes, somehow this is the case. On the website, you will find the supported releases, and you will find a generic download page that lists the releases first, and in a separate "development snapshots"(!) section downloads for -CURRENT and -STABLE. I think basic reading capabilities should be enough to get it right…)


----------



## SirDice (May 14, 2021)

mtu said:


> Just ask @SirDice , who triages most of them these days.


I'm more concerned about the fact those people clearly didn't read the rules and guidelines before posting.


----------



## monwarez (May 14, 2021)

I don't understand, a new user will likely go to https://www.freebsd.org/, then click the big button Download FreeBSD.
From that the first big 3 links are for each supported release. Don't tell me that people that want to try a new Operating System, will scroll down to the section


> Development Snapshots


Before choosing an image.

The earlier section are


> FreeBSD 13-RELEASE
> FreeBSD 12.2-RELEASE
> FreeBSD 11.4-RELEASE


----------



## SirDice (May 14, 2021)

I suspect many of them find a FreeBSD download through distrowatch or similar sites. If you look at their summary the latest and greatest versions are 14-CURRENT and 13-STABLE. Without _any_ explanation of what the difference between -CURRENT, -STABLE and -RELEASE is.






						DistroWatch.com: FreeBSD
					

News and feature lists of Linux and BSD distributions.




					distrowatch.com


----------



## mtu (May 14, 2021)

You can sit around the fire and marvel at how dumb everyone is all night, but the fact of the matter is: FreeBSD has a versioning scheme that's confusing for outsiders, it does a bad job at communicating the actual meaning, and nobody cares enough about users constantly installing the wrong version to make any changes.

And therefore, threads like this will keep popping up until the End of Time


----------



## Alain De Vos (May 14, 2021)

I don't know if belongs in this thread. But what happened to point releases ?
Kernel X point release Y was a good idea. How is it replaced ?


----------



## zirias@ (May 14, 2021)

mtu said:


> the fact of the matter is: FreeBSD has a versioning scheme that's confusing for outsiders


No. Maybe it's a "Linux expatriate syndrome" or something jumping on -STABLE and totally misunderstanding it, but if you don't know what a RELEASE is, you have problems not solvable on FreeBSD's side. SirDice's theory makes a lot more sense here…


mtu said:


> it does a bad job at communicating the actual meaning


Where exactly? What's unclear about the download options offered at FreeBSD's website? Stuff like "distrowatch" is out of FreeBSD's control.


----------



## SirDice (May 14, 2021)

Alain De Vos said:


> I don't know if belongs in this thread. But what happened to point releases ?
> Kernel X point release Y was a good idea. How is it replaced ?


They still exist, 12.2 is a point release, 11.4 is a point release. But you're probably referring to the old support scheme where odd minor versions had two year support and even minor version one year. That went out the window from 11.0 onward. The problem was that it had a relatively short support period (2 years max) and too many different versions had to be supported at once. Now every _major_ version is supported for at least 5 years and only the latest minor version of a major version is supported.


----------



## kpedersen (May 14, 2021)

Zirias said:


> No. Maybe it's a "Linux expatriate syndrome" or something jumping on -STABLE and totally misunderstanding it



There is a culture in the open-source user community to always be on the latest and greatest (probably drilled into their minds by consumer IT companies trying to (re)sell more). They will always choose the bigger number without knowing what it actually means.

So they should consider this a learning experience.


----------



## zirias@ (May 14, 2021)

kpedersen said:


> There is a culture in the open-source user community to always be on the latest and greatest


Well, I jumped on 13 as soon as it reached the "release candidates" phase, so I might be "infected" as well 

But using development snapshots "just because" is a whole different story… and if sites like distrowatch indeed offer snapshots of a stable development branch without any explanation, there you have (part of) the problem.


----------



## drhowarddrfine (May 14, 2021)

mtu said:


> it does a bad job at communicating the actual meaning


No it doesn't. Outsiders and these users you speak of don't take the time to understand what they are reading or clicking on. Yes it is the user's fault. People who are not your grandma but who are presumably technically literate.


----------



## ralphbsz (May 14, 2021)

mtu said:


> You can sit around the fire and marvel at how dumb everyone is all night, but the fact of the matter is: FreeBSD has a versioning scheme that's confusing for outsiders, ...


If you want to use a complex tool, such as an operating system, you need to stop being an outsider. You need to actually read the instructions. *BSD is very different from Linux, except superficially. The way you use it (from a GUI and at user level) might be pretty similar; the way you administer it is somewhat different (for example /usr/local versus /usr for packages), but more importantly, the underlying philosophy (for example of base versus packages, or how to document things, or decomposition into separate subsystems) is VERY different. If you don't understand these differences, you will not be a happy user.

Famous old story, of some sort of intelligence test: The first instruction on the page says "read all instructions to the end before doing anything else". Then it is followed by "Write you name in pen on the box in page 7", and "tear of the serial number of the test from the title page and save it in your pocket", and goes on and on. The very final instruction is "ignore all other instructions, answer questions 1 through 10 using a pencil, then hand the completed test back to the instructor". Most people return the test with a corner missing and their name written in pen, and fail.

If a place like distrowatch links to stable and current releases, they are not doing their readers any favor. That's their choice, and their stupidity. Not my job to fix distrowatch's stupidity, I have enough problems of my own.


----------



## drhowarddrfine (May 15, 2021)

And distrowatch runs on FreeBSD.


----------



## ShelLuser (May 15, 2021)

mtu said:


> That is not the reality. The reality is that users download and install the wrong version _all the time_ (myself included back in the day).


Maybe those who didn't bother to read up about the stuff they grabbed, but is that really of any concern? Those would be the same people - in my opinion obviously - who'd also happily download malware for Windows only to end up blaming Microsoft because their Windows environment runs so slowly. Surely it can't be because of them.

In the end this a user problem, and a non-issue if you ask me. If you don't bother to read up on something before using it... yah, you may run into problems. Solution: wise up and read up.


----------



## mr123 (Sep 16, 2021)

SirDice said:


> -RELEASE branches are made from -STABLE branches. So in a sense the -STABLE branches are the alpha versions of the _next_ minor release version.
> I've made this crude ASCII art before, I really should make a proper picture for it.
> 
> ```
> ...



What is p1 and p2?


----------



## eternal_noob (Sep 16, 2021)

mr123 said:


> What is p1 and p2?


Patches for that release.

For example 13.0-RELEASE-p4 is the fourth patch for 13.0-RELEASE.


----------



## SirDice (Sep 16, 2021)

Yep, they're security and/or errata patches for that release.









						FreeBSD Security Advisories
					

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms.




					www.freebsd.org
				











						FreeBSD Errata Notices
					

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms.




					www.freebsd.org


----------



## mr123 (Sep 16, 2021)

SirDice said:


> Yep, they're security and/or errata patches for that release.
> 
> 
> 
> ...


Is it correct to say that errata patches fix serious bugs that are not security vulnerabilities?


----------



## SirDice (Sep 16, 2021)

mr123 said:


> Is it correct to say that errata patches fix serious bugs that are not security vulnerabilities?


Yes, that's a good distinction.


----------



## mechanic (Nov 25, 2021)

OK, suitably chastened here after reading this thread, BUT stuck at the moment on 13-SABLE. Is there a path to RELEASE without throwing away applications and user details?


----------



## SirDice (Nov 25, 2021)

mechanic said:


> Is there a path to RELEASE without throwing away applications and user details?


-STABLE is the _next_ minor release. As there's no 13.1-RELEASE on the horizon yet, so you would basically be 'downgrading' back to 13.0-RELEASE. If/when you want to switch from -STABLE to a -RELEASE the best moment is to wait just before the imminent release of that next minor version. Until then you should just keep up to date with -STABLE. And yes, you can switch from 13-STABLE to a -RELEASE without having to reinstall from scratch. You just need to checkout the correct release branch (when it's available), then build and install it. One of my systems I upgraded from a 12-STABLE to 13.0-RELEASE. And I've done similar conversions in the past.


----------



## grahamperrin@ (Dec 19, 2021)

It's timely to quote from <https://forums.freebsd.org/profile-posts/comments/6137/>:



> … New development is always done on -CURRENT first. If things are interesting or good enough to make it into the -STABLE branches, they are MFC'ed. From the -STABLE branches the next minor releases will be made. So changes to stable/13 that are done now will eventually end up in 13.1-RELEASE when that gets released.



<https://docs.freebsd.org/en/books/handbook/glossary/#_m>

The phrase "hacking on CURRENT" comes to mind, although I can't recall where it was written/said.

Also:

merges to `stable/12` are naturally less frequent than merges to `stable/13`
both `RELEASE` and `STABLE` are supported – <https://forums.freebsd.org/posts/224513> (2013) point 2 helps to put this in context
– these things are particularly noteworthy in the context of discussions such as Radeon-specific <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=247441#c34>.


----------



## decuser (Jan 10, 2022)

mtu said:


> You can sit around the fire and marvel at how dumb everyone is all night, but the fact of the matter is: FreeBSD has a versioning scheme that's confusing for outsiders, it does a bad job at communicating the actual meaning, and nobody cares enough about users constantly installing the wrong version to make any changes.
> 
> And therefore, threads like this will keep popping up until the End of Time



I couldn't agree more. I heart FreeBSD, but the naming is nuts. I have read the various explanations many times and they all smack of after the fact rationalizations that still fail to convince. Maybe it's like which side of the road do you drive on, dunno but stable being dev is crazy. That said, anytime I need it, I just come find one of these threads and get reminded.


----------



## Friend Of Jolly Devil (Jan 23, 2022)

FreeBSD (simplified) development model for diehard linux users

Trouble with understanding by linux enthusiasts FreeBSD development model stems from the fact, that for both camps word "stable" means different things. In FreeBSD stable is correlated with "stability" (alas, I don't know how to explain to linux user the word "stability", it definitely has nothing to do with ability for stabbing) while in Linux it's a place where you keep your horses programs.

Linux distro development looks like this: you gather all Racing Candidates you've noticed in the wild to close them in a Stable. Then you open the gates to the stable*, so this stage is called RELEASE. From now on, users try to use and evaluate your horses programs, and this is a second stage called TESTING. Finally, when all horses programs are secured and well tested by users project enters the third and final stage called OBSOLETE.

In FreeBSD it looks different, current code is gathered all the time, that's why this "stage" is called CURRENT. Then comes the time when you must decide what features and programs you want to release and create a fork of CURRENT containing them. From now on they become more stable - they don't change as drastically and as often as in CURRENT, so this stage is called surprisingly STABLE, and lets you properly test them. Finally, when all programs are tested and work well together, everything is released to the public as a RELEASE. I know it's very complicated and hard to understand/remember but I think it's worth the effort.

*In rolling release model the gates are always open.


----------



## grahamperrin@ (Jan 23, 2022)

```
.      '      .
    .      .     :     .      .
     '.        ______       .'
       '  _.-"`      `"-._ '
        .'                '.
 `'--. /                    \ .--'`
      /                      \
     ;                        ;
- -- |                        | -- -
     |     _.                 |
     ;    /__`A   ,_          ;
 .-'  \   |= |;._.}{__       /  '-.     
    _.-""-|.' # '. `  `.-"{}<._         
          / 1938  \     \  x   `"  _________
     ----/         \_.-'|--X----  < RELEASE >
     -=_ |         |    |- X.  =_  ---------
    - __ |_________|_.-'|_X-X##           \   ^__^
    jgs `'-._|_|;:;_.-'` '::.  `"-         \  (oo)\_______
     .:;.      .:.   ::.     '::.             (__)\       )\/\
                                                  ||----w |
                                                  ||     ||

                                                  /|___
                                                ///|   ))
                                              /////|   )))
                                            ///////|    )))
                                          /////////|     )))
                                        ///////////|     ))))
                                      /////////////|     )))
                                     //////////////|    )))
                                   ////////////////|___)))
                                     ______________|________
                                     \       STABLE        /
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >
≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅≅  C           T  ≅≅≅≅ >
                                                 U       N
                                                   R R E
```


----------



## grahamperrin@ (Jan 24, 2022)

Lamia said:


> … I could not successfully build 14.0 (no make or src confs, even when llvm12 was set over current llvm13). I was instead using 13.0-Stable, …



If you mean that you could not upgrade from `stable/13` to `main` (to 14.0-CURRENT): that's extraordinary, because I _accidentally_ did so – with ease – twenty-two days ago:




The accident was my fault. A simple mistake with my choice of source code.



> Technically, 13-current would be 13.0-Stable, which will become 13.1. So that is how my use of the word current came to be.



Technically: 14.0-CURRENT began (13.0-CURRENT ended) a few months ago.

Re: the two artworks on page 1 (ASCII, adaptation):

things from 14.0-CURRENT are frequently merged from `main` into `stable/13`
things from `stable/13` are periodically release engineered into `releng/13.0`.
A GitHub view of the three branches:





> 14 would be highly unstable to use now.



YMMV.

For my non-complicated use case – KDE Plasma and various popular applications, FreeBSD 14.0-CURRENT is _perfectly_ stable, in that it's _extremely_ rare for me to require an inferior ZFS boot environment.

Re: the artwork above, I lay back and let the waters carry me. I'm ahead of the stable boat-goers, and no less contented than the cow on dry land.

It's a *pleasantly fast-flowing current*. The *lifebelt of boot environments* is worn at all times, so there's never a fear of being dragged below the surface. Simply hold my breath for a few seconds, then I'm up again, into the sunshine.


----------



## Lamia (Jan 24, 2022)

grahamperrin said:


> that's extraordinary


Yes, it was. I bet I will get it right next time. I was actually doing an upgrade to 14.0-current over a custom kernel.


----------



## Lamia (Jan 24, 2022)

SirDice said:


> So in a sense the -STABLE branches are the alpha versions of the next minor release version.


This is what I meant with the use of 13.0-CURRENT being 13.0-STABLE, which will "come to be" 13.1-RELEASE.
<Dialect & *vium in action>


----------



## freezr (Mar 1, 2022)

I still don't get it...


----------



## hbsd (Mar 1, 2022)

tgl said:


> I still don't get it...


Based on what I know. Guys if I made a mistake, please correct.

At this time we have 3 major versions for FreeBSD:
12.x [stable]
13.x [stable]
14.x [current]

Versions 12.x and 13.x are versions that you can install.
Version 14.x it's being developed and tested. This is actually a trial version and is commonly used by FreeBSD developers. They want to check for bugs and possible problems so that we can have a stable and quality operating system later.

Each major version is alive for 5 years and each new minor version is released every year for it: (each major version has 5 minor versions that start from 0 to 4). look at this:

|   Year  |  Version  |
| ------------------ |
|  2021  |     13.0     |
|  2022  |     13.1     |
|  2023  |     13.2     |
|  2024  |     13.3     |
|  2025  |     13.4     |

We don't have version 13.5. after this we'll use version 14.x 
So let's back to the versions that we have.

Version 12.3 is released in 2021 and version 12.4 (last version of 12.x) will released in December 2022 and will probably be developed until December 2023 and then its development stops. The rest of the versions will developed in the same way.


----------



## grahamperrin@ (Mar 1, 2022)

hbsd said:


> 3 major versions for FreeBSD:
> 12.x [stable]
> 13.x [stable]
> 14.x [current]



Not just STABLE. Please see for example:




 





hbsd said:


> Versions 12.x and 13.x are versions that you can install.
> Version 14.x it's being developed and tested.



FreeBSD 14.0-CURRENT can be installed. 

STABLE is more difficult to update than RELEASE. 

12, 13 and 14 are developed and tested.



hbsd said:


> 5 years



At least. 

[FreeBSD-Announce] Changes to the FreeBSD Support Model (2015-02-03) ◀<https://www.freebsd.org/security/#model>


----------



## freebuser (Mar 2, 2022)

To jump in and try my part to put it in a simpler way 

One thing to remember is CURRENT and STABLE branches are continuous development branches.
So, a *snapshot *from CURRENT will become a STABLE branch with then the CURRENT continue its development.
The STABLE branch will continue its separate development until a *snapshot *is released as a -RELEASE version. The -RELEASE version does not get developed any more and it is the final destination for that release.
But, the STABLE branch still continue in development and another snapshot is made for the next -RELEASE version.

With this the sketch will be more clearer to understand.

Hope this helps.

The understanding of that the CURRENT and STABLE branches are continuously developed I too had difficulty in understanding the branching of FreeBSD, but it all makes sense once understood.


----------



## decuser (May 8, 2022)

As the 13.1 releng branch nears release, I was curious when EOL for 12.3 was, after scratching my head a bit trying to remember the difference between monikers and being momentarily befuddled by the Stable 12 is supported through 2024 even though I'm pretty sure stable is the dev branch and the stable branches are really the releng's along the way, I came back here to get it all straight in my head again. Sheesh! Major - minor really isn't the devil. Just name dev, dev, do the major minor thing and be done with it.


----------



## SirDice (May 9, 2022)

decuser said:


> I was curious when EOL for 12.3 was


12 will be supported until at least 2024. So it's likely a 12.4 will be released. 12.3 will be EoL three months after the release of 12.4. That 12.4 is probably the last release of the 12 branch. It will most likely be EoL some time after the release of 14.0.



decuser said:


> and being momentarily befuddled by the Stable 12 is supported through 2024 even though I'm pretty sure stable is the dev branch and the stable branches are really the releng's along the way,


It's just to indicate the predicted end of the entire 12 branch.


----------



## blackhaz (Jul 16, 2022)

I was also extremely confused by the naming and still do not understand why FreeBSD is sticking with it, unless FreeBSD developers want to emphasize the system is created for developers, but not end users. I guess there should be a note somewhere in bold red: "Branch naming here is for the developers, not end users. Stick with the RELEASE, peasant!" 

End users expect something called "stable" to be stable, maybe with long-term support, but definitely production-ready. You generally expect stable servers not to loose user data. Never under any circumstance end user expects a development branch to be called "stable". 

End users expect something called "current" to be the latest stable version. It's current, but we assume that developers took care to assure the quality of the current version before releasing. Never "current" suggests to us that something is not designed for use at all. 

Would developers be hurt if STABLE is renamed to DEVELOPMENT, and CURRENT to FUTURE? 

(Disappears in smoke.)


----------



## Alain De Vos (Jul 16, 2022)

It's a freebsd tradition. Once you get used to it. Never mind. There is current,stable,release.


----------



## Criosphinx (Jul 16, 2022)

"End users" meaning Linux users.

Never had a problem with the names, the Download page at freebsd.org explains everything.


----------



## PMc (Jul 16, 2022)

blackhaz said:


> I was also extremely confused by the naming and still do not understand why FreeBSD is sticking with it, unless FreeBSD developers want to emphasize the system is created for developers, but not end users. I guess there should be a note somewhere in bold red: "Branch naming here is for the developers, not end users.


Yes, and this is deliberately so, because BSD has a tradition that reaches back, back to the very beginning.

The idea that there would be a difference, at all, between so-called "developers" and anybody else, is much newer. It wasn't there in the 80s, it wasn't there in the 90s. If you were able to run a computer and install an OS, you were part of the thing, and there was no discrimination, no labels attached to people.

That is also why we usually have the full source code installed, everybody can read it, and everybody can actually build from it; there is no magic involved, it is all scripted. 
Was it J.Beuys who said, everybody is an artist? So I say, everybody is a developer, and finished.

BTW, I'm always wondering: was it the "developers" who shut themselves into an ivory tower, or was it the people who declared themselves _not_ wanting to be developers, and wanting to be spared from thinking and understanding?



blackhaz said:


> End users expect something


"End users" is bogus. Go back only hundred years (2 1/2 generations), and there was practically nothing a village would need that they *could not make by themselves*. 

This is the essential point: having no idea about how the stuff works that you have in your hands, is the most dangerous thing that can happen to a civilisation. Look at civilitations and see where too much abstraction has brought them: look the Egypt, look the Maya, look the Roman Empire, look the Europeans (very soon).


----------



## _al (Jul 17, 2022)

PMc said:


> If you were able to run a computer and install an OS, you were part of the thing


Linux was like that in the mid 90s. Remember Slackware?  Each of us flipped through the pages of the installer for half an hour, choosing which daemons should be launched and which software to install, analyzing dependencies, each of us first configured, and then executed 'make World' and waited for several hours to complete ...Those were the good times when you were in control of what you worked with.


----------



## zirias@ (Jul 17, 2022)

blackhaz said:


> I was also extremely confused by the naming and still do not understand why FreeBSD is sticking with it, unless FreeBSD developers want to emphasize the system is created for developers, but not end users.


This would only be true if you insinuate only developers would ever read documentation.

The term "release" is well-known and certainly doesn't require special knowledge. So once you look for available downloads, see -RELEASE versions _first and recommended_ and then, you see there's also -STABLE, how in the world would you ever conclude to just install that? If you _really_ think "wait, isn't that the same?", wouldn't you just read the few sentences on FreeBSD pages that explain how it's a version under development?

BTW, at work, we adopted a similar branching scheme (main/stable/release) for an internally shared project, because this works really well. We did one little naming change though: "stable-api" instead of "stable", to avoid this little confusion for people who don't read the docs _first_. Still, the word "stable" is extremely important here. This scheme is working so well _because_ APIs/ABI don't change on that branch, which guarantees seamless minor upgrades and simple merging of security fixes to the release branches.



blackhaz said:


> End users expect something called "stable" to be stable, maybe with long-term support, but definitely production-ready.


And about this, what's "production-ready" is ultimately up to you to decide. A classic release engineering can guarantee the best quality, so that's recommended for production. Still, stable _is_ "stable". Only compatible changes (read: no breaking changes) are ever merged to stable, and only after some testing period on main (-CURRENT). So, _if_ you'd ever consider e.g. some rolling-release Linux dist (where the base components are continuously updated as well, and don't even care for breaking changes) "production-ready", FreeBSD -STABLE is as well.


----------



## kpedersen (Jul 17, 2022)

blackhaz said:


> I was also extremely confused by the naming and still do not understand why FreeBSD is sticking with it, unless FreeBSD developers want to emphasize the system is created for developers, but not end users.


Linux doesn't do this and yet still seems to be unsuitable for end users as demonstrated with its <1% market share. So why do you really want to break existing knowledge for the sake of... who exactly?


----------



## decuser (Dec 5, 2022)

It’s December 2022 and 12.4’s been released. Which one’s which again?, oh yeah just need to reread this thread clarifying the purportedly clear already nonsense . Definitely not stable, or current, I guess that leaves release... wait, not so fast, prolly want a release snapshot if I really want a stable os 

Will


----------



## bakul (Dec 5, 2022)

See https://www.freebsd.org/security/#sup --12.4 will likely be EOLed at the end of 2023. [On this page there is a typo in the release date for 12.4 but the rest is fine]

In general point release X.Y is supported for 3 months *after* X.Y+1 is released. Even though branches are named stable/12, stable/13, etc/ they are *less* stable than the point releases but usually more stable than -CURRENT (the *main* branch in the git repo).

My advice: unless you have a strong reason to prefer a stable branch, stick to a point release. Don't be thrown off by a shorter EOL period for them. As long as you continue updating to newer point releases you are fine.


----------



## anlashok (Dec 6, 2022)

2022 update


----------



## PMc (Dec 7, 2022)

It's not so difficult. If You're free to choose, choose a RELEASE, and choose an x.1 or x.2 that is available - that's what most people are using at the given time, and what leaves you with the most options and can stay stable for another 3-4 years.


----------



## chrislg (Dec 8, 2022)

So right now is 12.4 or 13.1 the latest stable release?
12.4 was released on December 5th and 13.1 was released on May 16th and has various patches
For example if I want to try a system with the latest Open ZFS version should I install 12.4 or 13.1?


----------



## Erichans (Dec 9, 2022)

Look at the picture above at message #64 and at Supported FreeBSD releases: there is no indication of a _minor_ version of a stable branch (something like 12.y-STABLE) in the version control system, and because of that there are no FreeBSD-STABLE minor versions*: no 12.4-STABLE and no 13.1-STABLE. The most tested and production ready are the FreeBSD x.y-RELEASE versions (x being the major version number and y being the minor version number).

ZFS is included with FreeBSD**. FreeBSD 12-STABLE and all FreeBSD 12.y-RELEASE-s are based on a ZFS version pre-OpenZFS. As of FreeBSD 13, FreeBSD comes with OpenZFS. 



chrislg said:


> [...] For example if I want to try a system with the latest Open ZFS version should I install 12.4 or 13.1?


To try a supported FreeBSD version with the latest OpenZFS included, I suggest you install FreeBSD 13.1-RELEASE. 

(Based on what you wrote, I see no compelling reason or advantage to use 13-STABLE by using either a snapshot or building it yourself; see also the FreeBSD Handbook and other Documentation as displayed here)

___
*  If you use the source code from the FreeBSD git repository, for say FreeBSD 13-STABLE, to build your own system you'll get the latest code of the 13-STABLE branch (note: "-STABLE" refers to the ABI (=Application Binary Interface) being stable).
** FreeBSD can use a different OpenZFS kernel module by specifying that in /boot/loader.conf (see: OpenZFS-Home » Getting Started » FreeBSD). As for _OpenZFS development versions_, you can also use sysutils/openzfs-kmod (kernel module) & sysutils/openzfs (userland).


----------



## chrislg (Dec 9, 2022)

Thanks for the response. I understood the versioning system, I meant point releases


----------



## SirDice (Dec 9, 2022)

People down here have a different understanding when you talk about 'stable' or 'current' versions. Those have a specific meaning with FreeBSD. 



chrislg said:


> So right now is 12.4 or 13.1 the latest stable release?


All releases are stable (i.e. their fitness to run reliably). 



chrislg said:


> For example if I want to try a system with the latest Open ZFS version should I install 12.4 or 13.1?


OpenZFS is included with 13.0 and higher.


----------

