Common Object Installation Client
Uses Mercurial as backend for addon management. Developed for Orbiter Space Flight Simulator.
This is a small Windows GUI-frontend - developed in .NET - to a Mercurial repository holding a binary release of an application, game or utility. Since many modern applications or even games have APIs for plugin development, it is possible to have hundreds of addons or plugins the user has to deal with. Most applications don't provide any means of managing or organizing these addons.
COI Client tries to deal with this problem by means of dealing with addons not in the conventional way (package manager with dependencies), but using distributed version control. Instead of deploying a package with meta-data about its dependencies, authors can just commit their development environment to the system.
The project is currently in beta stage. All initially planned features are implemented.
Current version is 1.1.0.
The system is selfhosting by means of a COI hosting for the client here. Just initialize a COI in the application's installation directory and stay in sync with it. Processing new selections in this COI will cause the application to restart itself.
- Client side repository display (refresh button).
- Client side feature selection with simple merge algorithm (process button).
- Remote repository display (refresh button).
- Download of addons (download button).
- Adding/Editing/Moving/Replacing of addons (add button).
- Removing of addons.
- Upload of addons (upload button).
- Simple database update.
- Feature selection complex merge algorithm (reuse of past conflict resolutions).
- Complex database update with complete database merging
- Rebasing aka dependency reorder.
- Interactive dialogs for merging selection and passwords.
A rough roadmap can be found here.
- Download and install a Windows Mercurial distribution (TortoiseHG recommended). Everything from 1.0 up should suffice.
- Download the Windows installer for COIClient from here.
- Install on your system.
The interface is divided in 2 main panes: local and remote. The upper controls represent the address (file-system on local, URL on remote). The main part shows the addon trees, with basic controls in the middle - Process (switching the working directory to the selected state), Download (get addons from remote to local), Upload (push addons from local to remote), Add (create new addon "commit") and Remove (remove addon from local repository).
- The local address box can't receive backslash characters. Either use the browse dialog or copy&paste a backslash character. The built-in intellisense path browser should help...
- The system only downloads the selected addon "tags", nothing more. If your addon depends on another addon, it will be of course downloaded by the DVCS, but the metadata will not be displayed if not explicitly downloaded. So if A depends on B and both are new addons, you can only download A without getting B's meta data. In your local list, only A will show up then, not B. If you "download" B later on, only the metadata will be updated, your file repository will stay the same. This will be addressed in later download mechanisms.
- Uploads only work with file repositories or via wire-protocol with open access. There is no interface for password dialogs and the like at the moment.