quarterly vs. latest

News and Announcements related to GhostBSD
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

quarterly vs. latest

Post by ASX »

The latest quarterly branch switch is really outrageous, leaving lot of people with broken X becase of regeressions in card and screen autodetection.

I don't want this happen again in GhostBD, therefore I propose what follow:

- we will track the head (latest) branch
- we will provide weekly updates, for a start
- we will maintain a copy of the previous week repository, so that if/when perople would find themselves in trouble, they will be able to switch repo to "weekly" (the previous week repository), and restore their system by reinstalling all packages

Code: Select all

pkg-static update -f -r ghostbsd-weekly
Let me know what you think about. Thanks.
User avatar
ericbsd
Developer
Posts: 2057
Joined: Mon Nov 19, 2012 7:54 pm

Re: quarterly vs. latest

Post by ericbsd »

I think it is a good idea.
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: quarterly vs. latest

Post by ASX »

ericbsd wrote:I think it is a good idea.
Thanks.
Fact is that quarterly "stability" is not as good as it should be.
Also we devs are mostly running on "latest", and that is good becase we will be the first to experience the upcoming issues.

By the way, I was also thinking at the power of ZFS snapshots, (each snapshot require only the differential storage), and we could be able to have multiple snapshots available, using little additional storage, of course we can evaluate this option at any time.
kraileth
Posts: 312
Joined: Sun Sep 04, 2016 12:30 pm

Re: quarterly vs. latest

Post by kraileth »

Totally agree that this was not a moment of glory for FreeBSD... I was also hit by that problem again.

However: There are different assumptions about what stable means and it's probably not a good term at all. In case of FreeBSD branches "stable" is actually less stable than "release" because that name comes from the fact that the ABI is stable. And regarding the repos as far as I understand things "stable" means that there's less fluctuation in version numbers, only upgrading to newer major versions if necessary for security reasons (e.g. Chromium). That doesn't mean that it always provides a system that's always stable unfortunately... Same thing about FreeBSD's reputation as being "extremely stable". It (at least partly) means that FreeBSD has the POLA and how you use the system doesn't change rapidly and radically if possible (and never without announcing it first).

That said, I like the idea of the quarterly package repo for some cases. Namely if you don't want your applications to change all the time or if you do not want to big downloads too often. People who come to try out a BSD desktop are probably looking for that kind of stability, too. That's why I'd vote to stick with quarterly for the production repo. We as devs should definitely use "latest" so we find out early when something breaks. Of course we should put a guide on the wiki that shows how to change to the "latest" branche (and ask people interested in it to help testing).

The idea to keep a backup of the previous good repo e.g. when the quarterly rotates to the new one. Also ZFS might be a good thing to make use of, too.
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: quarterly vs. latest

Post by ASX »

kraileth wrote:Totally agree that this was not a moment of glory for FreeBSD... I was also hit by that problem again.
Hi kraileth, glad to read from you. How are you ? Hopefully you have recovered your illness.
However: There are different assumptions about what stable means and it's probably not a good term at all. In case of FreeBSD branches "stable" is actually less stable than "release" because that name comes from the fact that the ABI is stable. And regarding the repos as far as I understand things "stable" means that there's less fluctuation in version numbers, only upgrading to newer major versions if necessary for security reasons (e.g. Chromium). That doesn't mean that it always provides a system that's always stable unfortunately... Same thing about FreeBSD's reputation as being "extremely stable". It (at least partly) means that FreeBSD has the POLA and how you use the system doesn't change rapidly and radically if possible (and never without announcing it first).
we never tough about going to FreeBSD-stable. ;)
That said, I like the idea of the quarterly package repo for some cases. Namely if you don't want your applications to change all the time or if you do not want to big downloads too often. People who come to try out a BSD desktop are probably looking for that kind of stability, too. That's why I'd vote to stick with quarterly for the production repo.
Hmm ... guess you missed my point: while in theory "quarterly" should have been more stable/reliable, in practice it has demonstrate that failed completely in that respect, there are already 3 forum post about that, plus one user who asked for help on IRC, and you too was hitted.

