Closed hagenw closed 3 months ago
Isn't <root>/<base>/<version>/<base>-<version><ext>
some kind of Maven specification? So maybe we could call it VersionedMaven
or simply Maven
?
I am not so concerned about accessing a repository with a "wrong" interface, since usually we use audbackend
under the hood of another package and that packages hard-codes the interface.
usually we use audbackend under the hood of another package and that packages hard-codes the interface.
I needed audbackend
to copy some datasets from one audb
repo to another one. There might also be the case that you might want to update some files, e.g. if we change storing the dependencies in audb
in another format than CSV, for which a user might also have to access the repo directly.
But I agree that this is not a big issue.
The structure is indeed inspired by Maven, but I think it might be too much to call it Maven
as this would indicate we also do the other stuff, compare https://maven.apache.org/repository/layout.html
Solved by #194
In https://github.com/audeering/audbackend/pull/167 we introduced the concept of interfaces as an abstraction layer between backends and the user. This provides the possibility to also handle the legacy versioning (as we use in
audb
) as an extra interface. The filestructure on the backend is:Instead of
VersionedLegacy
we might also pick another name for it (e.g. maybe there is a name for that structure) and then we have it as a feature and not only legacy code.The only problem I see is that you might get in troubles when using the
Versioned
interface on a repo that was created usingVersionedLegacy
(I tried this ones for anaudb
repo. The problem was that I had a hard time to understand the problem after seeing some strange error method when executing a method. Also not all methods were failing). So it might be that we also have to consider https://github.com/audeering/audbackend/issues/166, even though I agree that it is also a cool feature to be able to store versioned and unversioned files on the same repo as you can do with theVersioned
andUnversioned
interfaces.