FAForever / FAForever/fa

Generate a 'changelog overview' Lua file

Open
#6,472 0 comments 0 reactions 0 assignees View on GitHub
area: changelog management
Dominant language
Lua
Stars
264
Forks
260
Avg merge
3d 2h
Merged PRs (30d)
21

Description

### Description

With https://github.com/FAForever/fa/pull/6444 we now have a workflow that converts the markdown-based changelogs into Lua-compatible files that the game can read. With this issue we aim to extend this functionality by also generating an overview file.

### Course of Action

Ideally the workflow is extended. The goal is to generate a module that holds references to all generated Lua-compatible changelogs. As an example of the setup:

```lua
---@class ChangelogOverview
---@field Changelogs ChangelogMetadata[]

---@class ChangelogMetadata
---@field Path string

Overview = {
Changelogs = {
{
URL = "http://url-to-changelog-online.org"
Path = "/lua/path/to/changelog.lua"
}
}
}
```

As the future is always changing it is important that the implementation is flexible towards introducing additional fields at both the `ChangelogOverview` level and the `ChangelogMetadata` level. For the latter the input will be the source file.

The documentation website that we'll use in the (near) future uses Jekyll. As an example of why this flexibility is useful: there may be [Front matter](https://jekyllrb.com/docs/front-matter/#:~:text=Front%20Matter.%20Any%20file%20that%20contains) that we may parse and add to the ChangelogMetadata in the future.

As an example of front matter that we use right now:

```markdown
---
layout: post
title: Game version 3801
permalink: changelog/3801
---
```

See also the [_posts](https://github.com/FAForever/fa/tree/develop/docs/_posts) folder of the documentation website. In the future these posts will be the source of which we generate lua-compatible changelogs.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.