stanislav-tkach/os_info

Support for rolling release versions

Lonami opened this issue · 5 comments

Currently the versions can be unknown, semver or custom:

https://github.com/DarkEld3r/os_info/blob/f9088845198fa9951f6d97a7bb35d035046f707b/os_info/src/version.rs#L14-L24

Would it make sense for it to support rolling too, or is this too rare? I found that as the BUILD_ID in Arch Linux.

It is an interesting question, thanks for pointing it out. How do you think a rolling release version should be represented? As Rolling(date)?

I was thinking just Rolling,, given this:

$ cat /etc/os-release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux

Note in particular this line:

BUILD_ID=rolling

I'm not sure if other operative systems with "rolling" have a date.

This would also be a breaking change, because so far the version is exhaustive.

Honestly I'm not very accustomed with the rolling versioning. I was thinking that even with rolling releases I still can have not the latest version. In that case it can be useful to know how old my operating system is. I guess the date can be extracted from somewhere (from pacman?), but I'm not sure how useful and hard that will be. Still I'm thinking about Rolling(Option<Date>).

I'm OK with the breaking change and releasing a 3.0 version. Additionally #178 can be included into it.

I'm not sure how deep into the rabbit hole the library wants to go. Probably every operating system has its own perks and locations where one could find valuable information to provide that level of detail, but then things get harder to maintain and test. My original idea was just detecting "rolling" as rolling release, but adding the date as an optional value may not be a bad idea.

I'm not sure how deep into the rabbit hole the library wants to go.

I'm not sure either. 🙃
But I would like to add more flexibility for future changes, especially if we are already talking about breaking changes.