At this point, being "quarterly" practically a failure, I see no reason why not use "latest" directly.
In addition we (GhostBSD) will provide additional protection by allowing for a weekly old frozen repo.
We as devs should definitely use "latest" so we find out early when something breaks. Of course we should put a guide on the wiki that shows how to change to the "latest" branche (and ask people interested in it to help testing).
We can do something better really, implementing an utility to switch repository. ;)
Do not forget that a user with a broken system has no easy way to read documentation.

The idea to keep a backup of the previous good repo e.g. when the quarterly rotates to the new one. Also ZFS might be a good thing to make use of, too.[/quote]
we will have a backup repo, but referred to the "latest/head" branch.
kraileth
Posts: 312
Joined: Sun Sep 04, 2016 12:30 pm

Re: quarterly vs. latest

Post by kraileth »

ASX wrote:Hi kraileth, glad to read from you. How are you ? Hopefully you have recovered your illness.
Yes, I'm fine, thanks! Just really low on time right now due to various things (I tried to hop on IRC for about a week now but missed it every single evening).
we never tough about going to FreeBSD-stable. ;)
Oh, actually I suggested this a while ago (not moving and dropping -RELEASE, though, but creating an additional branch for development and more experienced users). And if I remember correctly, Eric wrote that he thought about something like this, too. I don't think we can handle this right now, but whenever we switch to packaged base in the future (one version after FreeBSD, with 11.2 perhaps?) this would become an option. But yeah, even though it's kind of related to the current question we should probably discuss this seperately.
Hmm ... guess you missed my point: while in theory "quarterly" should have been more stable/reliable, in practice it has demonstrate that failed completely in that respect, there are already 3 forum post about that, plus one user who asked for help on IRC, and you too was hitted.
No, I got your point and I agree to it. Just wanted to point out that there's another benefit to "quaterly": Not changing software versions all the time. There are people who like the "rolling" release approach and there are people who hate it. For the -STABLE / snapshot branch (totally needs another name as "stable" is completely missleading!) touched on above I'd definitely want "latest" enabled by default. But I IMO "quaterly" has it's value (version stability + necessary fixes) even though it fails to provide more application stability. The latter would have been very nice and I guess that in theory it actually was one of the reasons why FreeBSD adopted "quaterly" in the first place.

I'm not exactly a fan of Linux Mint but they are doing some things right. When I saw their new updater, I was pleasantly surprised. The first time that you launch it, it asks you to choose one of three options: a) "Just security updates, please", b) "Only install updates tested by the Mint team", c) "Install every update available; if something breaks I'm going to fix it!" This is a great approach! Every single option makes sense for certain kinds of users (or even use cases). An option like b) is completely out of question for us, of course. But providing choice is a good thing as it makes us a more flexible FreeBSD distro! There's quite some people now who used to work with PC-BSD but were turned away from TrueOS's radical rolling release approach. We shouldn't limit how you can use GhostBSD without good reason or we might lose attractiveness to some users.

But let's be honest: Dropping "quaterly" and moving to "latest" does not solve that problem for our users. When we use "quaterly" as is from FreeBSD, systems might break four times a year when it is rotated. Just going to "latest" means that it can break anytime! Frankly speaking: The problem here is that FreeBSD's "quaterly" ports branch is half-baked. The idea is good, but the implementation is lacking... My suggestion is to keep tracking "quaterly" for GhostBSD's -RELEASE branch and do as you suggested in adding a fallback repo ("quaterly-old" or whatever to call it). Since we as dev's will be running "latest" anyway, we should be able to find out breakage early. In that case we should probably just delay adopting the new quaterly. With our own repos we're independent and we're also not bound by FreeBSD's rules to adopt the new "quaterly" ports on day one. Our users will most likely prefer working systems (we're a desktop distro after all!) over following FreeBSD's ports rules word by word.
We can do something better really, implementing an utility to switch repository. ;)
Do not forget that a user with a broken system has no easy way to read documentation.
That's totally true and a utility makes sense! I also wonder if we can provide some other means to protect agains bad updates as well. For ZFS based systems, BEs would be very cool. But even UFS supports snapshots - maybe we could build something that makes recovering easier? Like snapshotting the local package cache dir prior to downloading and installing the new ones? If something fails we could have users boot into text mode and run something like "ghostbsd-recover-packages" which force installs the old packages over the system again. Keeping the old repo on our server(s) is a good thing but keeping a local cache as well can definitely be beneficial for people who don't want to download everything again.
The idea to keep a backup of the previous good repo e.g. when the quarterly rotates to the new one. Also ZFS might be a good thing to make use of, too.
we will have a backup repo, but referred to the "latest/head" branch.[/quote]

