-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release tarball script #4837
Release tarball script #4837
Conversation
Thanks for this! I’ll test today with the source re-release for 3.11
Josh
/*
Josh Parmenter
www.realizedsound.net/josh
*/
… On Mar 22, 2020, at 06:14, David Runge ***@***.***> wrote:
Purpose and Motivation
This script creates a source tarball from a valid tag in this repository by checking out the SuperCollider sources recursively in a temporary working directory. Optionally, this script can also provide a detached PGP signature. The naming scheme of the tarball and the contained directory follows the current naming scheme.
The script automatically removes its working directory on exit or fail and is tested on Linux and macOS.
Eventually I think this should run in CI, but it can also be done manually by whoever is in charge of the release process (to be able to provide a detached PGP signature).
To create a source tarball:
./package/create_source_tarball.sh -v Version-3.11.0
To create a source tarball with detached PGP signature:
./package/create_source_tarball.sh -v Version-3.11.0 -s my-pgp-keyid-or-mail-address
Fixes #4545 #4818.
Types of changes
Bug fix
New feature
To-do list
Code is tested
All tests are passing
Updated documentation
This PR is ready for review
You can view, comment on, or merge this pull request online at:
#4837
Commit Summary
package/create_source_tarball.sh: Adding script to create a source tarball.
package/create_source_tarball.sh: Switching from gpg2 to gpg (default everywhere now).
package/create_source_tarball.sh: Add specific gnupg requirement.
File Changes
A package/create_source_tarball.sh (122)
Patch Links:
https://github.com/supercollider/supercollider/pull/4837.patch
https://github.com/supercollider/supercollider/pull/4837.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks! couple things:
- let's hook this into the build system proper by adding a target via
add_custom_target
- the resulting artefact should go in
$BUILD_DIR/package
(preferably) or$BUILD_DIR
- please indent at 4 spaces per our style guidelines
Do you mean the cmake setup by that?
I guess an optional |
oh, all i mean by that is that if you are building in
yes
for developers working with this repo i think it's easiest to both explain and use a system where all commands that produce executables, redistributable packages, etc. can be invoked through CMake. |
I understand. However, how exactly would this work? How do we derive the tag that is supposed to be built ( I guess the tag string could be assembled using Version- |
ah you're right, the design of the script makes it a bit unusual compared to other build targets. the command-line arguments could become interactive user input, ehh.. forget the build system integration. everything looks fine, can either you or @joshpar document how this fits into the release process in the wiki (https://github.com/supercollider/supercollider/wiki/git-workflow-and-guidelines) please? and then i am good to approve this. also, it would be very helpful if you rebased this on 3.11 instead of develop. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please point to the 3.11 branch. After merge, I'll run this on the 3.11 release to package the new tarballs.
Will do |
5e17bc9
to
ee8048f
Compare
package/create_source_tarball.sh: This script accepts two parameters: * v: The version (aka. the tag) the source tarball is supposed to be created for (mandatory). * s: The signing entity (an e-mail address or key ID) to sign the source tarball with a PGP private key. The script creates a tarball of the form SuperCollider-X.Y.Z-Source.tar.bz2, which extracts to a directory of the form SuperCollider-X.Y.Z-Source/ (here X.Y.Z denote a version without the conventional Version- prefix, used for the tags). Optionally, this script creates a detached PGP signature (tarball name + .asc). If the BUILD_DIR environment variable is set it will be used as the output_dir. In this case the source tarball (and the optional detached signature) are moved to BUILD_DIR/package and the output_dir is created on-the-fly. If BUILD_DIR is not provided the script defaults back to its own location (the directory the script resides in) as output_dir. The script utilizes a trap to cleanup temporary working directories (even if unsuccessful). .gitignore: Adding ignores for source tarball and detached signature creation. Signed-off-by: David Runge <dave@sleepmap.de>
ee8048f
to
7d7c801
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks!
I guess as a follow-up the scripts previously used could be removed. @joshpar how do you currently generate the binary release assets (e.g. Also: Please add the source tarball for Version-3.11.0 to the assets at your earliest convenience, so that it can be updated downstream. |
Mac OS unsigned and Win are generated through CI. I then use the Mac one to generate the notarized version.
Thanks!
I’ll update the assets soon.
Josh
… On Mar 24, 2020, at 04:44, David Runge ***@***.***> wrote:
I guess as a follow-up the scripts previously used could be removed.
@joshpar <https://github.com/joshpar> how do you currently generate the binary release assets (e.g. .dmg for macOS and .exe for Windows)? Are you using binaries created in CI in that case? I'm trying to figure out, if any of the scripts in package/* are involved in that (it seems not).
Also: Please add the source tarball for Version-3.11.0 <https://github.com/supercollider/supercollider/releases/tag/Version-3.11.0> to the assets at your earliest convenience, so that it can be updated downstream.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#4837 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AAANHLGDXCUESBHX4WJU7JDRJCMIBANCNFSM4LRJH2LQ>.
|
@joshpar can you please generate and upload the tarball? Currently 3.11.0 can not be built by downstreams relying on the tarball and the reproducible build on Arch Linux is broken due to it missing. |
@dvzrv - working on this now. If I run this: I get an error about there being no branch on the remote (which is fine - I can change it to 3.11) - but I have a concern with this... 3.11's branch has changes POST 3.11 release. Is this pulling the branch? Would pointing to a tag be better? |
@joshpar you need to reference the tag:
Otherwise git will probably use the branch. Maybe I can make the wiki more clear about this? |
@joshpar I've updated the documentation to be more explicit: |
@dvzrv - thanks! please see https://github.com/supercollider/supercollider/releases/tag/Version-3.11.0 to see if this looks right to you |
@joshpar looks all fine! I've used it in this package in version 3.11.0-4. Thanks a lot! :) |
_includes/download.md: The source tarball name has been generalized with supercollider/supercollider#4837 and is now not Linux specific anymore. The naming scheme is now 'SuperCollider-<version>-Source.tar.bz2'.
Purpose and Motivation
This script creates a source tarball from a valid tag in this repository by checking out the SuperCollider sources recursively in a temporary working directory. Optionally, this script can also provide a detached PGP signature. The naming scheme of the tarball and the contained directory follows the current naming scheme.
The script automatically removes its working directory on exit or fail and is tested on Linux and macOS.
Eventually I think this should run in CI, but it can also be done manually by whoever is in charge of the release process (to be able to provide a detached PGP signature).
To create a source tarball:
To create a source tarball with detached PGP signature:
Fixes #4545 #4818.
Types of changes
To-do list