Releases: FAForever/server
v1.15.1 - Dockerfile and Bugfixes
What's Changed
- Issue #800 - Invalid Command Response on Database Outage by @benjamin-lawson in #1009
- Issue/#1016 Update codecov report action by @Askaholic in #1017
- Issue/#970 Prevent queue pop timer from becoming negative by @Askaholic in #1014
- Dockerfile: Create app folder with non-root permissions by @Brutus5000 in #1018
- Update dependencies by @Askaholic in #1022
New Contributors
- @benjamin-lawson made their first contribution in #1009
Full Changelog: v1.15.0...v1.15.1
v1.15.0 - Login time sync
Sends the current time on login. Also includes regular dependency updates.
What's Changed
- Perform client time sync on login by @baterflyrity in #1004
- Update dependencies by @Askaholic in #1008
New Contributors
- @baterflyrity made their first contribution in #1004
Full Changelog: v1.14.1...v1.15.0
v1.14.1 - Bugfix
Fixes a small number of very minor bugs having to do with errors being triggered in various ways. The only one worth noting here is:
- Duplicate database key error when adding the same friend twice. This was very rare but would cause you to be disconnected from the server. Now it will simply be ignored.
Deployment Notes
- Config values will be read from environment variables with the same name at low priority. Environment values will be overwritten by values specified in the yaml config file. NOTE: values from environment variables will always be strings and should be reserved for setting passwords only.
What's Changed
- Get default config values from environment by @Askaholic in #998
- Fix v1.14.0 prod errors by @Askaholic in #999
Full Changelog: v1.14.0...v1.14.1
v1.14.0 - Player disconnect updates
This release includes a few enhancements to existing messages as well as a number of bug fixes. The main new feature that's now available is the detection of when players go offline via the "state": "offline"
field in player_info
messages. This allows clients to update the chat list accurately without needing to rely on the IRC server. There is also a new hosted_at
field in the game_info
message that allows clients to display how long a game has been in lobby.
The major bugfix this time around has to do with how the server was tracking players state internally. Previously, it would allow you to host two games at the same time, or join the matchmaker and host a game at the same time if you tried to do those things in the wrong order. You could then get into a state where you'd get Cant xxx while in state xxx
messages that didn't seem to make sense. These situations should hopefully no longer happen, but we will continue to monitor the logs as the state tracking is a pretty complex and tricky thing to get right.
There were also a few smaller bug fixes:
- Single player games will now be marked as such instead of being marked as 'uneven teams'.
- Game titles can no longer be empty or contain only whitespace
- Bans now prevent you from logging in immediately rather than letting you log in until your token expired, and the ban message will include a note about where to send ban appeals.
What's Changed
- Adjust end to end tests to support websocket infrastructure by @Askaholic in #987
- Add
hosted_at
field to game_info message by @Askaholic in #986 - Issue/#890 Add 'flaky' package to rerun flaky tests by @Askaholic in #988
- Issue/#786 send player update on disconnect by @Askaholic in #832
- Issue/#789 Always compute team results for rabbitmq messages by @Askaholic in #991
- Refactor game options handling / Issue/#859 game title constraints by @Askaholic in #992
- Issue/#993 use single player validity state again by @Askaholic in #994
- Add ban appeal notice to ban messages by @Askaholic in #990
- Issue/#995 Improve player state tracking by @Askaholic in #997
- Update dependencies by @Askaholic in #996
Full Changelog: v1.13.4...v1.14.0
v1.13.4 - Infrastructure removals
Removes functionality that can no longer be used due to infrastructure changes.
What's Changed
- Remove all Twilio references by @Brutus5000 in #981
- Add
pipenv verify
to lint actions by @Askaholic in #984 - Migrate to supporting database v133 with table removals by @Sheikah45 in #983
- Remove Coturn brokering by @Brutus5000 in #982
- Update dependencies by @Askaholic in #985
Full Changelog: v1.13.3...v1.13.4
v1.13.3 - K8s integration and graceful shutdown
These changes are released as their own version to isolate potential issues and make it easy to roll back to the previous version without losing any other functionality.
Deployment Notes
New config arguments:
SHUTDOWN_GRACE_PERIOD
how many seconds to wait for games to end before doing a hard shutdown. If using kubernetes, you must setterminationGracePeriodSeconds
on the pod to be larger than this value. With docker compose, use--timeout (-t)
to set a longer timeout.SHUTDOWN_KICK_IDLE_PLAYERS
whether or not to kick idle players during the shutdown grace period.HEALTH_SERVER_PORT
port for k8s compatible http health server to listen on.LOGIN_TIMEOUT
seconds to wait for a new connection to successfully authenticate before closing the connection.
What's Changed
- Kubernetes integration and graceful shutdown by @Askaholic in #960
Full Changelog: v1.13.2...v1.13.3
v1.13.2 - Remove IRC password feature
What's Changed
- Update dependencies by @Askaholic in #979
- Issue/#977 Remove IRC password functionality by @Askaholic in #978
Full Changelog: v1.13.1...v1.13.2
v1.13.1 - League service integration update
This release includes a change to add the game id to the rating change message used by the league service. Plus dependency updates.
What's Changed
- Update dependencies by @Askaholic in #974
- Add game id to rating change message by @BlackYps in #973
- Cleanup tests by @Askaholic in #965
- Update dependencies by @Askaholic in #969
Full Changelog: v1.13.0...v1.13.1
v1.13.0 - PROXY protocol support
This release adds a behind the scenes change to enable the server to be run behind a TCP proxy while still seeing accurate IP addresses for reporting and assigning appropriate country flags. It also includes regular dependency updates.
Deployment notes
Entries in the LISTEN
section of the config now support two additional non-required options, PROXY
and NAME
. The PROXY
option can be set to true
to enable support for the PROXY protocol on that port. This should only be enabled when running the server behind a reverse proxy like nginx or traefik and care must be taken that the lobby server port is not exposed to traffic from any other source by configuring an appropriate firewall. The NAME
option can be set to a string that will be used in log messages associated with that ServerContext. This can be useful to identify how clients are connecting to the server.
What's Changed
- Add support for the PROXY protocol by @Askaholic in #964
- Update to Python 3.10 by @Askaholic in #962
- Update to SQLAlchemy 2.0 by @Askaholic in #961
Full Changelog: v1.12.9...v1.13.0
v1.12.9 - Matchmaker tweaks
This version continues to hone in the matchmaker behavior to find an optimal balance of wait time vs game quality across all rating ranges. New players and high rated players will now be matched a bit more cautiously to try and improve game quality. In addition the map pool used for map selection will now be determined by the average displayed rating of the team as opposed to the minimum. This means it will now be possible for you to get maps from map pools which are above your rating in TMM if you are matched with higher rated players.
Developer notes
Since the map pool selection uses average rating it will not necessarily be possible to show an accurate map pool in the client.
Deployment notes
In this release the Dockerfile was rewritten and does some things different internally. Most notably the code is no longer copied to /code
and is instead installed to the system as a python package. Only main.py
(formerly server.py
) is copied to /code
and serves as the main entrypoint for the application. These changes should still be fully compatible with the old configuration in faf-stack
, however, they could potentially break more customized setups.
What's Changed
- Rework newbie matching by @BlackYps in #958
- Additional linting actions by @Askaholic in #959
- Change map pool selection by @BlackYps in #952
- Tune matchmaker minority bonus by @BlackYps in #957
- Improve matchmaker info message by @BlackYps in #954
- Fix docker build by @Askaholic in #955
Full Changelog: v1.12.8...v1.12.9