Cache Key Dictionary Changes

Background

https://mail.gnome.org/archives/buildstream-list/2019-July/msg00004.html

Formalize a public specification for the cache key dictionary

The element.py cache key dictionary should have a formal public specification to ensure maximal key value/performance.

Tasks

  • Make field changes summarised at list
    • remove context
    • remove project
    • remove cache
    • rename artifact-version to core-artifact-version
    • rename execution-environment to sandbox
  • Replace element with element-plugin-key, element-plugin-name, and element-plugin-version.
  • Split dependencies into dependency-keys-strong and dependency-keys-weak
  • Replace sources with a list of dictionaries of name, version, and key. This may be overwritten by the values of workspaces which is removed.
Edited by Darius Makovsky