Re: Announcing freebsd-rustdate
- In reply to: Matthew D. Fuller: "Announcing freebsd-rustdate"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 24 Aug 2024 08:44:44 UTC
Hello Matthew, This is very interesting, I believe it deserves an entry in the next status reports. In a few days we will start calling for 2024Q3 reports, but you can send us earlier if you prefer (it is never too early for sending a status report). If you are interested, here are status report submission instructions: https://docs.freebsd.org/en/articles/freebsd-status-report-process/ Cheers, Lorenzo Salvadore On Friday, August 23rd, 2024 at 04:40, Matthew D. Fuller <fullermd@over-yonder.net> wrote: > > > Do you enjoy using freebsd-update to keep your systems fresh, but not > so much enjoy the vacations you go on while waiting for it finish > doing its thing? Ever wished there was something faster and way less > widely tested you could use instead? Well, today's your lucky day! > > The performance of freebsd-update.sh has bothered me a number of > times, so over the past few months I've been working on a > re-implementation of it in Rust. It's fairly feature complete now, > and seems to be working OK. I've been using it on multiple systems, > and they're all still working. So, it's time for other people to see > it now. > > > I've setup a small site: > > https://rustdate.over-yonder.net/ > > that has a download of a current tarball (a pretty vanilla cargo > workspace), a lot of information on usage, the differences from > freebsd-update.sh, and some deeply unfair speed comparisons. It > awaits your examination, and I await your feedback. > > > Here's some quick summary points; see the site (or the built-in help) > for more details: > > The basic commands (fetch/cron/upgrade/install) are roughly the same. > There's fairly extensive built-in help for the commands and arguments. > A number of parts can make use of multiple cores, so you can get some > nice speedups if you have them. There are progress bars for most > long-running operations. Manual conflict resolution and showing the > details of pending upgrades are separate commands, so 'fetch' and > 'upgrade' don't have any interactive elements. > > Just for a quick taste of the speed difference, with warm caches on my > fairly powerful workstation, upgrading from 13.2-RELEASE to > 14.0-RELEASE-p9 with the full source tree included takes under 2 > minutes with freebsd-rustdate (well under 1 minute, if you disable > fsync), compared to about half an hour for freebsd-update. > > > I'm sure there's lots more testing it needs, so I'd be cautious about > grabbing this and running straight ahead to upgrading your whole > production fleet with it. But I'd love to know about what's missing > or broken, so I can add or fix it. Or about what's working right, so > I can break it. > > It's worked well for me, so it's probably not completely broken. > I've done my best to make it roughly equivalent to the .sh, but > tracking through some the logic in there is kinda twisty. I don't > have any insight into how it's all expected to work except for what I > could glean from those sh-spelunking trips, so I expect there are > still surprises lurking somewhere. > > > In any event, I definitely want to thank Colin Percival and everyone > else who's worked on the existing script and infrastructure over the > years. I'm sure I'm not the only one who appreciates it. And I very > much don't intend anything in this mail or on the site as any sort of > slight against them; shell scripts are just slow. Of course, while > I've done my best to work from the contents of the .sh, all the code > in this is mine, so nothing in it is in any way Colin's fault, or > anyone's but me[0]. > > > > [0] It's probably not my fault either. There's a small family of > elves living in an old ATX case in my closet, who regularly put > bugs into my code. So, really, just blame them. > > > > -- > Matthew Fuller (MF4839) | fullermd@over-yonder.net > Systems/Network Administrator | http://www.over-yonder.net/~fullermd/ > On the Internet, nobody can hear you scream.