permaweb / ao-permaweb

All things AO for the permaweb - profiles, atomic assets, registries, collections, etc
7 stars 0 forks source link

Versioning support for profiles and registry #18

Open tzarebczan opened 2 months ago

tzarebczan commented 2 months ago

We should discuss how to add versions to both the profile processes and registry.

jessopb commented 2 months ago

Discussion 6-19 Store current profile lua version in registry, apps can poll that.

Suppose v1 of profile talks to a v2 profile registry... Suppose an app is upgraded to v2, but has a client profile still on v1 - should the app use api v1 in that case? Or require upgrade.

A DAO allowing registry to manage a vote on new upgrades?

jessopb commented 1 month ago

Scenario:

You have two or more apps and they have code that ao.sends actions to profiles. Users have a profile process that they may upgrade to new features using 'eval'.

Supposing a user updates their profile features in one app, Apps that haven't shipped a new version will continue to send actions to the profile. Apps that have updated their profile api code will still have to send actions understood by older profiles.

Also, ProfileRegistry has to continue to receive assigned actions from all previous protocols.

We can explicitly send a version tag, or silently infer behavior from which tags/data are present.

tzarebczan commented 1 month ago

We've decided to support full backwards compatability for now, so leaving off versioning support. We can still keep a profile version in the profile to keep track of what profile is what.

Explore: what concrete scenario would need a version tag supplied?