How are UUID and SHA generated


#21

Yeah, I agree I think this is going around in circles...

my proposal is pretty simple:

  • axoloti UI which gives simple use interaction.
  • git (or similar VCS with local store) to manage different versions of objects.
  • patches store commit id...
  • users usually use latest commits. but will be notified if there local repo is not at HEAD.
    (again I repeat, this is NOT how it will appear to the user)

Im even tempted to say, that a patch is seen as one entity, i.e. you can load it with a given commit id (ok, one per repo),
you cannot load it with way some objects from one date and others from another date.
we could even allow users to 'checkpoint' a patch i.e. put tags, such that they know its in a particular saved state for a performance/recording.
this approach means dependancy is a non-issue... if it worked at commit id 12419487 , then all objects/sub-objects from the repo will be the same.

my only aim (at this stage) is versioning... I recognise packaging may be a 'feature request' but I don't believe it has the same priority as supply a 'user library'.

I'll also point out, I don't really even think versioning is an issue currently (or a priority), I merely suggested github as a storage service, that happens to also help us with versioning.

pros
- free, reliable, well understood technology.
- supports local caching and full versioning feature set
- APIs to allow to be embedded within application.
- wide range of tools available to 'power users' to resolve issues, and help manage library
- version/change history available to users.

cons
- need to possibly adapt our thinking
- doesn't cover dependency management between 'fine grained' objects.
- need to be careful to not expose git to end-users
- contributors (not other users) need to be registered with gitub
- simultaneous editing possible, but really we don't want to get into merge/stashing with users, avoidable with correct workflow features. (note: other solutions may also stumble on this)

@alex, no collecting in ableton is more about taking copies of resources, so able to move/know the don't change... it just puts in a single directory, from there you can zip/tar do whatever you want.
I see combining objects as packaging, and not linked to versioning