Bintray is a platform for binary software files of all types, and uploading files is one of its key functionalities. Users can upload their data in several ways (manually using the UI and through a variety of tools using APIs); this data is stored in an organized, hierarchical structure that is relevant for the interaction between software modules and between users.
Upload Functionality Features
The upload functionality of Bintray includes the following features:
Full Control: The material you upload to Bintray remains your material. It may be associated with the material of others and you may work cooperatively with them, but unless you willingly transfer ownership, you retain full control of your material and full rights to it.
Import from GitHub: Optionally, instead of uploading material stored locally, you can import materials into Bintray from your GitHub account.
Automatic Creation of Versions: Automatic creation of versions is a feature of Bintray that kicks in when you upload content with the Bintray REST API tool.
When a file is uploaded automatically to Bintray via the Maven tool, if the file is uploaded to a path that does not yet exist, this path will be created.
When a file is uploaded automatically to Bintray via other tools, Bintray can create versions automatically if these not-yet-existing versions are indicated in the upload’s HTTP headers (for those tools that support HTTP headers in the configuration) or matrix parameters.
Automatic Index Calculation: Yet one more of the cool features of Bintray is automatic indexing. The index is calculated asynchronously by a background job and is updated every time new data is uploaded (or when existing content is deleted). This spares the user from having to use yet another third-party tool just for the indexing. Automatic indexing applies only to Maven, YUM, RPM and Debian repositories.
In Bintray, the upload process is simple and straightforward. A few points, however to note are as follows:
Licensing: Every package uploaded to Bintray must include a reference to the license under which it may be used, modified and redistributed by the users.
Import Options: If your material is already published in GitHub, you can easily and systematically import it from GitHub to Bintray without the need to re-upload it.
Advanced Support: Although Bintray supports the uploading of any type of software, some package formats (such as Docker, Maven, Debian and others) enjoy advanced support such as automatic calculation and indexing of metadata.
Software Licensing for Packages in Bintray
For every Open-Source package posted in Bintray, the owner must indicate by which license others users may use, reproduce and redistribute the software. The choice of which license to assign the package is up to the owner of the package and in the Bintray UI, the owner may choose from dozens of industry-standard OSS licenses, request a new OSS license, or create a proprietary license. (For packages distributed under a EULA, please refer to Managing Products and EULAs.)
It is possible to assign more than one license to a package.
Assigning a license for the use of your software is done for each package as it is being created. It can also be changed when the package is edited.
To assign a license to a package:
When creating a new package (or editing an existing package), in the Create Package page (or the Edit Package page) Package Details form, click inside the Licenses field.
A drop-down list opens in this field, including all the dozens-upon-dozens of optional licenses that are available today.
Select the desired license from the drop-down list.
Click Save Package or Update Package depending on whether you’re creating a new package or editing an existing one.
The selected license will now appear in the Licenses field.
To remove a license, in the Package Details form, click the encircled "X" button on the right side of the license you want to remove.
Requesting a New OSS License
If none of the offered licenses match your needs you can also ask for a new OSS license to be added to the list. This is, of course, subject to the approval of the Bintray team.
To request a new license for your package:
Click the Request new OSS license type. This will open a Compose Message page with an email draft requesting the new OSS license from the Bintray team.
Enter a URL containing information about the license, in the text box below the subject.
Optionally, in the message body text box (the one that says “Please add this license to Bintray’s list of available OSS licenses”), add any additional information that’s related to your license request.
Note: Bintray does not accept Creative Commons licenses for packages; these licenses were never meant to be used for software. For more information, please visit the Creative Commons website.
Creating a Proprietary License
You can also create a custom license that’s specifically associated with an organization or user, and attach it to a package.
To add a proprietary license for your packages:
Create the license by using the Create Proprietary License Bintray REST API.
Once the license is created, it will be available to use from within your organization or user. Attach the license to the package by selecting it from the “Licenses” field dropdown within the UI or by using the Packages Bintray REST API. Proprietary licenses are highlighted in yellow.
Note: Whereas default OSS licenses, available in Bintray, are displayed on your package with a link to the website describing the license, proprietary licenses are not displayed with a link.
How to Upload
Uploading involves a number of steps and can either be done manually (using the Bintray UI) or automatically (using Bintray along with a build tool or package management tool) by using one of the two procedures below.
To upload material manually or automatically (via tools):
Log in to your account.
Create a Repository. Repositories, or repos, are logical categories of information that store your uploads and relevant metadata in them. Repos can contain many downloadable software units in them.
Create a Package. Contained within a repo, each package is a smaller logical unit for storing a software module or a group of files.
Create a Version. Version means a version of a package. Any update or change in the information uploaded is a new version. A version is basically a collection of uploaded software files.
Note: You may create the version manually (in the Bintray UI) even if the upload is automatic or you may, while uploading, encode the automatic creation of the version in the upload, in the HTTP headers, matrix parameters or (in the case of the Maven build tool) by indicating the path for upload with the version to be created.
Publish the Contents. Publishing means going public with the files you have uploaded. Only after material is published is it visible to other users. Unpublished material is visible only to the user who uploaded it, in case this user changes their mind and wants to retract the upload.
Note: When a file is uploaded automatically, it may also be published automatically (encoded in the upload) or it may be published manually later.