vrtc / chorus (public) (License: CC0) (since 2023-08-12) (hash sha1)
World of Warcraft add-on stub. The overall goal is to create a specialized raid frame.

/README.md (8660a7b6b158b3d7c82af258020ea93722ae2bee) (2761 bytes) (mode 100644) (type blob)

# Chorus

Chorus is a graphical user interface extension for a popular video game World
of Warcraft. It adds a custom raid frame. This is a work in progress.

Features:

  - approximate distance to every raid member in yards;
  - sort debuffs by relevance;
  - generalize raid and party frames;

Supported game version is legacy 3.3.5a (or interface 30300).

The motivation is to create a robust minimalistic raid frame. It must work
out-of-the-box and require no configuration by the user. It must be comparable
in it's features with modern native raid frame that was shipped with the game
since Cataclysm expansion (interface 40000).

This add-on will never feature key binding customization. This feature is
specifically excluded to be the subject of a different add-on.

## Install

The project is installed like any other World of Warcraft add-on. Exit the
game. Unpack the archive that contains the project's sources into
"${gamedir}/Interface/AddOns/" directory, where ${gamedir} is the path to the
game installation directory. In the end it must look something like this.

```
Interface/Addons/chorus/
Interface/Addons/chorus/bin/
Interface/Addons/chorus/etc/
Interface/Addons/chorus/share/
Interface/Addons/chorus/src/
Interface/Addons/chorus/README.md
Interface/Addons/chorus/chorus.toc
```

Experienced users may install the add-on with `git`.

```
git clone --branch master https://rocketgit.com/user/vrtc/chorus "${gamedir}/Interface/AddOns/chorus"
```

## Development

### Build dependencies

The project does not require any building steps to work. It can be freely
distributed as sources only. However, the project was developed using certain
tools that may still be applicable.

Build dependencies:

  - luacheck (static analysis for Lua);
  - xmllint (XML validator);
  - luarocks (packaging and project management for Lua);
  - ldoc (generate technical documentation from Lua sources);

#### Build dependencies for Debian 12

Install build dependencies for Debian 12.

```
apt-get install libxml2-utils lua-check luarocks lua-ldoc
```

#### Build dependencies for Windows

Insalling for Windows is much more tricky. The first step is to install
LuaRocks, then use LuaRocks to install LuaCheck and LDoc. xmllint can be
replaced with any XML parser that understands *.xsd.

### Build package

Validate Lua snippets for sanity.

```
luacheck --config etc/luacheckrc.lua src/
```

Validate Blizzard UI XML snippets for sanity.

```
xmllint --noout --scheme share/xml/FrameXML/UI.xsd
```

Package a *.zip archive for redistribution.

```
luarocks pack chorus-dev-1.rockspec
```

`luarocks` produces a source "rock" package that is a *.zip archive with a
conventional extension *.src.rock. The file can be safely renamed to a normal
*.zip archive.


Mode Type Size Ref File
100644 blob 22 d7f81b36af99095409dbf9a7a92e18a5c74e5ff5 .gitignore
100644 blob 2761 8660a7b6b158b3d7c82af258020ea93722ae2bee README.md
040000 tree - 386cdd1448b396d67052c9c421df4d307621c280 bin
100644 blob 376 f42a1b0a3a199d9409ddf63ae3a3757d95964e39 chorus-0.6-1.rockspec
100644 blob 214 42980f3866b3cf99f3b108f3c40c0c941a2c8ea0 chorus.toc
040000 tree - cac8af7ca5d8adc7771598e6faae482998b25fa2 doc
040000 tree - 4504d5dd5c7fcb9e8ba9b520435e1a2f26141b4b etc
040000 tree - b8d8f00bc7e3d12b8ba02a42e23f749222bfdd64 rocketgit
040000 tree - 5b8dd064c04749cf19281ed90842d3996ad61dc6 share
040000 tree - f24561c2c4d62db67d070831b9b44d661d357f43 src
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/chorus

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/chorus

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/chorus

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main