8. Publish and Update
For all updates, it is good practice to update the RELEASE_NOTES.md file in the root directory for the module.
8.1. Publish all git commits
Make sure you have run git add
and git commit
on all the changes in your app’s codebase, then git push
to your public github URL. If you are part of a team writing the app, all the commits need to be pushed the the repo you want to use for KBase.
8.2. Appdev
Appdev (https://appdev.kbase.us) is a separate KBase narrative server that is used by app developers like yourself to publish in-progress versions of their apps and test and share them using real data. Registering and updating you module will be
done on the appdev server. After you click on the Sign In
button and pick you authentication type, you will
encounter a screen with:
As the page says, direct login doesn’t work and the page will go away when a solution is implemented. If you are already logged into production (https://narrative.kbase.us), start with step 2. Otherwise start at step 1. Step 4 will leave you at a page with no more hotlinks. In step 5, you will click on the Dashboard icon on the left and will be taken to the Dashboard that is the starting point in other environments.
8.3. Register with KBase
To see your app in a narrative, the module must first be registered. After you have logged into appdev, go to the Module Registration page. Enter your public git repo for the URL:
and click on Register
. Wait for the registration to complete (it may take a while on the first registration as it has to build the Docker image that is specific to your module from scratch).
This page can be used for both the initial registration and registering updates. Because you may be registering the module several times, a link to the page is also found at the top of the App Catalog.
Note that you must be an approved developer to register a new module. You can apply for a KBase developer account by going to https://accounts.kbase.us/index.php?tpl=request_identity.tpl. If you are a US citizen, your account can be created within a few days. For foreign nationals, it may take several weeks (and, in a few cases, you may not be able to get a developer account). Non-US citizens will be asked for additional information in order to process their application. Once your account is approved, contact us with your username and ask to be added to the developer list.
Once your app has been registered, it will be available in the AppDev environment in KBase. Go to Appdev (https://appdev.kbase.us) and start a new Narrative. Click on the ‘R’ in the Apps Panel until it switches to ‘D’ (“develop”) to show apps that are still in development. Find your new app by searching for your module and run it!
Your app will now also be visible in the App Catalog when displaying Apps in development.
Use the dropdown for Version
and select “Apps in Development”.
Once the module has been registered your narrative needs to know that you want to test apps in
the development environment. Go to Appdev (https://appdev.kbase.us)
and create or open a narrative. In the APPS Panel
on the left, click on the R
to change
the environment from released
to beta
.
Click on the B
to change from beta
to a D
for development. You new app should be
among the apps listed in the APPS Panel
. On the documentation page for “Fully documenting your app”,
you can assign one or more categories for your app. If you didn’t assign a category, it will be
listed with the Uncategorized
apps. Your app should appear when you click on the >
and expand the list of apps in the category. On the same documentation page, you hopefully selected an icon
for your app. Creating a distinctive icon makes it easier to find in the list. It is ready for
you and any developers to test the app.
8.4. Updating and Beta
The module must be re-registered every time you make updates. You can navigate to the module page using the App Catalog or go directly to:
https://narrative.kbase.us/#appcatalog/module/MODULE_NAME
To update an app, open the page, fill in the github
public URL, and then click the REGISTER button. You can optionally specify a particular commit hash for your repository (useful if you want to test a feature branch prior to merging into master) or leave this field blank to build from the latest commit on the master branch.
As you make changes to your Module, you will need to re-commit those changes to the git repo, and then re-register. The KBase SDK Catalog service will automatically pull the most recent version. If for some reason you wish to revert to an older version, you can add the hash key of that older commit, which you can find by viewing the git log
.
The ver (version) in the spec.json
file becomes important once an app has been released to prod. The version needs to be updated for each subsequent release. The list of authors may need to be updated as well if additional people contribute to revisions.
Once you are happy with your app, you can click on the option to expose it in beta
. The beta
environment is exposed in both appdev and in production (https://narrative.kbase.us). As a beta
app, you can have
other KBase users test the app in production and provide you with feedback.
When you have made you last changes and want to release the app to beta
, go to the App Catelog page
https://narrative.kbase.us/#appcatalog/module/MODULE_NAME for your module. The top header on the page will have “Module Catalog”. If you are the module owner,
you will see >
next to the words “Module Admin Tools”. Click on the >
. The window will expand and you now have a link for ‘Migrate Current Dev Version to Beta’. Click on the link and the app is in beta
and available for all users to try.
8.5. Release to Production
The final step is to get the app released. It is on the same page as requesting beta
but the button you click
is called ‘Request New Release’. The KBase Implementation Team staff will review the module and apps and make sure that
they meet both the Developer Guidance and the Must Haves.
Important
Please bear in mind that for public release, your module must meet all the requirements laid out in the KBase SDK Policies. We reserve the right to delay public release of SDK Modules until all requirements are met. Please take the time to familiarize yourself with these policies to avoid delay in releasing your Module.