Skip to content

Latest commit

 

History

History
140 lines (91 loc) · 2.3 KB

DEVELOPMENT.md

File metadata and controls

140 lines (91 loc) · 2.3 KB

Development

This repository follows the Conventional Commits specification for commit messages.

Requirements

Setup

  • Create a .env file at the root of the project containing:
DOTA2_PATH="/path/to/dota2"
  • Install node packages:
npm install
  • Initialize luarocks:
luarocks init --local
  • Add <project_dir>/lua_modules/bin to the PATH.

A note about rocks tree isolation

Custom rocks trees defined with rocks_trees in a LuaRocks user config (usually at $HOME/.config/luarocks/config.lua or $HOME/.luarocks/config.lua) will get added to the project's rocks_trees config too (this is a LuaRocks specific behavior).

To truly isolate the project tree from everything else, I recommend appending the following to <PROJECT_ROOT>/.luarocks/config-5.1.lua (after running luarocks init):

rocks_trees = {}

Then verify LuaRocks is using only the projects rocks tree by running:

luarocks config rocks_trees

It should print something like this:

{
   {
      name = "project",
      root = "<PROJECT_ROOT>/lua_modules"
   }
}

Testing

Run tests:

task test

Building

task build

Release

  • Update changelog:

    • Re-generate file with git-cliff

      git-cliff --bump -o CHANGELOG.md
    • Commit changes

  • Update version

    • Update version strings

      • game/scripts/vscripts/invokation/const/metadata.lua
      • src/content/panorama/scripts/lib/constants.ts
    • Commit changes with chore(release) label

      git commit -m "chore(release): version <VERSION>"
  • Rebuild and test version changes in UI

  • Create and push tag

    git tag -m "version {version}" v{version}
    git push --follow-tags
  • Create release on GitHub from tag

  • Publish release to Steam Workshop

    Change note template:

    v{version}
    
    ### Gameplay
    
    - ...
    
    ### UI
    
    - ...
    
    ---
    
    Issues: https://github.com/13k/invokation/issues