Links

Third Party App Publishing Checklist

"Good checklists, on the other hand, are precise. They are efficient, to the point, and easy to use even in the most difficult situations. They do not try to spell out everything--a checklist cannot fly a plane. Instead, they provide reminders of only the most critical and important steps--the ones that even the highly skilled professional using them could miss. Good checklists are, above all, practical." ― Atul Gawande, The Checklist Manifesto: How to Get Things Right
This page contains a "checklist" to go over before you publish an app to customers. As with any guide if you have reason to deviate, it is recommended you follow your intuition and deviate.

App Checklist

dxapp.json and Source Code

  • In details field specify: whatsNew, and citations.
  • In details field, specify anupstreamProjectskey whose value is an array of hashes, each of which describes the licenses associated with software or packages included in this app, as discussed here. This is required to ensure compliance with open-source licenses. For each entry, specify software's name, repoUrl, version, license, licenseUrl, and optionally author.
  • Verify regionalOptions contains regions for ALL supported app regions.
  • Set applicable timeout and restart policy in runSpec.
  • version field, set proper semantic versioning.
  • Contemplate setting "openSource": true. Default is False, set at your discretion.
  • Add a unit test (or 2, or 3...) for your app.

Documentation

  • Write Readme.md and (optional) Readme.developer.md
  • Build as app on DNAnexus platform, bill to org-your_handler (DO NOT PUBLISH YET). Remember the unpublished app ID, "app-xxxx".
  • Read documentation to double check. (Unpublished app URL will be available to developers as: https://platform.dnanexus.com/app/app-xxxx)

Before Publishing the App

  • Build as an app on DNAnexus platform billed to org-your_handler (DO NOT PUBLISH YET). Remember unpublished apps can be viewed by developers on the platform under https://platform.dnanexus.com/app/app-xxxx.
  • Test it on expected data.
  • Verify entity-ids are specified for all supported cloud regions in the app.
  • Add Developers via CLI call
  • Add org-dnanexus_tools_admin as a Developer so DNAnexus can help add authorizedUsers PUBLIC when needed.
  • Add authorized users via CLI call
  • Email [email protected] so the DNAnexus tools admin team is notified and can work with you to make the app PUBLIC.
  • Publish via CLI call
  • Verify the versions that appear on the platform are the intended versions
Congratulations! You've published an app. Feel free to publicize your app and let your users know your tool is available in the cloud.