Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration to Cicero 1.0 & Outage - 2020-03-103 #123

Open
dselman opened this issue Mar 3, 2021 · 1 comment
Open

Migration to Cicero 1.0 & Outage - 2020-03-103 #123

dselman opened this issue Mar 3, 2021 · 1 comment

Comments

@dselman
Copy link
Contributor

dselman commented Mar 3, 2021

Discussion 🗣

On 2020-03-03 we had an outage of models.accordproject.org. This is a report of what happened and lessons learned.

Detailed Description

We merged #121 to master, which updates the build script to build and validate the models files using Concerto v1, as well as using Concerto v0.82.x.

Initially there was a short outage because the updated run.js build script now requires Node >= 12.x and while this was used locally, Netlify was using an older Node.js runtime. This was quickly resolved by adding a .nvmrc file to the root of the repository, indicating to Netlify which version of Node.js to use. The engines statement in package.json was also updated.

The more serious issue was that while run.js was updated to either build using Concerto v0.82 or Concerto v1, it cannot build using both, meaning that models that are incompatible with the Concerto version were skipped during the build.

The impact was that once the library had been built and published using Concerto v1, the cicero/runtime.cto file was skipped in the build - which is required to archive existing Cicero templates.

Note that unlike the cicero-template-library repo within this repo we do not check-in and version the results of running the build. They are created by the build, and then the results are served as static files by Netlify.

# Lessons

  1. Deploy model changes for v1 to a v1 branch, not to master
  2. Investigate whether it is possible to test the results of the running the build, prior to publication by Netlify. For example, how many namespaces do we expect, or how many model files?

Questions

  1. Model repository changes can break existing templates - however it is not clear how we can run those tests prior to publication of the models.
  2. How do we want to host v0.82 & v1.0 compatible models? If we want to use the same site, then we will need to commit the results of running the build, as we do for templates
  3. How do we want to indicate the graph of v1 compatible models? We could create new namespaces, version the files, or create a new domain?
@jeromesimeon
Copy link
Member

A preliminary set of answers:

  1. this one is hardest, I think proper versioning but also persistent publication like we do for the template library with an index of some kind
  2. I think more importantly: prevent overriding of existing models, like we do for the template library
  3. Versioning scheme for building for multiple concerto models, along with ability to identify which model is compatible with which version is in 1.0.0-alpha.5 and feature(1.0) New base AP models + Migrate to Concerto 1.0 #128

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants