Releases info

Server update with intermediary snapshot

  • 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. optionally 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. 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!