Minimal GUI to deploy updates through a VCS repository
vcsdeploy allows you to easily deploy updates of your application to your customers through your favorite Version Control System. So far, only mercurial is supported, but it should be very easy to add support for additional VCSs.
The idea is that the application is installed by cloning the repository. Every version of the application is represented as a Mercurial tag: when vcsdeploy runs, it pulls changes from the designed remote repository, and it displays a window showing all the available versions. The user can then select the appropriate version and update the application to it.
Suppose your application myapp is installed in c:\\myapp. You need to write a basic config file, say myapp-config.py:
class Config(object): path = 'c:\\myapp' version_regex = '^Version'
path contains the local repository which contains the application. The repository must be configured in a way that hg pull pulls the remote repository without asking the user for any password, e.g. by using the ssh protocol or by storing the http password.
version_regex is a regular expression which is tested against all the tags found in the repository, to make sure that the user will see only the tags that start with Version. This way, we can still use Mercurial tags for internal development reasons, without cluttering what is displayed to the final user.
Then, we just need to launch vcsdeploy.pyw /path/to/myapp-config.py to start vcsdeploy.
To run vcsdeploy you need:
- mercurial installed as a Python package (i.e., you need to be able to do import mercurial from Python)
- the py lib (easy_install py)