Open main menu

Difference between revisions of "HOWTO-Engine Release"

Update engine data steps, remove steps that are now automated
(clarified spreadsheet update)
(Update engine data steps, remove steps that are now automated)
(9 intermediate revisions by 3 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>
Line 9: Line 15:
## 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.md NEWS file]
# Add the new game(s) to the [https://github.com/scummvm/scummvm/blob/master/NEWS.md NEWS file]
# When the engine is using GUIO, add their description to the [https://docs.scummvm.org/en/v2.2-docs/settings/engine.html documentation] ([[Developer_Central#Contribution_guide_for_technical_writers|here]] is how to edit the documentation)
# 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 ''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".
# 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".
# If the engine uses a data file, make sure it is added to the list of files to distribute:
# If the engine uses a data file, make sure it is added to the list of files to distribute:
## Add it to ''DIST_FILES_ENGINEDATA'' in ''Makefile.common''
## Add it to ''DIST_FILES_LIST'' in ''dists/engine-data/engine_data.mk''
## Add it to ''dists/scummvm.rc''
## Add it to ''dists/irix/scummvm.idb''
## Add it to ''dists/win32/migration.txt''
## Add it to ''backends/platform/maemo/debian/rules''
## Add it to ''devtools/create_project/xcode.cpp'' (in the ''XcodeProvider::getResourceFiles()'' function).
## On the Buildbot, in the [https://github.com/scummvm/dockerized-bb/blob/master/buildbot-config/builds.py ''buildbot-config/builds.py''] file:
## On the Buildbot, in the [https://github.com/scummvm/dockerized-bb/blob/master/buildbot-config/builds.py ''buildbot-config/builds.py''] file:
### 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>,
### 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>,
Line 24: Line 25:
# 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 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)
# Make sure the engine and game are added to the [https://bugs.scummvm.org bug tracker] (engine in Components, game in Custom Fields->game)
# 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.
# Prepare the Website update
## ''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:Sev|sev]] to copy the announcement text to the #news channel on Discord
# Update the Website
## 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)
## 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
### If necessary, add the company to 'companies' tab
### Add engine to the 'engines' tab, make sure it is marked as enabled
### 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 'games' tab, don't forget to provide the game hook to the Datafiles
### Add game to the 'compatibility' tab
### 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
## 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
## Run <tt>composer update-data</tt> for updating the website
# Upload the demos if any
# Upload demos if any
## After uploading demos, put the links to the data spreadsheet
## After uploading demos, put the links to the data spreadsheet
## Add the game category icon as described [[Screenshots#How_to_make_game_icon|here]]
## 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.