Vvvv releases public API


A feature request for GammaLauncher comes every now and then : it does not allow to quickly download stable releases. I agree, that’s a bummer.

Sadly, there’s not much I can do about it right now for a bunch of reasons :

  • I’m using the TeamCity REST API which is horribly painful to work with, especially when you don’t use TeamCity yourself :)
  • The fact that the launcher sees releases or not relies on how the devvvvs set it up : changing the name of a project or a branch has a direct influence on whether the launcher can retrieve releases or not

So, here’s my request : is there any way the devvvvs could come up with some sort of public API listing vvvv gamma releases, both stable and previews?

Ideally, this thing would give :

  • The version number
  • Whether it’s stable or preview
  • A direct link to both online and offline installers
  • A link to that version’s changelog

Would be cool to be able to filter releases via the API, to retrieve only previews or stables.

Now I’m not aware of how TeamCity works, but maybe some kind of post-build actions could automate that process? My two cents : an on-premise Directus instance could serve that “releases” API.

Please throw ideas, comments, whatever :-)

Muchas gracias and have a nice day

1 Like

As a starter I just tagged the last two releases. Tagging builds is super easy, we could also automate that. The query for release builds therefor is:


The query for preview builds could simply be asking for builds from the main branch:


Setting up a proper web API hiding those details would be nice indeed.


Yep, tagging seems like a good first step to make it more “abstract”.

I’ll give a spin to those queries, thanks for setting that up!

Works like a charm ;) Thanks!


One TeamCity related questions though : when querying stable releases, I see the version is always something like 2023.5.0.1. Will the year prefix stay there forever? Why the .1 in the end?

    "count": 4,
    "href": "/guestAuth/app/rest/builds?locator=defaultFilter:false,tag:release,lookupLimit:5",
    "build": [
            "id": 37342,
            "buildTypeId": "vvvv_gamma_Build20225",
            "number": "2023.5.2.1",
            "status": "SUCCESS",
            "state": "finished",
            "branchName": "release/5.2",
            "pinned": true,
            "href": "/guestAuth/app/rest/builds/id:37342",
            "webUrl": "https://teamcity.vvvv.org/viewLog.html?buildId=37342&buildTypeId=vvvv_gamma_Build20225",
            "finishOnAgentDate": "20230609T145121+0200"
            "id": 37324,
            "buildTypeId": "vvvv_gamma_Build20225",
            "number": "2023.5.1.1",
            "status": "SUCCESS",
            "state": "finished",
            "branchName": "release/5.1",
            "pinned": true,
            "href": "/guestAuth/app/rest/builds/id:37324",
            "webUrl": "https://teamcity.vvvv.org/viewLog.html?buildId=37324&buildTypeId=vvvv_gamma_Build20225",
            "finishOnAgentDate": "20230524T160905+0200"
            "id": 37207,
            "buildTypeId": "vvvv_gamma_Build20225",
            "number": "2023.5.0.1",
            "status": "SUCCESS",
            "state": "finished",
            "branchName": "release/5.0",
            "pinned": true,
            "href": "/guestAuth/app/rest/builds/id:37207",
            "webUrl": "https://teamcity.vvvv.org/viewLog.html?buildId=37207&buildTypeId=vvvv_gamma_Build20225",
            "finishOnAgentDate": "20230419T173148+0200"
            "id": 36679,
            "buildTypeId": "vvvv_gamma_Build",
            "number": "2021.4.12",
            "status": "SUCCESS",
            "state": "finished",
            "branchName": "release/2021.4.12",
            "pinned": true,
            "href": "/guestAuth/app/rest/builds/id:36679",
            "webUrl": "https://teamcity.vvvv.org/viewLog.html?buildId=36679&buildTypeId=vvvv_gamma_Build",
            "finishOnAgentDate": "20221205T131953+0100"

Good to know.

The year will probably need to stay until we come up with a new name for all our packages on nuget.org which is rather unlikely to happen anytime soon.

The .1 in the end I was wondering myself. We’re using GitVersioning to generate the version, so maybe we’re missing some option there.