Implement changelog parsing
There should be a file in the root of the project, named changelog.yaml
, which will have the following structure:
0.19.0:
note: >-
⚠️ If you're not logged out, it's recommend that you
logout and additionally clear your data after installing
the new version! ⚠️
changes:
- Added something cool
- Added another super cool thing
- And other things
- A change where someone helped me:
issue: 138
credit: Louis Matthijssen
media:
- register.mp4
- chat.png
translations:
nl:
changes:
- Iets cools toegevoegd
- Iets gefixed
0.18.0:
changes:
- Something something
- Blablabla
note
and media
are optional.
Complex changes
For the last change, the key is the actual change and the value an object with more data, which could be a credit
, a name of the person who made the change and issue
, the number of the issue related to the change, same as above.
Media
For media
, the files are stored in the repo in changelog/[version]/
. So the first file is changelog/0.19.0/register.mp4
.
For some platforms it's necessary to create an HTTPS link. In that case, it should link to the ref of the version tag, so for example the first file would be:
https://pattle.dev/pattle/app/raw/v0.19.0/changelog/0.19.0/register.mp4
Languages
There is also support for multiple languages, where the keys of translations
are two letter language codes, such as en
, nl
or de
.
The value of those with such a key should be treated as a top-level version object, which overrides properties of the default English version. For example, this means that when changes
is specified in a translation, it will override the complete list of the English changes
.
If property of a language (or the whole language object) is missing, and for example changes
is requested, it will return the default English changes
.
Media
Media is optionally also translated, which would reside in a subfolder of the specified language code, for example: changelog/0.19.0/nl/register.mp4
. The file must be mentioned in the yaml under nl
→ media
then, of course.