0.4.9 release procedure

Discussion about the project in general, organization, website, or any other details that aren't directly about the game.
Message
Author
User avatar
Vezzra
Release Manager, Design
Posts: 5064
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: 0.4.9 release procedure

#31 Post by Vezzra » Sun Nov 24, 2019 3:27 pm

Release management issue has been created: #2656.

Next weekly test builds will already be based on the release branch.

The weekly test builds of the following week will be RC1. That means RC1 is scheduled for Dec 3rd 2019, 6pm UTC.

Any comments, requests, objections, etc. regarding the release and the release procedure here in this thread.

0.4.9, here we come! :mrgreen:

User avatar
Vezzra
Release Manager, Design
Posts: 5064
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: 0.4.9 release procedure

#32 Post by Vezzra » Sun Nov 24, 2019 3:33 pm

Oh, before I forget: the changelog!!! Geoff, can you take care of that again?

User avatar
Ouaz
Dyson Forest
Posts: 223
Joined: Wed Aug 13, 2014 7:21 pm
Location: France

Re: 0.4.9 release procedure

#33 Post by Ouaz » Sun Nov 24, 2019 3:43 pm

Sorry, I missed your post saying that the Release branch would be created today at 1:00 PM GMT...

How it works for the translation commits?

Last year, we could create a post-it on Github to let you know which commits could be cherry-picked.

I commited a907c0b a few minutes ago, with "cherry-pick ready" in the title.

But it's not a big deal if it isn't pushed to the release branch, though (only two new translation lines in the game options)
I release every updated file under the CC-BY-SA 3.0 license.

o01eg
Programmer
Posts: 570
Joined: Sat Dec 10, 2011 5:46 am

Re: 0.4.9 release procedure

#34 Post by o01eg » Sun Nov 24, 2019 6:22 pm

For changelog there is summarization of my PRs marked with this release:

Multi-player:
  • The player can revoke orders.
  • Multiplayer game rules placed in a separate category.
  • Cookies timeout managed with option.
  • Python API for public chat history.
  • Extended Python API for players.
  • AI automatically assigned when loading multiplayer game.
  • Fix hostless multiplayer server crashes on the next games.
  • Empire's statistics publishing can be switch off with option.
  • In-game lobby with access to chat and empire choice for delegates.
  • Option to disable binary network serialization.
  • Experimental game rule to disable access to researched items and research and production queues of other empires (currently break calculations).
  • Huge refactoring allowed players to disconnect from the server without stopping game as well as options to set limits on players' disconnections.
  • Multiple networking fixes and refactoring to asynchronous message sending from the server.
  • Fixes for the server crashes could be caused by incorrect clients.
  • Forbid other players to take over empire of authorized player when loading game.
  • Chat displays enters and leaves of the players.
  • Forbid players to take over eliminated empire.
  • Save readiness status of empire.
  • Eliminated empire treats as always ready.
  • The multiplayer hostless server could start new game or load existing without any human players connected.
  • The multiplayer hostless server can make periodical saves.
  • Experimental turn timeout managed with options.
  • The server list shows known servers where player was logged in.
  • Multiplayer lobby shows galaxy setup data from chosen save.
  • Multiplayer lobby shows unassigned empires from chosen save.
  • Starting diplomacy relations can be set with experimental team support.
  • Game rule to allow or disallow diplomacy interaction.
  • Chat history is copied from lobby to the game.
  • Delegate player can take over other empire if it was allowed by the server.
Other:
  • The game is tested in CI (single-player and multiplayer hostless).
  • Experimental part-based upkeep game rule.
  • Galaxy setup options are common for client and server.
  • Game rules can be set up with options.
  • Game UID can be set with option.
Gentoo Linux x64, gcc-9.2, boost-1.71.0
Ubuntu Server 18.04 x64, gcc-7.4, boost-1.65.1
Welcome to slow multiplayer game at freeorion-lt.dedyn.io. Version 2019-12-08.203bc4c.
Donates are welcome: BTC:14XLekD9ifwqLtZX4iteepvbLQNYVG87zK

