Skip to content

vpdb/agent

Repository files navigation

VPDB Agent

A Windows desktop application that syncs local data with VPDB.

Build status Coverage Status

What is it?

A program that runs in the background on your cab and fills the gap between PinballX and VPDB.

It also comes with a nice UI for configuring and monitoring it. Oh, and it's completely real-time, meaning if you change stuff locally or on VPDB, VPDB Agent will know immediately and react.

Features

The MVP should have the following features:

  • Match local games against releases at VPDB
  • Update local games automatically from VPDB where enabled
  • Download starred games automatically from VPDB if enabled

From there, we can imaginate more features such as media management, browsing, rating and so forth.

For more details, see FEATURES.

Tech Stack / Dependencies

Tests

Tests are written with XUnit and Fluent Assertions. When using Resharper, use the plugin so you can easily debug. Coverage is still poor but increasing.

Database

The goal is to touch current XML files that make the PinballX database only when necessary (i.e. a release is updated). Instead, we keep a vpdb.json in each folder that contains the additional data we need to work with. This file basically serves as our local database and is updated as the XMLs are changed manually or by another application.

As for adding new games, the user can choose between a separate custom list or the original XML.

Packaging

We're using Squirrel for packaging the builds. In order to release a new version:

  1. Bump to release version at AssemblyInfo.cs AND vpdb-agent.nuspec. Also update release in the NU specs.

  2. Build Release

  3. Add new .dlls to vpdb-agent.nuspec if necessary.

  4. In the Package Manager Console, type:

    PM> nuget pack .\VpdbAgent\VpdbAgent.nuspec
    PM> squirrel --releasify .\VpdbAgent.0.0.x.nupkg
    
  5. Run .\Releases\Setup.exe and test

  6. If all good, commit, tag and push

  7. Package setup.exe as vpdb-agent-0.0.x.zip

  8. Create release on GitHub and attach zip

  9. Bump to snapshot version.

Credits

  • Error and crash reporting for VPDB Agent has kindly been provided by Raygun. And by the way, it also works with a ton of other platforms!

  • @andreaskoepf for some really helpful Rx suggestions

License

GPLv2, see LICENSE.