Skip to content

Generate changelog YAML files for ML? #2217

Open
@pugnascotia

Description

@pugnascotia

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
Loading

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
Loading

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
Loading

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions