Design

This section is not useful to most people, only potential contributors or future LXUP developers.

Brainstorming

Update these tools

I don't know currently what would be the best and easiest process to provide automatic updates for fixes and improvements. Please reach out if you have any idea.

If you want to dig into this this issue, here a few ideas:

  1. How can updates be automatically downloaded when available ? Maybe adding a command in upa (context: my function to update everything in my computers)
  2. Does a fish plugins manager can help ? Should we just build a plugin with all these tools and let the fish plugings manager take care of updates for us ?
  3. Where should we store small changelogs to documents fixes and new features, without creating a file per script ?
  4. Should we check hash and evtl signatures of downloaded files ?
  5. Should we git clone instead of curl ?
  6. Maybe a lxup update command ? It would require to have an index files containing all scripts names and current versions. This would allow to ship changes without releasing a new version (as a beta change) so a few friends can have a try before releasing it for everyone. We could have a stable and beta index, you can choose which one you want to pull from. A bit like GitHub release strategy.

Temporary solution
You can just run the same curl commands or lxup commands and it will download the latest version !

Conventions

  1. All these scripts have a -v flag to get the version. Version number are a single number, as each change can break things for someone and this is too useless to have semver for such small tools that may have only a few new releases.
  2. Special global variables like $DEFINITION

Brainstorming

  1. Maybe lxup is the start of a new package manager for HEIG softwares ? just kidding...
  2. Should we actually do semver for safer updates and better expectations settings ?
  3. Should we ship scripts in other languages, especially compiled ones to support all platformes ? (I'm thinking about Rust and rust-script crate)
  4. Should we automate this with Ansible ?
  5. Indicate how to report issues
  6. Inform about breaking changes possibility
  7. Inform about required versions of deps
  8. Add a known issues section and point it in help
  9. Add simple tests for these dependencies to make sure they actually work and be confident they keep working along changes
  10. Support -h and --help easily via a constant in script ?
  11. Support --version in addition to -v ?
  12. How to easily generates up-to-date examples of these commands ? When changing colors or text or behavior it would be nice to avoid doing examples by hand again and again. How to generate Asciinema recordings of them ?
  13. Automatic dependencies presence and versions checks, easily included in any CLI
  14. Maybe we need a lxup status command to display known issues with scripts ? Maybe lxup status cmr to filter list. Maybe the changelog could be here too ?
  15. Maybe we need to store an index file