Data Model Changelog ==================== Record changes to the ZooKeeper data model which require API version increases here. When making a model change: * Increment the value of ``MODEL_API`` in ``model_api.py``. * Update code to use the new API by default and add backwards-compatibility handling for older versions. This makes it easier to clean up backwards-compatibility handling in the future. * Make sure code that special cases model versions either references a ``model_api`` variable or has a comment like `MODEL_API: > {version}` so that we can grep for that and clean up compatability code that is no longer needed. * Add a test to ``test_model_upgrade.py``. * Add an entry to this log so we can decide when to remove backwards-compatibility handlers. Version 0 --------- :Prior Zuul version: 4.11.0 :Description: This is an implied version as of Zuul 4.12.0 to initialize the series. Version 1 --------- :Prior Zuul version: 4.11.0 :Description: No change since Version 0. This explicitly records the component versions in ZooKeeper. Version 2 --------- :Prior Zuul version: 5.0.0 :Description: Changes the sempahore handle format from `-` to a dictionary with buildset path and job name. Version 3 --------- :Prior Zuul version: 5.0.0 :Description: Add a new `SupercedeEvent` and use that for dequeuing of superceded items from other pipelines. This only affects the schedulers. Version 4 --------- :Prior Zuul version: 5.1.0 :Description: Adds QueueItem.dequeued_missing_requirements and sets it to True if a change no longer meets merge requirements in dependent pipelines. This only affects schedulers. Version 5 --------- :Prior Zuul version: 5.1.0 :Description: Changes the result data attributes on Build from ResultData to JobData instances and uses the inline/offloading paradigm from FrozenJob. This affects schedulers and executors. Version 6 --------- :Prior Zuul version: 5.2.0 :Description: Stores the complete layout min_ltimes in /zuul/layout-data. This only affects schedulers. Version 7 --------- :Prior Zuul version: 5.2.2 :Description: Adds the blob store and stores large secrets in it. Playbook secret references are now either an integer index into the job secret list, or a dict with a blob store key. This affects schedulers and executors. Version 8 --------- :Prior Zuul version: 6.0.0 :Description: Deduplicates jobs in dependency cycles. Affects schedulers only. Version 9 --------- :Prior Zuul version: 6.3.0 :Description: Adds nodeset_alternatives and nodeset_index to frozen job. Removes nodset from frozen job. Affects schedulers and executors. Version 10 ---------- :Prior Zuul version: 6.4.0 :Description: Renames admin_rules to authz_rules in unparsed abide. Affects schedulers and web. Version 11 ---------- :Prior Zuul version: 8.0.1 :Description: Adds merge_modes to branch cache. Affects schedulers and web. Version 12 ---------- :Prior Zuul version: 8.0.1 :Description: Adds job_versions and build_versions to BuildSet. Affects schedulers. Version 13 ---------- :Prior Zuul version: 8.2.0 :Description: Stores only the necessary event info as part of a queue item instead of the full trigger event. Affects schedulers. Version 14 ---------- :Prior Zuul version: 8.2.0 :Description: Adds the pre_fail attribute to builds. Affects schedulers. Version 15 ---------- :Prior Zuul version: 9.0.0 :Description: Adds ansible_split_streams to FrozenJob. Affects schedulers and executors. Version 16 ---------- :Prior Zuul version: 9.0.0 :Description: Adds default_branch to the branch cache. Affects schedulers. Version 17 ---------- :Prior Zuul version: 9.1.0 :Description: Adds ZuulRegex and adjusts SourceContext serialialization. Affects schedulers and web. Version 18 ---------- :Prior Zuul version: 9.2.0 :Description: Adds new merge modes 'recursive' and 'ort' for the Github driver. Version 19 ---------- :Prior Zuul version: 9.2.0 :Description: Changes the storage path of a frozen job to use the job's UUID instead of the name as identifier. Version 20 ---------- :Prior Zuul version: 9.2.0 :Description: Send (secret) job parent and artifact data via build request parameters instead of updating the job. Affects schedulers and executors. Version 21 ---------- :Prior Zuul version: 9.3.0 :Description: Add job_dependencies and job_dependents fields to job graphs. Affects schedulers. Version 22 ---------- :Prior Zuul version: 9.3.0 :Description: Add model_version field to job graphs and index jobs by uuid. Affects schedulers. Version 23 ---------- :Prior Zuul version: 9.3.0 :Description: Add model_version field to bulid sets. Affects schedulers. Version 24 ---------- :Prior Zuul version: 9.3.0 :Description: Add job_uuid to NodeRequests. Affects schedulers. Version 25 ---------- :Prior Zuul version: 9.3.0 :Description: Add job_uuid to BuildRequests and BuildResultEvents. Affects schedulers and executors. Version 26 ---------- :Prior Zuul version: 9.5.0 :Description: Refactor circular dependencies. Affects schedulers and executors.