User avatar
Vezzra
Release Manager, Design
Posts: 5064
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: 0.4.9 release procedure

#35 Post by Vezzra » Fri Nov 29, 2019 4:09 pm

Ouaz wrote:
Sun Nov 24, 2019 3:43 pm
Sorry, I missed your post saying that the Release branch would be created today at 1:00 PM GMT...

[...]

I commited a907c0b a few minutes ago, with "cherry-pick ready" in the title.
I noticed your commit and cherry picked it before I produced the weekly test builds.
How it works for the translation commits?

Last year, we could create a post-it on Github to let you know which commits could be cherry-picked.
Yes, but it was a bit cumbersome to use. Geoff suggested a better way of handling things which are commited directly to master without a PR, but should be cherry picked into the release branch here:
Geoff the Medio wrote:
Mon Sep 23, 2019 2:00 pm
Vezzra wrote:
Mon Sep 23, 2019 11:08 am
There is of course the problem of fixes/patches which get committed directly to the repo, without PR. We'd need a way to keep track of those of them that should go into a bugfix release, too. Suggestions?
Make a pull request with the relevant commits against the release branch.

User avatar
Vezzra
Release Manager, Design
Posts: 5064
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: 0.4.9 release procedure

#36 Post by Vezzra » Mon Dec 02, 2019 9:54 pm

Vezzra wrote:
Sun Nov 24, 2019 3:33 pm
Oh, before I forget: the changelog!!! Geoff, can you take care of that again?
@Geoff: did you miss my plea, or did you not have time yet for the changelog? Or would you prefer someone else taking over the changelog task this time? Just asking - without changelog I can't produce RC1...

Also, should d9345e1c be cherry picked into the release branch?

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12484
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: 0.4.9 release procedure

#37 Post by Geoff the Medio » Tue Dec 03, 2019 9:45 am

Vezzra wrote:
Mon Dec 02, 2019 9:54 pm
Vezzra wrote:
Sun Nov 24, 2019 3:33 pm
Oh, before I forget: the changelog!!! Geoff, can you take care of that again?
@Geoff: did you miss my plea, or did you not have time yet for the changelog? Or would you prefer someone else taking over the changelog task this time? Just asking - without changelog I can't produce RC1...
I'll hopefully have time in the next few days.
Also, should d9345e1c be cherry picked into the release branch?
Not necessary. Could be a trivial performance improvement but I haven't thoroughly verified it has no side effects, despite looking OK.

User avatar
Vezzra
Release Manager, Design
Posts: 5064
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: 0.4.9 release procedure

#38 Post by Vezzra » Tue Dec 03, 2019 6:38 pm

Geoff the Medio wrote:
Tue Dec 03, 2019 9:45 am
I'll hopefully have time in the next few days.
Ok, good. Take your time, I'll postpone RC1 until further notice and determine a new deadline once you got the changelog done.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12484
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: 0.4.9 release procedure

#39 Post by Geoff the Medio » Sat Dec 07, 2019 1:10 am

I've been working backwards through the commit logs on and off for most of today. There's a lot this time, so it's taking a while.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12484
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: 0.4.9 release procedure

#40 Post by Geoff the Medio » Sat Dec 07, 2019 12:14 pm

What I have from reading through the commit logs. Tried to ensure stuff from late v0.4.8 didn't get duplicated, but a few things probably were. Didn't review anyone else's suggested key changes yet. Didn't spell check, but need to.

Code: Select all

#### Key Changes

- Ship hulls have fuel efficiency, which scales the additional fuel from fuel parts and other fuel-adding content

- Combat targeting now uses different restrictions and priorities for different weapon or fighter types eg:
-- Flak targets only fighters
-- Interceptors preferentially target bombers, then any fighters, then ships
-- Bombers preferentially target ships, then fighters
-- Species can also affect targeting

