-
-
Notifications
You must be signed in to change notification settings - Fork 57
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
Add rake task to build release packages that bundle traveling ruby #19
Conversation
The gem version needs to be referenced in multiple places so a `Parity::VERSION` constant was extracted to hold this value.
* development * staging * production
Support for: * x86 * x86_64
@croaky Any thoughts on this change? |
This looks like a great idea but I haven't had a chance to review it On Wed, Jan 14, 2015 at 8:34 AM, Joël Quenneville [email protected]
|
Awesome work, @JoelQ. Merged as 7916985. Sorry for the delay getting this in. Adding you and @geoffharcourt as committers in case you want to make other updates in the future. |
@JoelQ Do you think there's a way to automatically create the Linux versions using Travis? |
Nice! |
@croaky You mean to test OS-specific builds on Travis? |
Ah, I see. The tarball doesn't have to be generated on the target system. That's the whole point of using traveling-ruby. You should be able to generate all the tarballs on you local machine and upload them to the github release page. |
Whooaaa. Mind asplode. |
Also adding @gabebw as a collaborator. |
Distributing command-line applications as Ruby gems is cumbersome. It requires users to reinstall the application every time they upgrade their Ruby version and it breaks on machines that run older versions of Ruby. It also makes installation more painful for non-Ruby devs.
A better approach is to use a package manager such as Homebrew. This PR creates a set of
rake
tasks to generate packages that can be tied to a release. It also bundles traveling ruby so as not to depend on the existing rubies on a user's system.The packages contain shims for Parity's binaries which just run them using traveling ruby. The generated packages have the following structure:
Packages can be generated with rubies for the following targets:
rake package:osx
rake package:linux:x86
rake package:linux:x86_64
or for all packages
rake package:all
These packages would then be attached to a release on github. They could be manually downloaded and extracted to a directory with
/bin
was inPATH
or they could be installed via a package manager.I created a working Homebrew formula that pulls this release on my fork as a proof of concept.