Description
I'd like to explore how we could generate changelog YAML files for ML, in a similar manner to what we now do for Elasticsearch. Right now, the ES parts of the notes can be completely generated from the YAML files, but we then have to manually merge in the ML-specific parts. It would be ideal if the notes could be generated with no manual intervention, bar curating the contents of the YAML files themselves.
It would be a simple matter to tweak the existing HOMER support to output ML-specific asciidoc (i.e. the {ml-pull}
links), and the workflow would be very similar to ES:
flowchart LR
D([Dev]) --> |Raises| P[ml-cpp PR]
P --> |Notifies| H[Homer]
H --> C{Create or update\nchangelog?}
C -->|No| Ig([Ignore])
C -->|Yes| Cr[Create or update]
Cr --> Y[/"docs/changelog/5432.yaml"/]
Y -.-> P
We would then need a convention for how the ES build pulled in the YAML files from outwith the repo. We could require the ml-cpp
repo to be checked out alongside the elasticseach
repo:
flowchart LR
subgraph elastic/elasticsearch
EsC[ES Changelogs] -.-> EsB[ES Build]
EsB --> |./gradlew generateReleaseNotes| R[/Release notes/]
end
subgraph elastic/ml-cpp
MLC[ML Changelogs] -.-> EsB
end
Or we could pull the ML changelogs directory from the GitHub API:
flowchart LR
subgraph elastic/elasticsearch
EsC[/ES Changelogs/] -.-> EsB[ES Build]
EsB --> |./gradlew generateReleaseNotes| R[/Release notes/]
end
subgraph GitHub
MLC[(ML Changelogs)] -.-> |HTTP GET| EsB
end
Arguable the current docs/CHANGELOG.md
file would become redundant if we adopted some form of the above. We could replace its contents with a point to the online docs, like ES has done.