- Multiplayer enhancements
-- Servers can store usernames and passwords for player authentication
-- When joining a server, players can be restricted to certain empires based on authentication
-- Known / previously joined servers are saved and appear in the servers list of the connection window
-- Servers can have fixed game rule settings
-- Added an optional server turn timer
-- Chat history persists and is sent to players that connect to a server, and is shared between the lobby and in-game
-- The chat / message window flashes when a message is received


#### Graphics / Interface

-Added chat box text commands:
--/pm to send a private message to another player. Private messages from other players are flagged with (Whispers)
--/help to give a list of commands
-Added rows for unassigned empires in multiplayer lobby
-Muliplayer lobby automatically adds AIs and assigns them to AI empires when loading a game
-Eliminated empires can't have players assigned in multiplayer lobby
-Added player left game and player entered chat notifications
-Observers and moderators are informed when joining about empires' readiness
-Added new art for many species
-Reduced minimum FPS limit to 0.1 when the game window is unfocused
-Added option to scale size of background starfield stars
-Added icon to empires list to indicate an incoming diplomatic message
-New graphics for ion storm, star forming nebulae, accretion disk, and molecular cloud
-New icons for empire diplomatic status (War, Peace, Alliance)
-Pedia hull descriptions list the tags applied to a hull
-Rearranged the display order of sitreps
-Added tooltips to the turn button to explain turn processing event order
-Added a confirmation popup to close the program when OS window is closed, including indication if multiplayer game orders haven't been sent
-Added popup commands to add ships or buildings to the top of the production queue
-Added objects list columns for environment rating for species on planets
-Indicated species with which a planet would be colonized and for which habitability and population info in being displayed on sidepanel
-Made pressing enter not act as clicking OK in Galaxy Setup to avoid conflict with Alt-Enter to switch to/from fullscreen
-Prevented selection of eliminated empires in the multiplayer lobby
-Added gaseous metabolism to the census window
-Added some additional tie-breaking checks when deciding what empire can supply in a system
-Various GUI layout tweaks
-Disabled issuing fleet move orders after orders have been sent to the server in multiplayer games (unless orders are revised)
-Made fleets of damaged ships split from an existing fleet have the same aggression as the existing fleet instead of always being passive
-Added right-click popup menus for Fleets window meter icons
-Multiplayer lobby galaxy setup settings use common client defaults (shared with single player)
-Added Total Weapon Damage property to Objects list window columns
-Reorganized contents of species pedia pages
-Fleets window or sidepanel move to the render order top when a fleet or system is shown, even if the shown fleet or system didn't change
-Enabled more flexible renaming of designs in Design window
-Added warning when stockpile contributions would put the stockpile above ten turns of maximum-rate extraction
-Underlined modified rules for the current game on the the pedia page listing game rules
-Split multiplayer-related game rules into a separate tab


#### Content / Gameplay

-Translation updates: French, German, Russian
-Added sitreps for weapon upgrades and detection upgrades
-Various pedia article additionas, updates, and corrections
-Display "Unknown Design" rather than an error when lookup up an unknown design
-Added a game rule to allow or restrict diplomacy between players
-Added a game rule to control whether ships in aggressive fleets are always visible at the start of combat
-Added a game rule that restricts the techs an empire knows that another empire has researched to those techs the first empire has also researched
-Players are informed of diplomatic status changes between empires
-Added a server option to enable/disable empire statistics tracking
-Advanced shipyards can be enqueued if their prerequisites are enqueued, even if the prerequisites aren't yet produced
-Added Fulver species


#### Balance

