cfillion / reapack

📦 Package manager for REAPER
https://reapack.com
GNU Lesser General Public License v3.0
316 stars 23 forks source link

Support for defining required REAPER version for packages and filtering packages using it #67

Open przemoc opened 1 year ago

przemoc commented 1 year ago

I haven't used REAPER for quite some time. I have v5.99, which seem to work fine in W11, so I do not plan to upgrade it (at least not until v7 will be released, maybe this year?).

I was wondering if there is a way (or plan to add it in ReaPack) to filter packages by supported REAPER version?

ReaPack generally works in v5.x (minor version requirements differ across OSes), so it kind of makes sense to be able to differentiate scripts by which major REAPER version they require (v5, v6, and whatever will come in the future), as minor version updates are always free. I don't remember if it was discussed in the past.

Index Format currently does not seem to support providing which REAPER version each entry requires. I know for sure my ReaScripts work fine in REAPER v5, but I suspect many newer packages may rely on stuff that has been added in REAPER v6. Adding REAPER version indications retroactively may be hard, I'm not even sure if there is any annotated API list, which would clearly show in which REAPER min version given functions were added, and Cockos unfortunately do not provide such info in their ReaScript API Help - unfortunately many vendors fail to provide information when given API has been introduced and/or changed in a significant way. X-Raym's ReaScript API Doc also looks only at the latest REAPER version. Possibly not much can be done regarding v5 vs v6 (only best effort attempts can be done, e.g. those that know for sure using v5 with their scripts is fine, could maybe somehow mark them appropriately), but may it's worth looking into before v7 will come.

cfillion commented 1 year ago

Not currently. I'm planning to add a dependency system with versioning requirements. A way for script developers to specify a REAPER version requirement would be a part of that work.

As a general rule of thumb the latest version of REAPER + latest SWS beta should always be used to ensure compatibility (that being said I'm also still daily driving v5 until v7 myself).

I'm not even sure if there is any annotated API list, which would clearly show in which REAPER min version given functions were added

The best source I use for this is the release notes: whatsnew-v*.txt on landoleet.org. (Though not all API additions are mentioned, especially older ones.)