Skip to content
This repository has been archived by the owner on Feb 28, 2021. It is now read-only.

Releases: sbt/sbt-bintray

0.3.0

29 Mar 13:58
@2m 2m
Compare
Choose a tag to compare

Changes

  • auto plugins friendly. this plugin is now automatically enabled if it is added in plugins.sbt, no need to reference bintraySettings
  • auto-imported keys. Keys no longer need refered to under the bintray.Keys namespace in your custom configuration
  • all keys are typically prefixed with bintray now to be more inline with current sbt plugin interface trends
  • bintrayOrganization now defaults to the name associated with your bintray credentials, including in the sbtPlugin case
  • bintrayRepository now defaults to sbt-plugins, not sbt-plugin-releases to be more inline with the sbt docs

See the readme for more details. This release included many changes to how this plugin works, hopefully for the better. If you find issues please report them

0.2.1

29 Mar 13:58
@2m 2m
Compare
Choose a tag to compare

Fixes

  • bintray now defines a setting key vcsUrl of type Option[String]. This defaults to a git push url for a remote named origin or the first pushable remote. This setting was facilitated by a new requirement of bintray packages to be created with a vcs_url issue #46

Features

  • You can now resolve sonatype credentials via env variables pull #48

0.2.0

29 Mar 13:57
@2m 2m
Compare
Choose a tag to compare

Changes

  • support for unlicensed packages /via @knshiro

Bintray requires that all published packages are associated with a named license. Under some circumstances a given package may wish to opt out of this. For these cases, you may now specify your sbt licenses setting with a value of "Unlicense". See unlicense.org for more information.

  • support for omitting license /via @ulejon

Owners of private (premium) bintray repo's may opt out of specifying an sbt licenses setting when publishing to bintray altogether by setting the new bintray setting omitLicense setting to true.

  • added deprecation notices

Sbt now defines resolver factories sbt.Resolver.jcenterRepo and sbt.Resolver.bintrayRepo which both obviate the need for bintray.Opts.resolver.jcenter and bintray.Opts.resolver.repo respectively. They will both be removed from this plugin in upcoming releases. The resolver factories for bintray have also added support for https in this release.

  • bintrayPublishSettings now includes bintrayCommonSettings

It was a mistake not doing this in the first place. bintrayCommonSettings appends changeCredentials and whoami tasks. For the best experience, it is recommended to start with bintraySettings and override the defaults as needed.

0.1.2

29 Mar 13:57
@2m 2m
Compare
Choose a tag to compare

Fixes

  • published artifacts now use the moduleName sbt setting rather than name. This fixes some normalization when you specify unconventional project names.

Features

The general theme for this release is to reduce publishing pain for those who have special publishing needs. Bintray.com reduces this pain rather well. Bintray-sbt exposes those pain killers to your sbt build.

  • PGP sign your published artifacts remotely

PGP is an industry standard for signing your work in a way that can be verified by interested parties. You can now store you PGP credentials on bintray so that you can sign artifacts from anywhere. Once you've uploaded your PGP keys to bintray's servers, you can sign your published artifacts with the remoteSign sbt task ( your pgp passphrase is required )

bintray::remoteSign

Note, this is a voluntary action. It does not run when you publish, run the publish task first, then run remoteSign. This action will publish the signed artifacts for the current version. Note that if you want to sign your artifacts locally rather than remotely, there's a well-maintained sbt plugin for that as well.

  • sync to maven central

Bintray.com puts you at the center of control for publishing arbitrary content, including maven artifacts. Because bintray decentralizes published content, it's host's are most likely not in the default resolver chains of most build tools, including sbt. Until then, your users will have to append a bintray resolver for your artifacts. To address this, bintray now supports maven central synchronizing of artifacts for those who's bintray packages are linked to jCenter and who have a registered account on sonatype oss.

To have your bintray-published artifacts sync'd with maven central, you can simply run the syncMavenCentral task ( user sonatype credentials are required if you don't have a set of sbt publishing credentials already defined for the "oss.sonatype.org" host)

bintray::syncMavenCentral

Note, this is a voluntary action. Syncing packages to maven central has some extra requirements. Most are covered in the article here and here.

  • convenience for maven repo convention

Typical bintray usage in sbt will be resolving packages from maven repositories. To append a bintray resolver in sbt you could previously add the following to your build definition

resolvers += bintray.Opts.resolver.repo("user", "maven")

The bintray convention of storing maven style packages in a bintray repo named "maven" is not likely to change so in most cases you may now wish to simply use the following in your build definition

resolvers += bintray.Opts.resolver.mavenRepo("user")

0.1.1

29 Mar 13:56
@2m 2m
Compare
Choose a tag to compare

Enhancements

  • added bintrayOrganization key for optionally publishing to a bintray organization rather than a user account

You can set this in your build definition with

bintray.Keys.bintrayOrganization in bintray.Keys.bintray := Some("strength-in-numbers")

In your plugin's build definition, add the following

sbtPlugin := true

seq(bintraySettings:_*)   

That's it! Just publish as you normally would and you should find your package listed under the sbt releases repo.

Note: Be sure to document the following requirement for consumers of your plugins to include the following resolver. This only needs appended once.

resolvers += Resolver.url(
  "bintray-sbt-plugin-releases",
  url("http://dl.bintray.com/content/sbt/sbt-plugin-releases"))(
    Resolver.ivyStylePatterns)
  • Unpublishing is now possible. It's generally a bad practice to remove a version of a library others may depend on but sometimes you may want test a release with the ability to immediately take it back down if something goes south before others start depending on it. Bintray allows for this flexibility and thus, bintray-sbt does as well.

You can unpublish a version with the unpublish task

bintray::unpublish

0.1.0

29 Mar 13:55
@2m 2m
Compare
Choose a tag to compare

Initial Release

Intoduce your sbt console to bintray, a free publishing platform that puts you in control of your binaries.

Bintray allows users to link published packages to other repositories. You may request your package be linked and aggregating repository like jcenter, an analog to mavencentral, so your users will fewer resolvers in their dependency resolution chain while you still get to maintain ownership over your packages hosting.

Get going by creating and account on bintray and installing bintray-sbt by adding the following to a sbt plugins.sbt file in your project's project directory.

addSbtPlugin("me.lessis" % "bintray-sbt" % "0.1.0")

Then mix in the bintray-sbt settings to your projects build definition, usually a build.sbt file in a project's root directory.

seq(bintraySettings:_*)

Not a publisher? No problem. Add the following instead

seq(bintrayResolverSettings:_*)

This will automatically add jcenter to your resolver chain.

Your publisher only publishes to their own bintray repo? Add the following to your build definition

bintray.Opts.resolver("bintray-username", "bintray-repo")

For more information see the project readme