goaaats / xivlauncher-neo

XIVLauncher: The Next Degeneration
GNU General Public License v3.0
15 stars 7 forks source link

Where to store the "source of truth" launcher version? #27

Open daemitus opened 2 years ago

daemitus commented 2 years ago

Sould libxl, xlcmd, tauri, and vue all have the same version?

Should the version in the window title be the same or something different from them all?

karashiiro commented 2 years ago

I believe we've already decided that libxl is supposed to be completely decoupled from the UI, so at the very least libxl should have its own version. That would then require that everything else use a different version number since it can be updated independently.

karashiiro commented 2 years ago

All non-binary crates besides libxl could probably just be left at 0.0.0 indefinitely?

obligatory "I'm not goat"

fitzchivalrik commented 2 years ago

The rust ecosystem adheres to semantic versioning afaiu and crates should follow that notion. Here are some writings about that and what contains a major/minor update.

https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field https://doc.rust-lang.org/cargo/reference/resolver.html https://doc.rust-lang.org/cargo/reference/semver.html https://github.com/rust-lang/rfcs/blob/master/text/1105-api-evolution.md

I think each crate should adhere to it and have its own versioning, depending on breaking/feature/fix updates. The user faced version of the GUI app is, strictly speaking, independent of all that, but for ease of use I would tie that to the version of the gui - that should be the version field in tauri.conf.json, I think? Hopefully that gets auto-sync with the version in package.json and Cargo.toml by tauri (but maybe not).