piqueserver v1.0.0 Release Notes

Release Date: 2019-12-02 // almost 3 years ago
  • 🚀 Release Notes

    🚀 Piqueserver has hit 1.0.0! This release has been around a year in the making and is accordingly jam-packed with new features:

    TOML config

    0️⃣ JSON is hard to write and doesn't support comments. Many beginners had lots of issues with the strict syntax of the JSON format and we could not show useful comments describing the options directly in the config file. We've switched the default config to TOML, which is an .ini inspired format that is easier for humans to read and work with.

    👍 JSON is of course still supported, but only recommended if you are using another program to generate piqueserver configs.

    🆕 New config engine

    ✏️ We've added a new config engine that allows you to declare options and sections in code, then automatically fetch and validate the values. Declaring options in advance also allows us to tell you about options which are unused, helping you catch typos.

    🌲 Logging with log levels

    🌲 Piqueserver's logging was always a pain when debugging the server or scripts. Piqueserver now emits low-level debug messages for things such as grenade throws, player spawns, etc.

    0️⃣ Since these messages are not of interest to most users, they are turned off by default. You can enable them with:

    [logging]
    loglevel = "debug"
    

    Time Values in Config

    👍 Piqueserver now supports setting time values with time units, instead of opaque values:

    tips_frequency = "5min12sec"
    

    🏁 Lots of Windows fixes

    🏁 While Windows was theoretically supported before, support should have improved a lot now. Please report any bugs in our issue tracker!

    👍 Removal of python2 support

    🚀 As announced previously, this is the first version will not support python2.x. We are also removing support for python3.4 in this release. This is also the last release to support python 3.5.

    👌 Improved docs

    📚 Our docs at https://piqueserver.readthedocs.io have improved a lot. Instead of only being useful for devs, they now contain documentation for all config options, scripts and of course setting up Piqueserver. Have a read!

    Multi-threaded map generation

    🚚 People on lower-powered hardware have complained about map generation taking too long and timing out players. We've moved those to a new thread for a smother experience switching maps.

    HELLOLAN

    👍 HELLOLAN is an AoS 1.x feature that allows you to auto-discover servers on your LAN. It is currently only supported by BetterSpades

    GeoIP2

    👍 Piqueserver now supports the new GeoIP2 format, the downloads for the old format were shut off. It is also now downloaded and checked securely. Thanks @bieito98!

    ⚡️ Data saving on world updates

    ⚡️ While not intended, it is possible to save bandwidth when sending out world updates by only sending updates for players that are actually connected. We now do this. We have tested this, but it might occasionally cause issues with Voxlap. If you have issues with players moving to weird positions after this update, let us know!

    🚀 Release Notification

    🚀 A big thing we wanted to add before a full release is release notifications to ensure all users of piqueserver are made aware when a new release is available and can upgrade soon. Update notifications will be displayed on login and on the console.

    👍 UTF-8 Support

    🛠 OpenSpades' UTF-8 support allowed sending unicode in chat messages between players, but the server wasn't able to send any unicode itself. This has now been fixed. Thanks @MuffinTastic !

    Infiltration

    🔧 Infiltration can now be configured via the regular config, in the [infiltration] section:

     [infiltration] # Attackers get attacker\_score\_multiplier points for taking and capturing# the intel.attacker\_score\_multiplier = 10# Defenders gain 1 point for every defender\_score\_interval seconds that the# intel remains untouched.defender\_score\_interval = "30sec"# The ratio of attackers to defenders. Be aware that setting this# incorrectly might prevent players from joiningattacker\_ratio = 1.6
    

    ⚡️ Updated Push

    ⚡️ @1AmYF Updated the push game mode to the latest version, as well as enabling it to be configured in your piqueserver config.

    👍 Extension Support

    👍 Piqueserver will now query any client that isn't OpenSpades <= 0.1.3 for it's extension support. This will, allow extending the protocol with new weird and wonderful things.

    🔨 Refactoring

    As always, a lot of our work goes into improving and renovating the insides of piqueserver. This does not affect users, but is always prerequisite to making more changes in the future.

    Misc

    • --copy-config will now not fail if the directory already exists. Instead, it will attempt to create any files that don't yet exist
    • 🚤 farbuild exploit mitigation is improved and less susceptible to latency
    • 🛠 fixed several DOS exploits (crashes caused by malicious players)
    • ⚡️ updated status server to new bootstrap version
    • the status server now returns the correct MIME type for the overview
    • no longer make all users admins if no passwords are given
    • ➕ add development dockerfile
    • ⬇ decrease size of docker container
    • 0️⃣ the analyze script is now part of the default distribution
    • the commands command lists available command
    • more commands now have a help message
    • 🛠 a bug was fixed that prevented joining the spectator team on ARM
    • ➕ add `--version' option to view installed version
    • you can now use asyncio in piqueserver in addition to twisted
    • 🛠 fixed afk.py kicking users accidentally
    • 🐎 log the kick reason when kicking and log performance of map advances
    • 👉 show voxlap in /client command
    • Inspired by recently found crashes, piqueserver can now be compiled with AddressSanitizer and UndefinedBehaviourSanitizer using the USE_UBSAN and USE_ASAN environment variables.

Previous changes from v1.0.0.rc1

  • 🚀 Release Candidate

    🚀 This is the first release candidate for RC1. We have a few more things we want to get into this release, but are tagging the current state as a preview of what's to come and to allow people to test it easier.

    🚀 This prerelease can be installed via pip directly from git: pip install git+https://github.com/piqueserver/[email protected]

    🚀 Release Notes

    🚀 Piqueserver has hit 1.0.0! This release has been around a year in the making and is accordingly jam-packed with new features:

    TOML config

    0️⃣ JSON is hard to write and doesn't support comments. Many beginners had lots of issues with the strict syntax of the JSON format and we could not show useful comments describing the options directly in the config file. We've switched the default config to TOML, which is an .ini inspired format that is easier for humans to read and work with.

    👍 JSON is of course still supported, but only recommended if you are using another program to generate piqueserver configs.

    🆕 New config engine

    ✏️ We've added a new config engine that allows you to declare options and sections in code, then automatically fetch and validate the values. Declaring options in advance also allows us to tell you about options which are unused, helping you catch typos.

    🌲 Logging with log levels

    🌲 Piqueserver's logging was always a pain when debugging the server or scripts. Piqueserver now emits low-level debug messages for things such as grenade throws, player spawns, etc.

    0️⃣ Since these messages are not of interest to most users, they are turned off by default. You can enable them with:

    [logging]
    loglevel = "debug"
    

    Time Values in Config

    👍 Piqueserver now supports setting time values with time units, instead of opaque values:

    tips_frequency = "5min12sec"
    

    🏁 Lots of Windows fixes

    🏁 While Windows was theoretically supported before, support should have improved a lot now. Please report any bugs in our issue tracker!

    👍 Removal of python2 support

    🚀 As announced previously, this is the first version will not support python2.x. We are also removing support for python3.4 in this release.

    👌 Improved docs

    📚 Our docs at https://piqueserver.readthedocs.io have improved a lot. Instead of only being useful for devs, they now contain documentation for all config options, scripts and of course setting up Piqueserver. Have a read!

    Multi-threaded map generation

    🚚 People on lower-powered hardware have complained about map generation taking too long and timing out players. We've moved those to a new thread for a smother experience switching maps.

    HELLOLAN

    👍 HELLOLAN is an AoS 1.x feature that allows you to auto-discover servers on your LAN. It is currently only supported by BetterSpades

    GeoIP2

    👍 Piqueserver now supports the new GeoIP2 format, the downloads for the old format were shut off. It is also now downloaded and checked securely. Thanks @bieito98!

    ⚡️ Data saving on world updates

    ⚡️ While not intended, it is possible to save bandwidth when sending out world updates by only sending updates for players that are actually connected. We now do this. We have tested this, but it might occasionally cause issues with Voxlap. If you have issues with players moving to weird positions after this update, let us know!

    🔨 Refactoring

    As always, a lot of our work goes into improving and renovating the insides of piqueserver. This does not affect users, but is always prerequisite to making more changes in the future.

    Misc

    • --copy-config will now not fail if the directory already exists. Instead, it will attempt to create any files that don't yet exist
    • 🚤 farbuild exploit mitigation is improved and less susceptible to latency
    • 🛠 fixed several DOS exploits (crashes caused by malicious players)
    • ⚡️ updated status server to new bootstrap version
    • the status server now returns the correct MIME type for the overview
    • no longer make all users admins if no passwords are given
    • ➕ add development dockerfile
    • ⬇ decrease size of docker container
    • 0️⃣ the analyze script is now part of the default distribution
    • the commands command lists available command
    • more commands now have a help message
    • 🛠 a bug was fixed that prevented joining the spectator team on ARM
    • ➕ add `--version' option to view installed version
    • you can now use asyncio in piqueserver in addition to twisted