Skip to content

Refactor metadata_manager to move to versions provider based model#244

Merged
shiv-tyagi merged 8 commits into
ArduPilot:mainfrom
shiv-tyagi:feat/manifest-provider
Jul 15, 2026
Merged

Refactor metadata_manager to move to versions provider based model#244
shiv-tyagi merged 8 commits into
ArduPilot:mainfrom
shiv-tyagi:feat/manifest-provider

Conversation

@shiv-tyagi

Copy link
Copy Markdown
Member

This PR refactors the versions manager to move to a versions provider based model.

We introduce three providers:-

  1. ManifestJson provider which parses manifest.json from the firmware server and list officially released versions on custom build server based on that. We are moving away from a release git tags based method, to make sure we are in sync with official firmware server and also make sure we have features.txt for all versions we have.
  2. A whitelisted-tags provider which pulls tags in repo of whitelisted forks and list them for building on the custom build server.
  3. remotes.json based provider to allow manually listing versions on custom build server by adding entries into the file.

I have tested this locally and it works good.

I will update #242 to use the same manifest json client we introduced in this PR to help listing the standard builds for a vehicle-version-release combination.

@shiv-tyagi shiv-tyagi changed the title Refactor metadata_manager to move to versions provider based model Refactor metadata_manager to move to versions provider based model Jul 11, 2026
@shiv-tyagi
shiv-tyagi requested a review from peterbarker July 11, 2026 04:30
@shiv-tyagi
shiv-tyagi force-pushed the feat/manifest-provider branch from 7ab3df1 to 23eb457 Compare July 11, 2026 04:59

@peterbarker peterbarker left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduces a race condition where the SHA a user is dealing with can disappear while they're playing in the interface. Should be explicitly commented on somewhere. Even better if we can find a neat solution :-)

LGTM

Comment thread metadata_manager/firmware_server/__init__.py Outdated
Comment thread metadata_manager/versions_manager/manager.py Outdated
Comment thread builder/requirements.txt Outdated
Comment thread web/core/config.py Outdated
Comment thread metadata_manager/firmware_server/client.py Outdated
@shiv-tyagi
shiv-tyagi force-pushed the feat/manifest-provider branch from 23eb457 to 54a1884 Compare July 15, 2026 05:39
@shiv-tyagi

Copy link
Copy Markdown
Member Author

Thanks for the review @peterbarker. I have addressed your comments.

Introduces a race condition where the SHA a user is dealing with can disappear while they're playing in the interface. Should be explicitly commented on somewhere. Even better if we can find a neat solution :-)

The race was always there. Even when we used github tags to fetch releases. It is very hard to know if there is anyone on the client side who has fetched a SHA but it moved before the hit build. I will think about reducing the possibility of that happening.

@shiv-tyagi
shiv-tyagi merged commit 4e104d6 into ArduPilot:main Jul 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants