-
Notifications
You must be signed in to change notification settings - Fork 276
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
Remove homebrew. #905
Remove homebrew. #905
Conversation
For v1.0, I want to simplify the publish steps. Currently, publishing takes a lot of time because it involves several flaky steps including - assembling fatjar (15 mb) - upload fatjar to github - download fatjar from github to get sha (I can't run sha against original local copy because it changes after uploading to github) - automatically update homebrew script with dowload url + sha Almost every time I publish, something in this process breaks and it takes me 5-10 minutes to fix. After almost 70 scalafmt releases I want to find a more sustainable release process. From now on, I want to publish only to Maven/Bintray and use coursier as the main way to install the cli. So, instead of `homebrew upgrade scalafmt`, people can run the following command on any platform (Windows, Linux or Mac) ``` sudo coursier bootstrap --standalone com.geirsson:scalafmt-cli_2.12:0.7.0-RC1 -o /usr/local/bin/scalafmt -f --main org.scalafmt.cli.Cli ``` This command builds a fatjar from maven published artifacts. A nice side-effect is that coursier will use the existing cache to minimize downloads. This means that if you upgrade from scalafmt 1.0 to 1.1 and the underlying scala.meta dependency hasn't changed, you only need to download the new scalafmt artifacts, saving several megabytes in downloads. Another nice benefit to coursier is that users can more easily configure the JVM options. I admit that that coursier command is harder to remember than `homebrew upgrade scalafmt`. I would like to open a discussion in coursier/coursier about adding a simpler syntax or support for a `coursier.conf` configuration to alias maven coordinates, etc. I believe it will be possible to turn that long command into something like `coursier install scalafmt` and `coursier upgrade scalafmt 0.7.0`.
I'll miss the sbt and coursier distributions but can understand you not wanting the maintenance burden. My team made use of the sbt and homebrew distributions for two separate reasons, any tips on replicating them with coursier would be appreciated.
|
|
@ShaneDelmore Can you try |
Looks good to me.
|
Amazing! I borrowed the idea from https://github.com/paulp/homebrew-extras/blob/master/coursier.rb I need to update the installation docs to add homebrew again ^^ |
I'm pretty happy you managed to come up with such a low effort solution. Now I don't have to feel bad about you maintaining a plugin you don't use 👍 |
Only if it was as easy to support the sbt plugin 😄
…On Wed, 26 Apr 2017 at 01:24, Shane Delmore ***@***.***> wrote:
I'm pretty happy you managed to come up with such a low effort solution.
Now I don't have to feel bad about you maintaining a plugin you don't use
👍
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#905 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABV8XbWL2-Ng4Xaa_9aciuntD0gt598Yks5rzoC9gaJpZM4NFf65>
.
|
For v1.0, I want to simplify the publish steps. Currently, publishing takes a lot of time because it involves several flaky steps including - assembling fatjar (15 mb) - upload fatjar to github - download fatjar from github to get sha (I can't run sha against original local copy because it changes after uploading to github) - automatically update homebrew script with dowload url + sha Almost every time I publish, something in this process breaks and it takes me 5-10 minutes to fix. After almost 70 scalafmt releases I want to find a more sustainable release process. From now on, I want to publish only to Maven/Bintray and use coursier as the main way to install the cli. So, instead of `homebrew upgrade scalafmt`, people can run the following command on any platform (Windows, Linux or Mac) ``` sudo coursier bootstrap --standalone com.geirsson:scalafmt-cli_2.12:0.7.0-RC1 -o /usr/local/bin/scalafmt -f --main org.scalafmt.cli.Cli ``` This command builds a fatjar from maven published artifacts. A nice side-effect is that coursier will use the existing cache to minimize downloads. This means that if you upgrade from scalafmt 1.0 to 1.1 and the underlying scala.meta dependency hasn't changed, you only need to download the new scalafmt artifacts, saving several megabytes in downloads. Another nice benefit to coursier is that users can more easily configure the JVM options. I admit that that coursier command is harder to remember than `homebrew upgrade scalafmt`. I would like to open a discussion in coursier/coursier about adding a simpler syntax or support for a `coursier.conf` configuration to alias maven coordinates, etc. I believe it will be possible to turn that long command into something like `coursier install scalafmt` and `coursier upgrade scalafmt 0.7.0`.
For v1.0, I want to simplify the publish steps. Currently, publishing
takes a lot of time because it involves several flaky steps including
original local copy because it changes after uploading to github)
Almost every time I publish, something in this process breaks and it
takes me 5-10 minutes to fix. After almost 70 scalafmt releases I want
to find a more sustainable release process. From now on, I want to
publish only to Maven/Bintray and use coursier as the main way to
install the cli.
So, instead of
homebrew upgrade scalafmt
, people can run the followingcommand on any platform (Windows, Linux or Mac)
This command builds a fatjar from maven published artifacts. A nice
side-effect is that coursier will use the existing cache to minimize
downloads. This means that if you upgrade from scalafmt 1.0 to 1.1 and
the underlying scala.meta dependency hasn't changed, you only need to
download the new scalafmt artifacts, saving several megabytes in
downloads.
Another nice benefit to coursier is that users can more easily configure
the JVM options.
I admit that that coursier command is harder to remember than
homebrew upgrade scalafmt
. I would like to open a discussion incoursier/coursier about adding a simpler syntax or support for a
coursier.conf
configuration to alias maven coordinates, etc. I believeit will be possible to turn that long command into something like
coursier install scalafmt
andcoursier upgrade scalafmt 0.7.0
.