Skip to content

squashing publication

NCIEVS edited this page Apr 10, 2017 · 6 revisions

Modelers publish new versions of the terminology on a monthly or sometimes weekly cycle. As EVS history and concept history are captured, there is no reason to keep change histories between cycles, so for performance reasons it's good to squash the change history into a new snapshot for clients to download and edit against.

Client Server issues

There are three issues, all relating to the client server:

  • creating a new snapshot that incorporates the history file, produce the concept history, and archive files from the publication step

  • clients need to know that the snapshot they have locally is out of date and a new one is to be downloaded.

  • synchronizing any changes to project ids with pellet

Ideally this entire process can be automated in the revision diff panel. The current download and history buttons could be replaced by a squash and publish buttons.

Concept history is really just concept history consolidation. We'd like to keep the cumulative EVS history across publication cycles, but concept history will only be produced monthly. So to keep the history processing simple during publication, it's proposed to write EVS history records to two files, one which is permanent and cumulative, and the other which is created newly after each publication.

So the workflow management process would look something like:

  • weekly or monthly, the managers review commits in the revisions diff panel, accepting, rejecting, etc.. The current workflow involves weekly revision diff exercises, and on the monthly the baseline and history get published.

  • when the review is complete, the manager can squash the history. This will create a new binary snapshot on the server, and a new empty history file. The old snapshot and history files would be moved to an archive directory (configurable location, but a sub directory of the project.

  • when the manager wished to publish, this will generate a new concept history using the EVS history file for this current cycle. It will then move the current EVS and new concept history files to the same archive location based on the project. It then creates a new empty EVS history file in the project's current directory.