Oz Updates - Finishing up release of updated Vega libraries with Cljsjs

Published at: 2020-01-17 1:30PM

Tags: clojure, oz

Jan 16, 2020

Just finished finalizing and publishing my 1st update post. Now time to sort out the build process :-)

The problem with the update script is still that changes I make to the build.boot files for things like new build dependencies (as described in my post last week, a new Cljs version).

Jan 17, 2020

Picking up from last night. More script debugging:

  • Realized I was using if [ ! -z VEGA_UDPATES ] instead of if [ ! -z $VEGA_UPDATES] and the like in a few places; fixed
  • Realized I missed some details in copy paste with the extern generation commands; -n vega -> -n vl.
  • Misnamed vega-lite min asset filename (same as non-min, leading to checksum mismatch errors)

After all that I finally started getting things working! There were a couple more realizations I had about how to improve the process:

  • Some changes to the assumptions about what to do with --local-updates changes: Instead of committing in an initial commit after applying stash, leave to get committed separately for each package directory to avoid accidentally building incomplete updates for Vega-Lite, Vega-Embed etc.
  • When present, use the CLJSJS_PACKAGES_FORK to print out a GitHub link for opening a PR for each of the repos

At this point everything is working, and I've managed to get 3 PRs up for review:

As soon as these make their way through review, I look forward to minting a new release of Oz!


This is now finally getting to a point where I think a random person could come along and potentially use this script!

The steps are:

  • Create a fork of the https://github.com/cljsjs/packages repository on GitHub.
  • Clone Oz (git clone git@github.com:metasoarous/oz.git && cd oz), open up the bin/update-cljsjs.sh script and edit the v_version, vl_version, etc. variables as you wish.
  • Run with CLJSJS_PACKAGES_FORK= ./bin/update-cljsjs.sh.
    • If you hit an issues and need to debug, make whatever necessary changes to the cljsjs-packages repository created by the script, and rerun with the --local-changes flag.
  • Click on the PR links printed out in order, review for sanity, and submit PRs with helpful messages

This should download all the new JS assets, generate externs and checksums for them, and organize all the changes into a set of branches, push those branches to your GitHub fork, and create PRs for each, ready for the Cljsjs folks to review :-) If you have trouble with this process, please holler at me in a GitHub issue, and I'll do what I can to help you with a release.

Stay tuned and thanks for reading!

Linked in and Twitter icons by Anas Ramadan and Elegant Themes from Flaticon, licensed CC BY 3.0

Content Copyright 2019, Christopher T. Small; Site generated by Oz