Content Atom Model Definition
This is the Thrift definition of the Content Atom model, and the published versions of this repository are built from the autogenerated code in various languages.
Adding a new atom type
In order for the scala code generated from the thrift definitions to be packaged correctly a scala namespace needs to be included. For example for the chart atom this would be:
#@namespace scala com.gu.contentatom.thrift.atom.chart
How to release
$ sbt 'release cross'
This will release 3 artifacts to Maven Central:
content-atom-model-thrift-$version.jarcontains only the Thrift files
content-atom-model_2.13-$version.jarcontains the Thrift files and Scrooge-generated Scala 2.13 classes
content-atom-model_2.12-$version.jarcontains the Thrift files and Scrooge-generated Scala 2.12 classes
content-atom-model_2.11-$version.jarcontains the Thrift files and Scrooge-generated Scala 2.11 classes
To cross release locally use
$ sbt '+publishLocal'
The JS library should be published to npmjs, see:
npm help publish.
If you're unfamiliar with publishing on npm the following commands can be useful:
npm whoami- to find out your username (if you have created one)
npm adduser- to create a user
npm owner ls- to check the owners of content-atom.
npm owner add <username>- to add a new owner allowing them to publish content-atom.
But in summary:
Bump the version number in
Make sure you have built the latest version of the JS library with
If you've added another type, be sure to add it to
npm publishin the same directory as