Link Search Menu Expand Document

ASWF CI Working Group

Meeting: 6 March 2019

Attendees

  • Daniel Heckenberg (Animal Logic, TAC Chair)
  • Thanh Ha (Linux Foundation)
  • Jean-Francois Panisset (VES Technology Committee)
  • Jeff Bradley (Dreamworks)
  • Aloys Baillet (Animal Logic)
  • Larry Gritz (Sony Imageworks)
  • Mike Dolan (Sony Imageworks)
  • Trevor Thomson (Blue Sky)
  • Doug Walker (Autodesk)
  • Gordon Bradley (Autodesk)
  • Dan Bailey (ILM)

Agenda & Notes

ASWF CI Goals for Year 1

  • 6 projects:

    • Environment configuration?

    • CMakeTools?

  • CI with VFX Reference Platform dependencies

    • Commercial components

      • Build

      • Test

  • Stretch goals:

    • Downloadable and installable artefacts (with signing?)

    • Windows, Mac support

    • Possibly GPU support

Circle CI vs Jenkins

  • (Thanh) Update

    • CPU cores and memory, can we get a container with more than the default? https://circleci.com/docs/2.0/configuration-reference/#resource_class Resource Classes are used to manage the resources you can request, “5 credits / min / 1 CPU core / 2GB RAM”, scaling based on multiple of that basis. 100 credits is around $0.06. They also have performance flavors of containers, on Enterprise plan we get access to performance systems. Backend is Amazon AWS.

    • GPU: in Resource Classes you can pick containers with GPU access, similarly for Mac access. Get 1 Mac builder for free for Open Source projects (a certain number of minutes per month).

    • Windows: CircleCI is currently working on it, would need to do hybrid of CircleCI and AppVeyor until Windows support is available.

    • Daniel: some differences in configuration between Linux and macOS, how divergent would Windows be? Thanh will check with CircleCI

    • Self hosted CircleCI, how is it delivered? It is delivered as AWS Teraform configurations.

    • https://circleci.com/docs/2.0/oss/ Documentation on how to set up OSS projects, get discount + some free resources.

    • Cost of Enterprise Plan? Based on number of users and time used, but not charged for users for OSS projects, just amount of time used.

    • How would that compare to raw costs from AWS (how much do they mark it up)?

    • Gordon: what are the implications on all the studios using CircleCI? Thanh: organizations would have to go with the self hosted option. Individual contributors could also use the free tier under their own account. Dan: could be issues if free tier doesn’t have access to GPU instance for instance.

    • Daniel: CLI utility can be used for local builds, uses Docker for local builds.

    • Daniel: does moving to a “modern” CI system make it easier to move between different “modern” CI systems?

    • Thanh: should we write jobs using Ansible, there is a CI system that uses Ansible Playbooks. What is the minimum amount of bootstraping you need to do in a project to get things going with the CI system, and can we do the rest with Ansible.

    • Dan did some work to try building OpenVDB on CircleCI: not very difficult to transition from Travis, everything is YAML build, customizable steps are useful, also natively supports build artefacts. They often hit the 50 min build on Travis, 5h limit on Cicle definitely helps. Also somehow CircleCI builds seem quicker. CircleCI doesn’t differentiate between PR and commit changes.

    • In last OpenVDB TSC meeting, they are waiting for decision on direction ASWF is going.

    • Larry would like to see OpenVDB config files for CircleCI builds, Dan to share a branch.

Project CI requirements

  • All

    • CII badge static analysis
  • OpenVDB

    • (Thanh) Houdini for plugin build & test? Going to use download API, https://www.sidefx.com/docs/api/download/index.html Working on a simple CLI tool to wrap the API. Dan: that API is promising and a big improvement.

    • Has work been done on static analysis? Dan: no major progress so far, clang-tidy looks promising.

  • OpenColorIO

    • Cross-platform (including GPU) CI prototype. Mike: still working on moving the repo to ASWF, dealing with external dependencies.
  • OpenCue?

VFX Reference Platform Dependencies and Package Management

  • Posted survey of package management systems for C++ to mailing list

  • Further discussion

  • Jeff: DW not planning to use cmake / Conan internally, so they are more in watching mode. Trick to include merge version numbers seems useful. They created a Rez package to compile all packages as debug or non-debug.

  • Aloys: discussion email thread on survey of package management systems, when building OpenImageIO for instance need to build the right dependencies, need to build upstream dependencies (boost, OpenEXR). Need to choose various “slices” of the build: release, release with debug symbols, version of VFX Reference platform, C++ version, make that available as an artefact. But what if you want a debug build? Package managers typically don’t let you pick and choose various build options. Conan seems pretty good at doing that. Rez variants can also be used for that, but can end up with mix of incompatible variants.

  • Aloys: a good talk on survey of package managers

  • Conda is a more general package manager for the scientific community

  • Rez doesn’t have explicit support for storing your packages

  • Aloys created Conan repository as an experiment. Conclusion is that we would need to wrap Rez with something else for external package download, whereas Conan supports this out of the box.

  • Jeff: Rez is not very viable for ASWF CI builds on cloud systems.

  • Aloys: we could provide a set of Rez recipes which are compatible with the build artifacts we generate.

  • Dan: what are the ASWF goals with respect to build artifacts? Daniel: CI is the first / foremost goal, but dependency management discussion came up quickly as a key component / requirement of the CI. There is no out of the box solution that everyone agrees on. Every studio has combination of legacy / proprietary tooling, Rez is an industry specific solution to parts of these problems, but doesn’t work all that well with CI / package repository. Dan: could every project build all of its dependencies? Or is sharing dependencies a primary goal? Jeff: not planning to use ASWF artifacts in the short term due to internal requirements. Would love to be able to do so eventually. Daniel: when the LF set up the initial repos they did it as simply as possible, used Linux native packagement to grab dependencies, but quickly ran into the need for dependency management. Aloys: we need guaranteed rather than accidental compatibility, don’t want packages built with slightly different build options (for instance). For instance Autodesk compiles TBB in a specific way, need to make sure you build it the same way, and there’s no well documented build recipe. Sharing those build recipes really helps to make this explicit.

  • Dan: sees build artefacts as mostly targeting the hobbyist developer, large studios will prefer to build everything from source. Can get tricky for builds that depend on quickly changing dependencies like Houdini daily builds for OpenVDB plugins for instance.

  • Daniel: challenge from Dan to keep to immediate and tangible goals, especially for projects already in ASWF. OpenVDB currently uses what the OS provides for EXR, Boost (apt-get), but want to better control version of sub components. Need to limit the permutations of the build matrix, one approach is to build with all the latest dependencies, and then do additional build which varies individual components / options.

  • Daniel: we need a VFX Reference Platform build of OpenVDB as an experiment. Dan: that should be done on top of CircleCI if we decide to move to that. Larry: maybe not wait after the decision to go to Circle, since that work could inform that decision. Dan: for now stuck in Travis “stages”, would rather do that in CircleCI.

  • Jeff: what needs to happen next to make the decision on moving to CircleCI? Thanh: we can start using the free tier right away.

  • Larry: we will need some kind of estimate of how much cost will we be looking at. Dan: there’s a tool like that for Travis to get how many build minutes have been used for a project.

  • Daniel: challenge to formulate a clear, achievable goal, will send email to tac mailing list.

Next Steps

  • Follow up meeting: 20 March 2019