Releases: sbt/sbt-bintray
0.3.0
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 casebintrayRepository
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
Fixes
- bintray now defines a setting key
vcsUrl
of typeOption[String]
. This defaults to a git push url for a remote namedorigin
or the first pushable remote. This setting was facilitated by a new requirement of bintray packages to be created with avcs_url
issue #46
Features
- You can now resolve sonatype credentials via env variables pull #48
0.2.0
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
Fixes
- published artifacts now use the
moduleName
sbt setting rather thanname
. 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
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")
- publishing sbt plugins to its organization on bintray is now possible
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
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