-Increased cost and added internal slots to Colony Base Hulls to mitigate "comsat" defense strategies 
-Adjusted hull base fuel levels and numbers of slots for various hulls after adding hull fuel efficiency
-Made colony base hull cost scale like other hulls with fleet upkeep and ship hull cost multiplier rule
-Increase spacing between systems and starlanes generated by the Starlane Nexus
-Conceding from a game destroys all an empire's buildings 
-Made Scylior BAD_SUPPLY and BAD_FUEL
-Launching fighters uncloaks ships in combat
-Firing weapons in combat uncloaks ships to all empires in combat, not just the owner of the target being fired upon
-Stockpile focus on a homeworld gives an extra bonus
-Stockpile focus is allowed on all colonies, but grwoth focus gives no stockpiling bonus
-Planets have an effective minimum infrastructure of 1 to trigger combat each turn to ensure there are no turns when invading isn't allowed due to cycling of meter growth and combat occurring
-Made interceptors launch at double the rate of other fighters
-Planets with dying population no longer have their production and research zeroed, avoiding an issue where temporary disconnection from a growth special would cause sudden loss of resource output
-Added a game rule to enable a part-based upkeep calculation rather than ship-based



#### AI

-Improved AI judgement about fleet strengths and ship capacities with fighters
-Improved AI estimation of a standard enemy if no intel is available
-Improved AI assessment of enemy planet threat with respect to shield regeneration
-Made AI aware of fuel tech effects on fuel parts
-Raised AI minimum fuel requirements for warship designs to 2
-Fixed issues with AI merging and splitting fleets
-Added a fleet mission to protect a region
-Fixes issues with ships and fleets that are idle or after finishing missions
-Fixed AI divide by zero error when there was enemy supply in a system where the AI has a planet
-Fixed AI getting confused about whether a produced enqueue order was successful
-Made AI aware of stealth effects of Spatial Flux Bubble Hull
-Made AI more aggressive and less inclined to used doomstacks that it never moves
-Fixed AI picking ships that didn't have enough fuel to do a mission
-Reduced AI invasion overkill / waste
-Made AI consider lost fleets when determining unknown threats


#### Bugs

-Fixed potential crash in password entry box
-Fixed log level filters briefly not applying while being set
-Fixed laggy UI updates when resizing the sitreps window
-Fixed potential crash when setting fleet routes
-Fixed issue where genreated filename timestamps could include invalid filename characters on systems with some languages
-Fixed issue where being in an alliance wasn't considered as being at peace for some conditions where it should
-Fixed issues with gifting objects between empires, particularly when allied
-Reordered timing of newly researched tech effects being active so that sitreps about tech research are shown on the same turn that techs take effect
-Fixed minor rendering quirks
-Fixed issue where fleets moving through a system but getting blockaded would lose track of their desired exit starlane
-Fixed text autocomplete in chat by pressing (default) TAB key
-Fixed issue where attempting to drag a window causing resizing instead
-Fixed crash when closing the application window while in a game with the Fleets window open
-Fixed issue where revising orders on a multiplayer server would result in previously-issued orders being lost
-Fixed issue where arriving enemy fleet sitreps were inconsistent if an effect modified the fleet's destination on the same turn as it was expected to arrive
-Fixed issue where arriving enemy fleet sitreps weren't being shown due to limits on how far the fleet could be from the system
-Fixed Interspecies Academy modifying current instead of target research meter
-Fixed some potential internal crashes
-Fixed issue where paired/active meters were reset to the value of the corresponding target/max meter
-Fixed issue where empire colours in a saved game could conflict with player colours in the multiplayer lobby
-Fixed server crash when receiving turn orders from incompatible client
-Fixed issue where shield regeneration could apply twice
-Fixed issue where monster shields wouldn't regenerate
-Fixed crash when editing long strings in a narrow window
-Fixed issue where certain ship part meter effects could not work
-Fixed issue where scrap orders couldn't be issued
-Made unowned fleets move before empire fleets, which avoids some issues with blockades
-Fixed issue with blockade determination so that blockaded planets are still connected to themselves
-Fixed issue with fleets that had never moved being unable to enforce bloackades
-Fixed issue where loaded games weren't setting the server rules to those in the save
-Resolved some issues with premade ship designs being added (or not added) at start of game
-Fixed potential issues with invalid UTF8 strings when doing multi-line text layout
-Fixed issue with incorrect refueling calculations when determining move pathes for fleets
-Fixed issue with combat log scrollbars


### Technical / Internal

