Skip to content

Pd-l2ork versioning and various OSX package fixes (fixes #209)

Albert Gräf requested to merge aggraef/purr-data:testing into master

As discussed in pm. Builds and runs fine on OSX and Linux for me, but as usual you'll still have to test on Windows.

It was quite a bit of work to untangle the mess that was there, so I broke it out into several commits to facilitate tracing regressions. But in a nutshell it's quite simply the following:

  • PD_TEST_VERSION is now always set to a combination of git date and revision of the current commit, which looks like 20170125-rev.441563fc, so it's both human-readable and lets us identify the exact revision if users report bugs. To accommodate this, m_pd.h now gets generated from m_pd.h.in, as we discussed, and only the latter is in the repo, so that it only needs to be committed when the static parts of the version numbers change. All inconsistencies in the state of PD_TEST_VERSION during the build have been resolved.

  • Bumped the "Pd compatibility version" PD_{MAJOR,MINOR,BUGFIX}_VERSION to 0.43.10 so that's it in sync with upstream Pd-l2ork again.

  • m_pd.h.in contains a new #define PD_L2ORK_VERSION which gets printed with -version and is also in the generated docs (about text etc.). This is a string, so that we can set it to anything we like, but my idea is to use 1.0 for upstream Pd-l2ork and 2.0 for the initial Purr Data release, and then increment it from there whenever a new Purr Data release happens. Right now I've set it to "1.99" so that we can bump it at release time. But this isn't carved in stone, the version numbers could be anything (even release names instead of numbers) as long as it clearly sets apart vanilla, upstream Pd-l2ork and Purr Data.

  • The package name now gets derived from both PD_L2ORK_VERSION and PD_TEST_VERSION. E.g., the Mac disk image is now named something like Pd-l2ork-1.99-20170125-rev.441563fc-x86_64.dmg. (Note that I put the architecture name last now, as is customary.)

  • pd_version et al have been adjusted as well (cf. rev. c6eb01b0), so that the printed version is a nicely formatted combination of PD_L2ORK_VERSION and PD_TEST_VERSION (similar to what vanilla does when the latter is defined). E.g., here's what pd-l2ork -version prints now:

    Pd-L2Ork version 1.99 (20170125-rev.441563fc)
    compiled 09:10:38 Jan 25 2017 

In addition, the OSX package now installs a "Pd-l2ork" bundle (without any suffix), as I prefer and we discussed (commit 0a945e93).

While I was at it, I also fixed a few broken links in the OSX package and did some minor touch-ups to the generated docs (to accommodate the new versioning, fix broken links and update or remove outdated information), these are all in separate commits.

Please by all means let me know if you notice any issues; I'll happily fix them and amend the merge request as needed. I consider it really important that it gets accepted, so that we can finally lay to rest all those pesky versioning issues and never have to think about them again. ;-)

As soon as everything seems right, I'll apply something similar to upstream Pd-l2ork, and I'll also update all my own Arch and Ubuntu packages so that they accommodate the new versioning scheme.

Merge request reports