Difference between revisions of "HOWTO-Engine Release"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Initial instructions for new engine release)
 
 
(42 intermediate revisions by 9 users not shown)
Line 1: Line 1:
Once an engine has been [[HOWTO-Engine Inclusion|accepted into the master branch]], finished, and is ready to be playtested, do this stuff to get it ready:
Once an engine has been [[HOWTO-Engine Inclusion|accepted into the master branch]], finished, and is ready to be playtested, do this stuff to get it ready:
PREREQUISITES:
# Zero warnings on major platforms (GCC, clang, MSVC is nice to have). See [https://buildbot.scummvm.org/#/ the buildbot logs] and [https://github.com/scummvm/scummvm/actions GitHub actions] for having a general understanding
# No major flaws in [https://scan.coverity.com/projects/scummvm?tab=overview Coverity Scan]. The guide is [[HOWTO-Static_Analysis_Tools|here]].
CHECKLIST:


# Change any <code>ADGF_UNSTABLE</code> flags in the engine’s detection table to <code>ADGF_TESTING</code>
# Change any <code>ADGF_UNSTABLE</code> flags in the engine’s detection table to <code>ADGF_TESTING</code>
# Change the <tt>[build-by-default]</tt> flag in the engine’s <tt>configure.engine</tt> file to <tt>yes</tt>
# Change the <tt>[build-by-default]</tt> flag in the engine’s <tt>configure.engine</tt> file to <tt>yes</tt>
# Update the game’s information pages in the wiki:
# Update the engine’s and game’s information pages in the wiki:
## Change the engine’s category from [[:Category:Engines Not Added to ScummVM]] to [[:Category:Engines Added to ScummVM]] by setting `dateAdded` in the EngineDescription.
## Change the game’s category from [[:Category:Unsupported Games]] to [[:Category:Supported Games]]
## Change the game’s category from [[:Category:Unsupported Games]] to [[:Category:Supported Games]]
## Set the Support status in the infobox to the next ScummVM release version
## Set the Support status in the infobox to the next ScummVM release version in form 'Since ScummVM X.X.0'
## Fill out any other missing information in the infobox
## Fill out any other missing information in the infobox
# Add the new game(s) to the [https://github.com/scummvm/scummvm/blob/master/NEWS NEWS file]
# Add the new game(s) to the [https://github.com/scummvm/scummvm/blob/master/NEWS.md NEWS file]
# If necessary, add special notes to section 3 of the [https://github.com/scummvm/scummvm/blob/master/README README file]
# When the engine is using GUIO, add their description to the [https://docs.scummvm.org/en/latest/settings/game.html documentation] ([[Developer_Central#Contribution_guide_for_technical_writers|here]] is how to edit the documentation)
# Add the engine author(s) to the [https://github.com/scummvm/scummvm/blob/master/AUTHORS AUTHORS file]
# Add the engine author(s) to the ''engines/<your-engine>/credits.pl'' file, in alphabetical order by last name (see [https://github.com/scummvm/scummvm/blob/master/engines/scumm/credits.pl SCUMM engine example]) and run ''make credits'' to update the ''AUTHORS'' and ''credits.h'' files. You should also have scummvm-web repository checked out next to your scummvm directory, and then commit to both repositories. For the web repo the typical commit log message is "WEB: Sync credits".
# Make sure [[Datafiles]] is up-to-date
# If the engine uses a data file, make sure it is added to the list of files to distribute:
# Publish a news entry announcing game testing at [https://github.com/scummvm/scummvm-web/tree/master/data/news scummvm/scummvm-web:data/news/] (e.g. [https://github.com/scummvm/scummvm-web/blob/master/data/news/20161201.xml Full Pipe announcement])
## Add it to ''DIST_FILES_LIST'' in ''dists/engine-data/engine_data.mk''
# Update the compatibility data at [https://github.com/scummvm/scummvm-web/blob/master/data/compatibility/compat-DEV.xml scummvm/scummvm-web:data/compatibility/compat-DEV.xml] with compatibility information for the new game(s)
## On the Buildbot, in the [https://github.com/scummvm/dockerized-bb/blob/master/buildbot-config/builds.py ''buildbot-config/builds.py''] file:
# If necessary, update the demos list at [https://github.com/scummvm/scummvm-web/blob/master/data/game_demos.xml scummvm/scummvm-web:data/game_demos.xml] with new game demos
### If there is no <code>DATA_FILES</code> variable defined under the <code>ScummVMStableBuild</code> class, copy the <code>DATA_FILES</code> variable from the <code>ScummVMBuild</code> class to <code>ScummVMStableBuild</code>,
### Add the engine data file to the <code>DATA_FILES</code> list in the <code>ScummVMBuild</code> class.
### Ping [[User:rootfather|rootfather]] for propagating the change to the buildbot.
# Make sure list of datafiles on the game pages are up to date (for example see [[Beneath_a_Steel_Sky#Required_data_files]] as a template)
# Make sure the engine and game are added to the [https://bugs.scummvm.org bug tracker] (engine in Components, game in Custom Fields->game)
# Prepare the Website update
## Update the compatibility data at [https://docs.google.com/spreadsheets/d/1QzwFleEKXOsE59cYMOcQB7C2f0Np48uAQOCG8kicX_s/edit#gid=854570757 the ScummVM Data spreadsheet] with compatibility information for the new game(s) (ping [[User:Sev|sev]] or [[User:Rootfather|rootfather]] for the access)
### If necessary, add the company to 'companies' tab
### Add engine to the 'engines' tab, make sure it is marked as enabled
### Add game to the 'games' tab, don't forget to provide the game hook to the Datafiles
### Add game to the 'compatibility' tab (to the very bottom, it is sorted by the release) using 'DEV' as the release
## If necessary, update the demos list at [https://docs.google.com/spreadsheets/d/1QzwFleEKXOsE59cYMOcQB7C2f0Np48uAQOCG8kicX_s/edit#gid=713475305 the ScummVM Data spreadsheet] with new game demos
# Upload the demos if any
## After uploading demos, put the links to the data spreadsheet
## Add the game category icon as described [[Screenshots#How_to_make_game_icon|here]]
# Publish a news entry announcing game testing at [https://github.com/scummvm/scummvm-web/tree/master/data/en/news scummvm/scummvm-web:data/en/news/] (e.g. [https://github.com/scummvm/scummvm-web/blob/master/data/en/news/20161201.markdown Full Pipe announcement]). Also, provide to [[User:Sev|sev]] several screenshots for the Facebook post. It is advised to put your draft to Google Docs and publish the link to the #team-talk on Discord for feedback and grammar fixes.  
## ''The following needs to be done in a close time gap, so please coordinate with [[User:Sev|sev]] before proceeding.''
## Copy the news to the forums, General Discussion subforum, mark the post as an announcement
## Ask [[User:Sev|sev]] to publish on Facebook and provide the game screenshots
## Ask [[User:Sev|sev]] to publish the link on Twitter
## Ask [[User:Rootfather|rootfather]] to publish the news on Mastodon
## Ask [[User:Sev|sev]] to copy the announcement text to the #news channel on Discord
# Publish the website changes
## Access the URL <code>https://www.scummvm.org/admin/update</code> for updating the website. You need to be a member of the website admin group in order to do so.