-Fixed error when observer or moderator clients joined a test server
-Added basic support for a UDP message interface to query the server containing simple FOCS expressions
-Improved compatibility with various Boost library versions
-Use asynchronous messaging for all communication between client and server processes, not just from clients to server
-Added safeguards on incoming message size before allocating memory to store it, to prevent denial of service attacks
-Various extensions / additions to the Python APIs
-Adjusted what ships are considered armed: direct weapons with > 0 damage, or fighters present that can be launched and that have > 0 damage, and not directly dependent on the ship design, which doesn't account for some weapon-modifying effects
-Ship designs must have fighter bays and hangars to be considered as having fighters, rather than needing just one of those part types
-Capped the per-message number of combat log entries sent to clients to avoid sending an overly large single message
-Fixed undefined behaviour when reporting a FramebufferFailedException when initializing OpenGL
-Reordered some save game data to avoid breaking a save file (as much) if the UI data is corrupted
-Fixed issue where obsolete ship designs were being stored and serialized in C++11 containers that weren't handled correctly by the serialization library
-Added an option to set a game unique ID number, which is useful for multiplayer servers
-Python errors are output to logging instead of stderr
-Add hostless quickstart mode for AI-only games
-Made hostless servers autosave when shutting down
-Hostless servers can be started from a saved game
-Servers can be configured to have a limits on the numbers of connected or unconnected players in a game
-Added an OrderedAlternativesOf condition that will use the first condition in its list of subconditions that matches something
-Added SVG rendering in pedia, and allowed SVG images to be included in articles
-Reworked timing of clients sending save state info to avoid potential save corruption
-A warning popup should be shown if the client's OpenGL version is < 2.0
-Added mechanism for chat messages to have automatic string formatting and stringtable substitutions when displayed
-Added an option to enable/disable network binary serialization
-Screensaver is no longer enabled/disabed in response to window minimize, maximize, or restore events
-Prevent AIs from replaying turns after loading a game, unless specified in configuration

o01eg
Programmer
Posts: 570
Joined: Sat Dec 10, 2011 5:46 am

Re: 0.4.9 release procedure

#41 Post by o01eg » Sat Dec 07, 2019 8:11 pm

Geoff the Medio wrote:
Sat Dec 07, 2019 12:14 pm

Code: Select all

#### Key Changes
- Multiplayer enhancements
-- Servers can store usernames and passwords for player authentication
It was introduced in 0.4.8.
Geoff the Medio wrote:
Sat Dec 07, 2019 12:14 pm

Code: Select all

#### Content / Gameplay
-Added a server option to enable/disable empire statistics tracking
Empire statistics track always, the option enables/disables transferring statistics to the players.
Geoff the Medio wrote:
Sat Dec 07, 2019 12:14 pm

Code: Select all

### Technical / Internal
-Add hostless quickstart mode for AI-only games
Hostless quickstart mode is available not only for AI-only games.
Geoff the Medio wrote:
Sat Dec 07, 2019 12:14 pm

Code: Select all

### Technical / Internal
-Servers can be configured to have a limits on the numbers of connected or unconnected players in a game
It better to note that a game can be running after player disconnection.
Gentoo Linux x64, gcc-9.2, boost-1.71.0
Ubuntu Server 18.04 x64, gcc-7.4, boost-1.65.1
Welcome to slow multiplayer game at freeorion-lt.dedyn.io. Version 2019-12-08.203bc4c.
Donates are welcome: BTC:14XLekD9ifwqLtZX4iteepvbLQNYVG87zK

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12484
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: 0.4.9 release procedure

#42 Post by Geoff the Medio » Sun Dec 08, 2019 10:03 am


User avatar
Vezzra
Release Manager, Design
Posts: 5064
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: 0.4.9 release procedure

#43 Post by Vezzra » Sun Dec 08, 2019 7:30 pm

Thanks a lot for taking care of that tedious task once again. Looks good as far as I can tell (however, I only took a very quick glance at the PR).

@all active contributors: please take a look at the proposed changelog and check if everything you worked on and got into master since 0.4.8 has been covered.

Post Reply