CICM / pd-faustgen

The FAUST compiler embedded in a Pd external
MIT License
43 stars 7 forks source link

Add a script to create a self-contained distribution tarball. #10

Closed agraef closed 4 years ago

agraef commented 4 years ago

This should do it. The script is invoked as ./make-dist.sh in the toplevel source directory, and leaves the source tarball there as something like pd-faustgen-version.tar.gz. The script will grab the version number from the line starting with #define FAUSTGEN_VERSION_STR in src/faustgen_tilde.c, so it will work without a tag, but you have to make sure to keep that version number up-to-date. Also, you'll have to edit line 20 of the script if the format of that line changes in some way (e.g., if the macro name changes). Detailed instructions can also be found at the beginning of the script.

agraef commented 4 years ago

Note that you'll still need to add something to the Linux CI if you want to automatize tarball creation in some way, so that you can upload the resulting tarball when crafting a new release.

Caveat: I'm sure you know this, but never ever just recreate a distribution tarball and overwrite an existing, already released tarball with it. This is a package maintainer's worst nightmare. ;-) Once a release is done and dusted and the tarball uploaded, it's set in stone. Unless the tarball got corrupted in some way, that is, so that the tarball is unusable. Everything else requires a new release, even if you only have to change a single byte in the distribution tarball. ;-)

pierreguillot commented 4 years ago

Great! Thank you! I have a few questions because I'm not sure of the workflow...

So each time, I push a new tag, it should create a new distribution tarball and upload it on the releases page. By default, the releases are marked as "draft" so I'm the only one that can see them before I publish them manually. This is extra security and it allows me to create a beta version (that I can remove thereafter) that are never public. But the tag is public, is that a problem to remove a tag if there is no release associated?

pierreguillot commented 4 years ago

Sorry, it seems that I pushed on your branch... I don't know how this is possible??

agraef commented 4 years ago

Well, I don't know what you did, but you still need to merge the PR. You should see a "Merge" button somewhere on this page.

agraef commented 4 years ago

But the tag is public, is that a problem to remove a tag if there is no release associated?

No, you can overwrite or remove non-release tags to your heart's content. But, as I said, you should never mess with releases to keep the package maintainers happy.

In any case, my script won't be affected by changing tags, since it only looks for the version number in the src/faustgen_tilde.c file.

agraef commented 4 years ago

It seems that you accidentally pushed stuff to https://github.com/CICM/pd-faustgen/commits/dist-script-ci. That branch looks badly garbled now, so you probably want to get rid of it and/or redo it. In any case, you'll probably want to merge this PR first, as the stuff you did on that branch is based on it.

agraef commented 4 years ago

Also note that this PR goes into your dev/v0.1.2 branch since it is based on it. You then still need to merge that into your master branch.

agraef commented 4 years ago

@pierreguillot You also want to update Faust once more to the 2.27.2 release (https://github.com/grame-cncm/faust/releases/tag/2.27.2, https://github.com/grame-cncm/faust/commit/5c45bff8f7e83969426e7036b186b7715c3ecda0). Stephane messed up 2.27.1 by uploading it twice, exactly the thing I warned you should never do. ;-)

agraef commented 4 years ago

Note that this isn't strictly necessary, as the submodule is essentially just a hash, but I'd recommend it anyway, in order to avoid any potential confusion. The official faust package in Arch also uses 2.27.2 now. But if you've already done the release, then never mind.