You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What is the version of ac-local-py? Is it 6.7.23? How would one know that this is compatible with ac-local 1.2.3?
It could be 1.2.3.5 where 1.2.3 is the ac-local version, and 5 means fifth revision of the python wrapper for ac-local 1.2.3. This looks nice. It even works with requirements.txt having a line like ac-local-py == 1.2.*. The problem however is twofold:
What if there is a fundamental redesign of the wrapper itself? Versioning this as 1.2.3.6 would imply a small change from 1.2.3.5. Bumping other numbers will negate the wole idea of the first three.
Moreover a given version of the wrapper may be compatible with multiple versions of ac-local. ac-local-py 4.3.1 could work for ac-local 1.0.0 through 1.10.x. If ac-local maintains good backwards compatibility, this is not out of the question. So in this line of thought it makes sense to have ac-local and ac-local-py completely detached.
But this brings us to binary distributions. In a binary distro the ac-local version is completely defined. Even if ac-local-py 4.3.1 as source is compatible with absolutely every ac-local version, a binary distribution will have a specific version of ac-local. Which one is it?
It seems that we need to make one of two mutually exclusive choices:
ac-local-py 1.2.3.x where only x is the wrapper version. This makes it easy to know and guarantee the unrelying ac-local version through package management, but we sacrifice the wrapper being compatible with multiple versions of ac-local. Even if there are zero changes to the wrapper, there would need to be a version bump to support a given ac-local version
ac-local-py 3.5.2 where this is a wrapper only version and has nothing (explicitly) to do with ac-local's version. In this case we allow the wrapper to wrap multiple ac-local versions (though which?), but we completely hide the actual version from the user
And this becomes even worse in:
Plugins
The plugins have the exact same issues as above, but they are compound by the fact that they're bound to two sources: ac-local and the inference library.
So how do we even begin to manage the version of a plugin which uses ac-local 1.2.3 and llama.cpp 6.3.1?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
How do we manage versions? Here's the problem.
Say ac-local is at 1.2.3
Wrappers
What is the version of
ac-local-py
? Is it 6.7.23? How would one know that this is compatible with ac-local 1.2.3?It could be 1.2.3.5 where 1.2.3 is the ac-local version, and 5 means fifth revision of the python wrapper for ac-local 1.2.3. This looks nice. It even works with
requirements.txt
having a line likeac-local-py == 1.2.*
. The problem however is twofold:What if there is a fundamental redesign of the wrapper itself? Versioning this as 1.2.3.6 would imply a small change from 1.2.3.5. Bumping other numbers will negate the wole idea of the first three.
Moreover a given version of the wrapper may be compatible with multiple versions of ac-local. ac-local-py 4.3.1 could work for ac-local 1.0.0 through 1.10.x. If ac-local maintains good backwards compatibility, this is not out of the question. So in this line of thought it makes sense to have ac-local and ac-local-py completely detached.
But this brings us to binary distributions. In a binary distro the ac-local version is completely defined. Even if ac-local-py 4.3.1 as source is compatible with absolutely every ac-local version, a binary distribution will have a specific version of ac-local. Which one is it?
It seems that we need to make one of two mutually exclusive choices:
And this becomes even worse in:
Plugins
The plugins have the exact same issues as above, but they are compound by the fact that they're bound to two sources: ac-local and the inference library.
So how do we even begin to manage the version of a plugin which uses ac-local 1.2.3 and llama.cpp 6.3.1?
Beta Was this translation helpful? Give feedback.
All reactions