Latest revision as of 22:00, 24 October 2024

Once an engine has been accepted into the master branch, finished, and is ready to be playtested, do this stuff to get it ready:

PREREQUISITES:

  1. Zero warnings on major platforms (GCC, clang, MSVC is nice to have). See the buildbot logs and GitHub actions for having a general understanding
  2. No major flaws in Coverity Scan. The guide is here.

CHECKLIST:

  1. Change any ADGF_UNSTABLE flags in the engine’s detection table to ADGF_TESTING
  2. Change the [build-by-default] flag in the engine’s configure.engine file to yes
  3. Update the engine’s and game’s information pages in the wiki:
    1. Change the engine’s category from Category:Engines Not Added to ScummVM to Category:Engines Added to ScummVM by setting `dateAdded` in the EngineDescription.
    2. Change the game’s category from Category:Unsupported Games to Category:Supported Games
    3. Set the Support status in the infobox to the next ScummVM release version in form 'Since ScummVM X.X.0'
    4. Fill out any other missing information in the infobox
  4. Add the new game(s) to the NEWS file
  5. When the engine is using GUIO, add their description to the documentation (here is how to edit the documentation)
  6. Add the engine author(s) to the engines/<your-engine>/credits.pl file, in alphabetical order by last name (see SCUMM engine example) and run make credits to update the AUTHORS and credits.h files. You should also have scummvm-web repository checked out next to your scummvm directory, and then commit to both repositories. For the web repo the typical commit log message is "WEB: Sync credits".
  7. If the engine uses a data file, make sure it is added to the list of files to distribute:
    1. Add it to DIST_FILES_LIST in dists/engine-data/engine_data.mk
    2. On the Buildbot, in the buildbot-config/builds.py file:
      1. If there is no DATA_FILES variable defined under the ScummVMStableBuild class, copy the DATA_FILES variable from the ScummVMBuild class to ScummVMStableBuild,
      2. Add the engine data file to the DATA_FILES list in the ScummVMBuild class.
      3. Ping rootfather for propagating the change to the buildbot.
  8. Make sure list of datafiles on the game pages are up to date (for example see Beneath_a_Steel_Sky#Required_data_files as a template)
  9. Make sure the engine and game are added to the bug tracker (engine in Components, game in Custom Fields->game)
  10. Prepare the Website update
    1. Update the compatibility data at the ScummVM Data spreadsheet with compatibility information for the new game(s) (ping sev or rootfather for the access)
      1. If necessary, add the company to 'companies' tab
      2. Add engine to the 'engines' tab, make sure it is marked as enabled
      3. Add game to the 'games' tab, don't forget to provide the game hook to the Datafiles
      4. Add game to the 'compatibility' tab (to the very bottom, it is sorted by the release) using 'DEV' as the release
    2. If necessary, update the demos list at the ScummVM Data spreadsheet with new game demos
  11. Upload the demos if any
    1. After uploading demos, put the links to the data spreadsheet
    2. Add the game category icon as described here
  12. Publish a news entry announcing game testing at scummvm/scummvm-web:data/en/news/ (e.g. Full Pipe announcement). Also, provide to sev several screenshots for the Facebook post. It is advised to put your draft to Google Docs and publish the link to the #team-talk on Discord for feedback and grammar fixes.
    1. The following needs to be done in a close time gap, so please coordinate with sev before proceeding.
    2. Copy the news to the forums, General Discussion subforum, mark the post as an announcement
    3. Ask sev to publish on Facebook and provide the game screenshots
    4. Ask sev to publish the link on Twitter
    5. Ask rootfather to publish the news on Mastodon
    6. Ask sev to copy the announcement text to the #news channel on Discord
  13. Publish the website changes
    1. Access the URL https://www.scummvm.org/admin/update for updating the website. You need to be a member of the website admin group in order to do so.