Skip to content

Commit

Permalink
Update the in-game changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
Garanas committed Aug 11, 2024
1 parent 889414b commit a3de04d
Show file tree
Hide file tree
Showing 2 changed files with 99 additions and 9 deletions.
60 changes: 52 additions & 8 deletions docs/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,60 @@ All three branches originate from the `develop` branch, which is the default bra

## Deployment procedures for the FAF game type

The deployment procedure can be a lengthy process because it involves various stages. All the stages are explained below.

### Deployment of engine patches

The deployment of engine patches to the release branch is a manual process. This is intentional as users will automatically download the executable upon launching the game.

- (1) Make sure that any open changes that you want to include are merged to the `master` branch of the [Binary patches](https://github.com/FAForever/FA-Binary-Patches) repository.
- (2) Update the executable of the `FAF Develop` and `FAF Beta Balance` game types using the [Upload workflow](https://github.com/FAForever/FA-Binary-Patches/actions).
- (3) Ask a server administrator to prepare the executable to be updated upon the next game release.
- (4) ???

You can continue the deployment steps but you can not finalize it until the server administrator got back to you that it is set. This may take an arbitrary amount of time so make sure this is done well in advance.

### Changelog for a deployment

- (0) Checkout on the `develop` branch and pull in the latest version. Make sure that there are no other open changes.
- (1) Create a new branch that originates from `develop`. We'll refer to this branch as the `changelog branch`.
- (2) Generate the changelog using the [Changelog generation workflow](https://github.com/FAForever/fa/actions/workflows/docs-changelog.yaml).
- (3) Once the workflow is completed, navigate to the summary section and download the artifact that is created by the workflow.
- (4) Save the generated changelog to a new file in the format `yyyy-mm-dd-game-version.md` in `docs/_posts`. As an example for a file name: `2024-08-03-3811.md`.
- (5) Verify and update the content of the changelog is complete.
- - (5.1) Add the front matter (what is in between `---`) at the top, for example:

```markdown
---
layout: post
title: Game version 3811
permalink: patches/3811
---
```

- - (5.1) Add an introduction at the top of the changelog.
- - (5.2) Add the contributors at the bottom.

- (6) Stage, commit and push the changes to GitHub. Create a pull request on GitHub to allow other maintainers to review the changelog. Make sure the pull requests points to `develop`.
- (7) Delete the current snippets and stage, commit and push the changes to GitHub.

You can re-use the same branch and pull request in the next phase of the deployment.

### Deployment of Lua

The following (manual) steps are relevant to create a valid deployment to the FAF game type.

- (1) Update the game version in [mod_info.lua](https://github.com/FAForever/fa/blob/c36404675c7a95cda20fe867d78bd1c01c7df103/mod_info.lua) and [version.lua](https://github.com/FAForever/fa/blob/c36404675c7a95cda20fe867d78bd1c01c7df103/lua/version.lua).
- (2) Update the game executable. This needs to be done by a server administrator. This is only required when there are changes to the executable.
- (3) Update the changelog in [changelog.md](/changelog) and [changelogData.lua](https://github.com/FAForever/fa/blob/c36404675c7a95cda20fe867d78bd1c01c7df103/lua/ui/lobby/changelogData.lua).
- (3.1) Delete all of the changelog snippets.
- (4) Update the game version in [changelogData.lua](https://github.com/FAForever/fa/blob/c36404675c7a95cda20fe867d78bd1c01c7df103/lua/ui/lobby/changelogData.lua).
- (5) Push everything that you want to release to the [master](https://github.com/FAForever/fa/tree/master) branch.
- (6) Use the [Deploy to FAF Workflow](https://github.com/FAForever/fa/actions/workflows/deploy-faf.yaml) to perform the deployment.
- (7) Create a [release on GitHub](https://github.com/FAForever/fa/releases) that targets the [master](https://github.com/FAForever/fa/tree/master) branch.
- (0) Checkout on the `changelog branch` branch created in the previous step and pull in the latest version.
- (1) Update the game version in [mod_info.lua](https://github.com/FAForever/fa/blob/develop/mod_info.lua) and [version.lua](https://github.com/FAForever/fa/blob/develop/lua/version.lua).
- (3) Push everything that you want to release to the [master](https://github.com/FAForever/fa/tree/master) branch.
- (4) Use the [Deploy to FAF Workflow](https://github.com/FAForever/fa/actions/workflows/deploy-faf.yaml) to perform the deployment.
- (5) Create a [release on GitHub](https://github.com/FAForever/fa/releases) that targets the [master](https://github.com/FAForever/fa/tree/master) branch.

### Release on GitHub

Once `deploy/faf` is updated it is important to create a [release](https://github.com/FAForever/fa/releases/new) on GitHub



The last step allows us to systematically post process what we deploy. You can learn more about this by inspecting the workflow file.

Expand Down
48 changes: 47 additions & 1 deletion lua/ui/lobby/changelogData.lua
Original file line number Diff line number Diff line change
@@ -1,8 +1,54 @@
---@type number
last_version = 3811
last_version = 3812

---@type PatchNotes[]
gamePatches = {
{
version = 3812,
name = "Hotfix",
hasPrettyGithubRelease = true,
hasPrettyPatchnotes = false,
description = {
"# Game version 3812 (11th of August 2024)",
"",
"A hotfix to fix three additional bugs.",
"",
"With kind regards,",
"",
"BlackYps",
"",
"## Bug fixes",
"",
"- (#6398) Fix a possible cause for a simulation freeze",
"",
"It was possible to pass invalid numbers (NaN or infinite) as a ballistic acceleration for a projectile. This would cause the engine ",
"to freeze up. With these changes we introduce Lua guards to catch the invalid numbers and throw an error instead ",
"of passing the invalid number to the engine.",
"",
"- (#6404) Fix upgrading units being duplicated when transferred after death.",
"",
"- (#83) Experimental units can now be attached to transports via script again.",
"",
"",
"## Other changes",
"",
"- (#6399) Document method chaining of projectile engine functions",
"",
"",
"## Contributors",
"",
"With thanks to the following people who contributed through coding:",
"",
"Jip",
"Relent0r",
"Basilisk3",
"lL1l1",
"",
"With thanks to the following people who contributed through binary patches:",
"",
"Hdt80bro",
},
},
{
version = 3811,
name = "Hotfix",
Expand Down

0 comments on commit a3de04d

Please sign in to comment.