Artifactory and Bintray

Continuing the discussion from Who should have write access to deploy to our maven repository?:

I’m doing more looking into this, and have a number of questions. I don’t want to muddy them all into one epic post that is impossible to follow, so I’m going to try to break them up into several focused threads. Here is my first question…

Can we clarify the role of Bintray and Artifactory within OpenMRS? I feel like the terms “JFrog”, “Bintray”, and “Maven Repository” are sometimes used inaccurately. Here is my understanding:

  • JFrog is the company that makes both Bintray and Artifactory. It is not a product itself.

  • Artifactory is where all Maven artifacts are deployed - all snapshot and non-snapshot releases of the core platform, community modules, tools, etc. These are mostly *.jar files. This is what Maven is able to read and write to, and what tools like the SDK and distribution poms utilize to build their distribution zip files and other artifacts. When we talk about our “Maven Repository” we are talking about Artifactory.

  • Bintray is where all published omods are hosted. This is really just a convenience to take released versions out of Artifactory, rename them appropriately, and publish them. For modules this means taking something released to Artifactory as mymodule-omod.1.2.3.jar and pushing it to Bintray as mymodule-1.2.3.omod. This is then what the addonindex uses to show what versions of modules are available.

So, a question is: what value is Bintray providing here? I see that maybe it is providing value for owa zip files, as there may be no where else to publish these. But could we not just keep all of our omods in Artifactory as mymodule-omod-1.2.3.jar and point the addonindex into this to show these versions available as “mymodule” version 1.2.3?

I presume also that for most other artifacts (Docker, Javascript, etc) we are using standard cloud platforms for these - Docker Hub, NPM, etc and not planning to host these on our own Bintray. Thoughts as to the value of maintaining Bintray?

@cintiadr / @raff / @dkayiwa - am I understanding this distinction correctly?

Thanks! Mike

2 Likes

Bintray can also store maven artifacts and we suggest to use it (as it’s free) for all who cannot publish jars to our Artifactory. It’s described at https://wiki.openmrs.org/display/docs/Module+Release

Apart from that it’s a CDN so it should provide better download speeds across the globe. It also gives us download stats, user rates and ability to store other metadata, some of which are (or could be) displayed in the Addons index.

1 Like

I’m guilty of that. I use ‘Artifactory’, ‘JFrog’, ‘Maven Repository’ as synonymous. While not technically true, that’s how my brain is wired :smiley:

Your distinction is correct.

Also correct.

I don’t have a good answer for that, and I asked the same thing. Is having a CDN important enough for us to keep all the glue to duplicate artefacts from Artifactory to Bintray? It’s not clear to me.