Re: [Csnd-dev] APIVERSION

Steven Yi <[email protected]>
Newsgroups gmane.comp.audio.csound.devel
Message-ID <CANtcCs5ePtGTH_gUyqaW9DYY95Q414fzipGDPiMYuv2y266xrg@mail.gmail.com>
I think removing APIVERSION is a good thing and that we should adhere
to semantic versioning (https://semver.org/). The guarantee for semver
is that the major version increases when backwards compatibility is
broken. Plugin handling should follow and everything that builds for 7
(any version) should go in one folder. If there's a specific minor
version requirement, we can handle that at load time of the plugin.

That said, I think maybe the thing we need is to remove the current
strange moduleInfo reporting of single number made up of major, minor,
patch, and require returning a version info struct or int array.
That'd make it clearer IMO for what version an opcode was compiled for
and aid checking of version requirements.

On Wed, Nov 6, 2024 at 12:04 PM Eduardo Moguillansky
<[email protected]> wrote:
>
> Hi,
>
> in csound 6 APIVERSION was set to 6.0 independently of the version of csound. APIVERSION is used, among other things, to determine the installation path of plugins. This has changed in csound 7, where APIVERSION follows the major and minor version of csound and forces a plugin installation folder for each minor version. While this might make it possible for multiple versions of  csound 7 to coexist (which is good) it makes it unclear what the policy is regarding installation paths and compatibility.
>
> My suggestion would be to disentangle csound version and api version, and maybe sync those to whenever there are actual changes to the api. By linking those too closely, as it is right now, we lose some nice aspects of the plugin design, among others upward compatibility.
>
> cheers
> Eduardo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.