Releases info

Server update with intermediary snapshot (new, with mukmuk automation)

  • prepare snapshot
    1. get snapshot from mukmuk’s automation server
    2. extract 64bit snapshot
    3. rename etlegacy-v2.XX-XXX-gXXXXXX-x86_64/legacy/etl_bin_v2.XX_dirty.pk3 to etl_bin_v2.XX-XXX-gXXXXXX.pk3
    4. rename etlegacy-v2.XX-XXX-gXXXXXX-x86_64/legacypak3_dirty.pk3 to pak3_v2.XX-XXX-gXXXXXX.pk3
    5. repack the etlegacy-v2.XX-XXX-gXXXXXX-x86_64 folder into etlegacy-v2.XX-XXX-gXXXXXX-x86_64.tar.gz (with a top level subdirectory etlegacy-v2.XX-XXX-gXXXXXX-x86_64)
  • server update
    1. login to the dashboard on etlegacy.com
    2. upload the new etlegacy-v2.XX-XXX-gXXXXXX-x86_64.tar.gz in the file section
    3. In the game server section, stop the server (red button)
    4. Update server by selecting the new snapshot in the drop down list
    5. Restart server (green button)
    6. Using the rcon button, restart bots with "bot maxbots 14"
    7. connect to etlegacy.com server in-game, and check that everything is running fine

Server update with intermediary snapshot (old, manual way)

  • update the local sources
    1. cd ~/github.com/etlegacy/etlegacy
    2. git pull
    3. cd libs && git pull (if necessary)
  • build 32 and 64bit snapshots (remove -debug to get release build if necessary)
    1. cd ~/github.com/etlegacy/etlegacy
    2. BUILD_CLIENT=0 BUNDLED_LIBS=1 ./easybuild.sh -debug -64
    3. cp ./build/etlegacy-v2.XX-XXX-gXXXXXX-x86_64.tar.gz ~
    4. BUILD_CLIENT=0 BUNDLED_LIBS=1 ./easybuild.sh -debug -noextra
    5. cp ./build/etlegacy-v2.XX-XXX-gXXXXXX-i386.tar.gz ~
  • exit builder
    1. exit
  • transfer the files to your local Linux machine (from local machine account)
    1. scp -P XXXX :/home/username/etlegacy-v2.XX-XXX-gXXXXXX-i386.tar.gz .
    2. scp -P XXXX :/home/username/etlegacy-v2.XX-XXX-gXXXXXX-x86_64.tar.gz .
  • extract both snapshots
    1. extract etlegacy-v2.XX-XXX-gXXXXXX-x86_64/legacy/etl_bin_v2.XX_dirty.pk3
    2. extract etlegacy-v2.XX-XXX-gXXXXXX-i386/legacy/etl_bin_v2.XX_dirty.pk3
    3. add cgame.mp.i386.so and ui.mp.i386.so to etl_bin_v2.XX_dirty folder of 64 bit build
    4. add cgame_mp_x86.dll and ui_mp_x86.dll to etl_bin_v2.XX_dirty folder of 64 bit build (get them from a windows build of the same commit)
  • repack snapshot
    1. repack the etl_bin_v2.XX_dirty folder into etl_bin_v2.XX_dirty.pk3 (no etl_bin_v2.XX_dirty top level subdirectory)
    2. remove old extracted files
    3. rename etl_bin_v2.XX_dirty.pk3 to etl_bin_v2.XX-YYYY_dirty.pk3* (YYYY being the build number) to differentiate with local files
    4. rename pak3_dirty.pk3 to pak3_v2.XX-YYYY_dirty.pk3* (YYYY being the build number) to differentiate with local files
    5. repack the etlegacy-v2.XX-XXX-gXXXXXX-x86_64 folder into etlegacy-v2.XX-XXX-gXXXXXX-x86_64.tar.gz (with a top level subdirectory etlegacy-v2.XX-XXX-gXXXXXX-x86_64)
  • upload on server (from website interface)
    1. shut down server
    2. update server

Release checklist

  • Freeze
    1. Choose a target release date
    2. Check enabled features
    3. Update in-game and website credits
    4. Update translation (trigger Transifex bot)
    5. Update of Omni-bot packages
    6. Integrate last fixes
    7. Countdown started
    8. Build hype (blog, motd, ...)
  • Tag
    1. Update default version value in ETLVersion.cmake
    2. Tag release in Git
  • Release
    1. create installers
    2. upload on server
    3. announcement (blog, motd, twitter, facebook, reddit)
  • Enjoy!

Release checklist (long version)

  • Freeze
    1. Choose a target release date
    2. Check enabled features
    3. Update in-game and website credits
    4. Update of Omni-bot packages on mirror
    5. From now, only critical bug fixes and translation allowed
  • Build
    1. Windows, Linux 32 and 64 bit, MacOS X packages from current master are built (Release)
    2. Linux builds are compiled against oldest glibc as possible for maximum compatibility (CentOS 5/6)
      1. Ensure libs like libasound2-dev are installed before building
    3. All mod files are put in etl_bin.pk3
  • Game testing
    1. Test server is updated with test build
    2. "Testing night" are scheduled for devs and QA team (blog post?)
    3. Test both the ET:L client and the 2.60b client (connection to Legacy mod, possible UI errors)
    4. Detect bugs, fix, upload. Repeat until no more critical bugs are detected
  • Tag
    1. Integrate last translation files
    2. Integrate last credits changes
    3. Integrate other minor fixes
    4. Update default version value in ETLVersion.cmake
    5. Tag release in Git
  • Release
    1. Installer are created (RELEASE)
    2. upload on server
    3. new release announcement
    4. new MOTD
    5. news shared on Twitter/Facebook/forums/Reddit/etc.
  • Enjoy!