Date (UTC) |
User |
Event |
2025-02-12 19:53 |
vrtc |
Reference refs/heads/develop updated from d0a3f26c22df0484f0d681aaae7f707ce963a843 to f6423c6113559ed00f07a79584e6ef24f78e81d7 |
2025-02-11 06:43 |
vrtc |
Reference refs/heads/develop updated from b4701b9c13fbdea44089eae83444e4a24a878a03 to d0a3f26c22df0484f0d681aaae7f707ce963a843 |
2025-02-11 06:43 |
vrtc |
Annotated tag refs/tags/0.13.0 created (290dae518af1292d39bf05a098f7d5f67e9ebab0) |
2025-02-11 06:43 |
vrtc |
Reference refs/heads/master updated from 2bab0ef29f306ee60f66a00020ef063ebe1a9f93 to d0a3f26c22df0484f0d681aaae7f707ce963a843 |
2025-02-11 06:31 |
vrtc |
Reference refs/heads/develop updated from 91fad9b3decb82a8e289ca38b06a15c25dce19b0 to b4701b9c13fbdea44089eae83444e4a24a878a03 |
2025-02-10 20:25 |
vrtc |
Reference refs/heads/develop updated from 1dd2e348bd15aa642c36057c2f92484755a4cb57 to 91fad9b3decb82a8e289ca38b06a15c25dce19b0 |
2025-02-09 23:15 |
vrtc |
Reference refs/heads/develop updated from f34c334ca838ca8c26106f89fa7e088bf74af36b to 1dd2e348bd15aa642c36057c2f92484755a4cb57 |
2025-02-09 23:04 |
vrtc |
Reference refs/heads/develop updated from 3d9a3ac39962ca2e39f7a330abe74a229b822e4e to f34c334ca838ca8c26106f89fa7e088bf74af36b |
2025-02-09 01:04 |
vrtc |
Reference refs/heads/develop updated from fc0a3ac65c9a4682025639d416083bbfc690023f to 3d9a3ac39962ca2e39f7a330abe74a229b822e4e |
2025-02-05 11:41 |
vrtc |
Reference refs/heads/develop updated from b11c7f4419d8afdf3c2221b13b52ddb159f022d9 to fc0a3ac65c9a4682025639d416083bbfc690023f |
2025-02-04 06:16 |
vrtc |
Reference refs/heads/develop updated from eba1730d3b334f8900397d3189ad77a6d66cbb5d to b11c7f4419d8afdf3c2221b13b52ddb159f022d9 |
2025-02-03 03:12 |
vrtc |
Reference refs/heads/develop updated from bfbf2801905362c915f3dbf1e50f7c68b5ac6bdc to eba1730d3b334f8900397d3189ad77a6d66cbb5d |
2025-02-02 00:10 |
vrtc |
Reference refs/heads/develop updated from 390fb24c1b2a19e378694adfa6efc7c93bdf1a55 to bfbf2801905362c915f3dbf1e50f7c68b5ac6bdc |
2025-01-29 16:46 |
vrtc |
Reference refs/heads/master updated from 7858beed60732f3548ff55124b50f2cbb84ecb38 to 2bab0ef29f306ee60f66a00020ef063ebe1a9f93 |
2025-01-29 16:45 |
vrtc |
Reference refs/heads/develop updated from 9dcf5e6ef1cd5a254fa00bcbd1ede9235dc59cd0 to 390fb24c1b2a19e378694adfa6efc7c93bdf1a55 |
2025-01-29 16:45 |
vrtc |
Annotated tag refs/tags/0.12.0 created (31174df80c03cabfce917b6b5bd19e27c88c5f59) |
2025-01-29 09:39 |
vrtc |
Reference refs/heads/develop updated from e6afb8d72b74ddbf1f0ac88bd8ee8d62a61a85a5 to 9dcf5e6ef1cd5a254fa00bcbd1ede9235dc59cd0 |
2025-01-28 05:14 |
vrtc |
Reference refs/heads/develop updated from 95249f24afd423899b14b5aa70440d2900da49d0 to e6afb8d72b74ddbf1f0ac88bd8ee8d62a61a85a5 |
README.adoc:
= Chorus
Vladyslav Bondarenko <vladyslavbond@protonmail.com>
0.10.0 (testing), 2024-01-28
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
`${DESTDIR}/Interface/AddOns/` directory, where `${DESTDIR}` is the path to the
game installation directory. In the end it must look something like this.
----
${DESTDIR}/Interface/AddOns/chorus/chorus.toc
${DESTDIR}/Interface/AddOns/chorus/doc/
${DESTDIR}/Interface/AddOns/chorus/etc/
${DESTDIR}/Interface/AddOns/chorus/Makefile
${DESTDIR}/Interface/AddOns/chorus/README.adoc
${DESTDIR}/Interface/AddOns/chorus/share/
${DESTDIR}/Interface/AddOns/chorus/src/
${DESTDIR}/Interface/AddOns/chorus/target/
${DESTDIR}/Interface/AddOns/chorus/test/
----
Experienced users may install the add-on with `git`.
----
git clone --branch master -o upstream https://rocketgit.com/user/vrtc/chorus "${DESTDIR}/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:
* `make` (build instrumentation);
* `git` (versioning, packaging, distribution);
* `luacheck` (static analysis for Lua);
* `xmllint` (XML validator);
* `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 lua-ldoc make git
----
==== 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
Navigate to the source directory.
The source directory is where the distribution archive was unpacked to, where
the repository was cloned to, or where the add-on was already installed to.
The build is done with `make` utility. All example commands assume it's
installed.
Minimal effort was made to make the `Makefile` adhere to `GNUmakefile`
conventions.
Validate Lua snippets for sanity. Requires `luacheck`. The configuration is
loaded from `etc/luacheckrc.lua`.
----
make check-lua
----
Validate Blizzard UI XML snippets for sanity. Requires `xmllint`. The schema is
loaded from `etc/FrameXML/UI.xsd`. The schema descriptor was exported from
the game client, version 3.3.5a.
----
make check-xml
----
Do both.
----
make check
----
Package a `*.zip` archive for redistribution. Requires `git`. More importantly,
it requires the project's source repository to be cloned. Therefore, it will
not work if the project's was obtained from a distribution archive.
----
make dist
----
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