Hey, I’m on my journey to setup a custom build using the somewhat fresh “vyos-build” repo. Going along the available options, I came across the “build_type”, which can be set to “development” (default), “release” and “stream”. As far as I figured “stream” is supposed to contain stable changes from development, which are definetly going into the upcoming LTS. Still I don’t find any resources about what features to expect in those builds. All I can find is complaints about the unavailability of stream images, even though seemingly building them is possible. Can someone shed some light on this? I’d probably need the development version due to some IPv6 features only present there. But if stream provides everything I need already, there is no need to live on the bleeding edge.
While that’s great to hear, it doesn’t answer my question at all
The build option is already there. If I use it, will it build an actual stream image, even though I have no subscription so far, or will it just build a rolling release with “stream” as build_type?
If it actually builds a stream image, what features will be missing compared to the rolling (development) one? And if it actually builds a stream image, will that continue to work for users without subscription, or will that option be removed as soon as stream is officially published?
I understand some of these questions potentially can’t be answered clearly yet, but especially the last one is of most importance, as I’d like to decide now which variant I’ll put my bets on and stick to that choice.
Now that Stream is out for quite a while, I tried again to shed some light on this. My current finding is: stream builds are somewhat more stable than development (nightlies), as they are updated at specific points in time only. Though I don’t really understand if a stream build is indeed just a development build from an arbitrary point in time, or if there is more to it. I’d appreciate any input on this!
Stream is an early tech preview of future LTS versions. It’s built from cherry picked changes in the rolling branch. So the maintainers do a lot of manual work to choose what new features are mature and stable enough to be candidates for the next LTS version.
Thank you for clarifying! That raises another question though: stream is selectable as a build type. That doesn’t change the repo though, i.e. if I build a stream image myself, it will still be a development/rolling one, just labeled stream, right? If so, how could I build stream images myself? I need some customization, so AFAIK I can’t start with the provided ISO as a base (unless that changed?). I didn’t notice any stream branch though, so I assume it isn’t possible to build a customized stream image in general.
The full source of the image is available for stream just like for LTS. I haven’t seen any publicly available instructions on how to build from the full source. The source has all of the packages at the time they built the ISO, so you should be able to create a 1:1 version of the release.
I haven’t looked into figuring out how to build from it, sorry I don’t have a better answer there. Maybe someone else has or the maintainers have instructions to do it. The instructions would likely be the same for both 1.4 and stream, so they could be useful to a broad group of users.
At a minimum, the source does include vyos-1x and vyos-build, so you could maybe get a little closer to a custom stream release.
I mean are above instructions even valid today given the “drama” last 1-2 years when repos were removed from public use (only available to subscription holders)?
I figured I could somehow recreate the code state stream was build from, however I didn’t know they release a source bundle along with it. Using that it might actually be pretty straightforward to build an image, doing it the same way you would for an actual git clone.
I agree that this would be very convenient. Though I’d also understand if VyOS would like to avoid making a stream build as easy as it is to do a rolling one, for the same reason they changed the whole building in the first place. It kinda still looks easy though, due to the source bundle being released along the images. Just gotta figure how to use the bundle instead of the repo.
I mean are above instructions even valid today given the “drama” last 1-2 years when repos were removed from public use (only available to subscription holders)?
I didn’t thoroughly check, but at least the build container steps look valid and mostly match what my Ansible play is doing. After all they actually were updated at some point after the changes. About the native building I don’t know, but why would one do that anyway?