Skip to content
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

Make Sonatype the default publisher #14

Merged
merged 1 commit into from
Oct 11, 2017
Merged

Conversation

jvican
Copy link
Owner

@jvican jvican commented Oct 9, 2017

This is a change I wanted to do some time ago, but waited for the perfect
moment to bump up the major version number. My experience releasing tells me to
recommend Sonatype, and therefore I want to make it the default publisher.

This will require a change in the docs.

@jvican jvican added this to the v2.0.0 milestone Oct 9, 2017
jvican added a commit that referenced this pull request Oct 9, 2017
Copy link
Collaborator

@laughedelic laughedelic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have anything to really review here.. But I'd like to exress my personal opinion about this change. It's not obvious to me that Sonatype publisher is strictly better and should be default one in this plugin.

@laughedelic
Copy link
Collaborator

Here's what the docs say about disadvantages of both publishers:

Sonatype

  1. You do not have fine-grained control over organizations and rights like Bintray does.
  2. Publishing to Sonatype takes more time because it cannot be done in parallel, unlike Bintray:
    1. Remove excessive coupling between sonatype commands and publishSigned
    2. Is it possible to turn the commands into tasks

Bintray

  1. It requires an extra account.
  2. Synchronizing to Maven Central requires a Sonatype account and is done per package, meaning
    that if you want to synchronize to Maven Central several packages you'll need to ask for
    permissions for each one. This takes up some non-negligible time.
  3. You cannot synchronize sbt plugins to Maven Central because they do not support permissive layouts.
    Related issues here and here. The Bintray team has said that they will fix it but it has not promised a timeline.
  4. Requires the setup of specific Bintray resolvers.

I think "It requires an extra account" is equally applicable to Sonatype. Also, I think it's assumed here that everyone wants to publish to Maven Central.

Requires the setup of specific Bintray resolvers.

What is meant here? Setting your Bintray user/repo or something else? Doesn't sbt-sonatype require any setup at all?

@jvican
Copy link
Owner Author

jvican commented Oct 10, 2017

What I meant by "it requires an extra account" is that if you want to release to Central, you need both a Bintray and a Sonatype account, while you only need one if you do the Sonatype way.

The real bad thing is that asking for permission to sync up with Maven Central has to be done per package, and it does take a non-negligible amount of time (from one to three days). This is done per package. In Sonatype, you only ask for permission to release to Maven Central once, for all packages.

What is meant here? Setting your Bintray user/repo or something else? Doesn't sbt-sonatype require any setup at all?

What I meant is that if you do not release to Central, you need to set up a bintray resolver to get the packages. You force this to your users, so I think it's always better to release to Central.

Another thing against Bintray is that they have limits on the amount of binaries you can publish, and if you surpass those limits they will "suspend" your account and ask you to pay. This has happened with the sbt Bintray account.

@jvican jvican closed this in #15 Oct 10, 2017
@jvican jvican reopened this Oct 10, 2017
@jvican
Copy link
Owner Author

jvican commented Oct 10, 2017

Oops, it seems I closed this by mistake. Lemme know whether my reply makes any sense.

@jvican
Copy link
Owner Author

jvican commented Oct 11, 2017

@laughedelic Okay Alexey, if you don't have anything else to add, I'm merging 😄.

@jvican jvican merged commit fe62b62 into master Oct 11, 2017
@laughedelic
Copy link
Collaborator

Sorry, I didn't have time to reply. But you should merge anyway. I just want the docs to be more fair describing disadvantages of both options. You brought some good points showing why Bintray is not the best default option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants