summaryrefslogtreecommitdiff
path: root/tools/client-updates/README
diff options
context:
space:
mode:
Diffstat (limited to 'tools/client-updates/README')
-rw-r--r--tools/client-updates/README69
1 files changed, 69 insertions, 0 deletions
diff --git a/tools/client-updates/README b/tools/client-updates/README
new file mode 100644
index 00000000..56026b85
--- /dev/null
+++ b/tools/client-updates/README
@@ -0,0 +1,69 @@
+########################################
+# How to use the client updates system #
+########################################
+
+# Initial setup
+
+1. compile adler32: Run 'make' in the src directory.
+2. Copy example config and edit it to your needs:
+ $ cp client-updates.conf.example client-updates.conf
+3. Optionally, put the client-update-{gen,news,inspect,push} in your PATH
+4. Init a git repository for the client-updates dir, as zip updates will be committed.
+ $ git init
+ $ git add .
+ $ git commit -m 'Initial scripts'
+
+Now we have to generate the base update.
+If you have already base zip files, you can include them in the release/ directory.
+Fill properly the resources.xml and resources2.xml files.
+Otherwise, run client-updates-gen with proper arguments.
+1st arg is base commit, 2nd arg is final commit (HEAD if omitted).
+
+# Overview
+The process to manage client updates is as follows:
+
+1. a developer needs to include new client data.
+2. if not done already, he/she will set up a personal branch in the tmwa-client-data repo
+ and pull what is necessary.
+3. the tmwa-client-data repo has a "testing" branch which is the reference for generating the updates.
+ there is also the "master" branch which is in sync with mainline.
+ the developer will perform a merge in the "testing" branch, and if necessary resolve the conflicts.
+4. $ client-updates-gen
+ will generate if necessary a new zip and display its contents.
+5. optionally, you can check the contents of the updates is correct:
+ $ client-updates-inspect
+ This will list the contents of all updates in a pager, from most recent to oldest.
+6. $ client-updates-push
+ will sync the client updates to the local webserver directory
+
+As a general rule, never break the history of the "$CLIENT_DATA_BRANCH" branch of the tmwa-client-data repository.
+
+# Handling news -- only useful if not using the news of the server-data.
+
+1. $ client-updates-news
+ will open the news.txt for editing.
+2. Publish these changes.
+ $ client-updates-push
+
+# Details on the client-updates-gen script
+
+This script analyses the client data repo and generates
+a zip file with the files changed / added between 2 revisions.
+
+The script will check the differences between HEAD and the latest reference commit.
+The reference commit is determined by the latest entry in $UPDATES_DIR/resources2.src.txt
+
+# Config file (client-updates.conf)
+
+Several variables for finding the UPDATES_DIR, the client data repository,
+and ftp credentials.
+Find it next to client-updates-* scripts.
+
+# Client updates repository
+
+A local git repository is used for managing these scripts.
+This repository has 2 branches: master and updates
+The repository should always be left on the branch "updates": most scripts will write commits
+when updates are issued or when news.txt is updated.
+When you need to change things in the core scripts, change to master, commit, then rebase the "updates" branch.
+