Definitely a good idea. I'd like to keep "quaterly" around, too, though. For the reasons stated above. ;)
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: quarterly vs. latest

Post by ASX »

There are a few things that we discussed on IRC (me and Eric) and that aren't mentioned in this thread but are somewhat implied; the most relevant is that we will provide users with the ability to build their own packages, and that imply we will provide a source tree (basically FreeBSD ports + our ports, + our default options).

This will be the "current" GhostBSD source tree", and we agreed to keep it in sync with our "latest" packages, for consistency. It is implyed that we will have two source tree branches: "test" -> freebsd latest + ..., and "latest" which will be snapshot / copy of test made at the same time we snapshot / copy the "latest" package repo.


EDIT:
kraileth, thanks, you made me though about repos naming, and I think it is better we change that to
- latest (following FreeBSD latest branch, for devs/tester only)
- current (default for users)
- previous (removed the week reference, so that we can go bi-weekly as needed)

I'm sorry to decline your proposal about quarterly, but the fact is that there aren't enough "testers", implicitely the only sure testers will be us devs, and as you noted we use "latest"; I don't ave the time to perform additional work, afaik Eric also doesm't want to spend addtional time for that, you too seems to not have enough free time.

If sometimes later we will find that we can or want to reimplement quarterly, fine, for now the only realistical approach is "latest only", but so far "quarterly" has demonstrated to be an upstream error.

We are not anywere near a product that could aim to some LTS label, while it may look appealing, realistically we can't afford that.

Another thing we mentioned on IRC is that the repos will be three and not two:
- test (packages flow in from synth)
- latest (snapshot / copy of "test", after we asserted there are no major issues)
- prev-week (snapshot / copy of "latest", approximately one week older.

If you look at them carefully, they approximately match the Mint approach you mentioned:
- test, used by devs
- latest, for general use
- prev-week, as a backup repo

to be continued
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: quarterly vs. latest

Post by ASX »

Regarding "rolling" vs "static" release, by a matter of fact ports are "rolling"; and kernel+world are semi-rolling,
in that they are static, yet you have patch levels: at least one of the latest patch-level in 10.3 broke a few packages, and when you consider we are making own packaging for increased reliability / stability we don't want our users being afflicted by the same FreeBSD issues; that is, we really need to keep the systems relatively in sync between OS patch level and related ports source tree- (This is also part of the reason why I think "quarterly" is an error).

You should see, that we have no choice other than tracking "latest".
kraileth
Posts: 312
Joined: Sun Sep 04, 2016 12:30 pm

Re: quarterly vs. latest

Post by kraileth »

Ok, thanks for the explanation. I tend to still disagree that "quaterly" is a complete failure (in case of "version stability" it's working fine). But things are already decided on and the actual important thing is that we do something to keep those problems at bay. And yes, once again it's about what we can do and not what we'd like to. ;)
ASX
Posts: 988
Joined: Wed May 06, 2015 12:46 pm

Re: quarterly vs. latest

Post by ASX »

After some though, especially considering that building packages require a significative amount of time, we have decided to add a 4th repository: "build".

Reason for this additionall repository, which is the one that will be feeded from synth, and after completed will be moved / copied to "latest", the repos used from devs / testers, is that it will allow us to perform tests, while in the meantime synth will build the next batch of updated packages.

recap:

- build <== feeded from synth
- latest ==> to be used from tester /devs
- current ==> the main ghostbsd repository
- previous ==> the previous repository, to be used in case of undetected issues in "current"
Post Reply