-
Notifications
You must be signed in to change notification settings - Fork 7
Deploying new synth with otcetera services
Karen Cranston edited this page Jun 25, 2020
·
13 revisions
See Late-2019-tree-deployment-steps
Steps for deploying a new tree from 2017 are at https://github.com/OpenTreeOfLife/germinator/blob/master/new_synthetic_tree.md
@bredelings and @mtholder are working on reimplementation of tm-lite and conflict services focused on:
- low RAM requirements,
- easy deployment of a new tree,
- flexibility (particularly wrt the conflict service inputs), and
- maintainability of the code (particularly wrt treemachine code which was originally the tree synth engine).
It seems nice for users to be able to see "current", "previous", and "next" versions of the tree.
The schedule would be something like:
- frequently: build new PATCH-level candidate release. Visible to users as "next" tree with: * rapidly changing "PATCH" version numbers, * synth output tar ball only stored for current PATCH for a given MINOR version * complete store all needed SHAs for all PATCH versions * serve a diff log from previous MINOR version for each PATCH * serve a diff log comparing to previous PATCH in this MINOR series
- periodically (e.g. monthly or as needed) bump "current" -> "previous" and "next" -> "current" * this freezes the last PATCH what becomes the "current" tree. * the previous "previous" tree is no longer served, but available as an archive. * Usually, this would roll the PATCH version to 0 and increment the MINOR version number. For big changes (or big taxonomy changes) this step would roll MINOR to 0 and increment the MAJOR.
Redeploying a tree should entail:
- building the tree with propinquity
- compressing the output
-
scp
archive to the api server. - nudge a private API method to tell the server to check for a new version of the synth tree.
- improve propinquity's version detection to call a (as yet unwritten)
http://api.opentreeoflife.org/get_next_synth_patch_version(bool bump_minor=False, bool bump_major=False)
web service call. - write this to the propinquity config file.
- build as we currently do
- tar and compress as we currently do
scp propinquity-out.tar.gz api:~/uploading/opentree{#} && ssh -t api "mv ~/uploading/opentree{#} ~/staged/opentree{#}
http://api.opentreeoflife.org/check_for_newly_deployed_tree
triggers a check of the local filesystem for the next version of the tree. If found it can:
- validate contents of archive
- launch a local instance of the otcetera web service on the appropriate port
- if that works, store in memory the mapping of version # to port #
- push tar balls to files
- write and push release notes
- write and push new version of a statistics file