Skip to content

RFC: product manifests#174

Open
johnthecat wants to merge 3 commits into
mainfrom
rfc/product-manifest
Open

RFC: product manifests#174
johnthecat wants to merge 3 commits into
mainfrom
rfc/product-manifest

Conversation

@johnthecat

@johnthecat johnthecat commented May 15, 2026

Copy link
Copy Markdown
Contributor

@johnthecat johnthecat self-assigned this May 15, 2026
@andrew-ifrita

Copy link
Copy Markdown

related issue for historical context: paritytech/dotns#53

@BigTava BigTava left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Looks good. I think it misses a very simple example of everything put together just for demonstration purposes.


type CommonExecutableFields = {
$v: 1;
appVersion: SemVer; // Product-defined SemVer of this executable.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This reads confusingly. Does the version only apply to the app? Previously we state each executable is versioned. Suggest rename to just version or executableVersion.


type WidgetManifest = CommonExecutableFields & {
kind: 'widget';
description?: string; // Optional tagline shown on the widget card.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Since we have description already in RootManifest we can name this field differently like tagline.


```typescript
type LocalProductConfig = {
productName: string; // dotNS base name (e.g. "hackm3.dot").

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Shouldn't this be productId. We use <product_id> everywhere else. It might be redundant to have hackme3.dot here since we are fetching the manifest from the dotns label entry hackme3.dot already.

Comment on lines +215 to +216

## Publisher implementation

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This section sounds like a recipe for implementations. I don't think we should mix rules with example processes in this RFC. I suggest keeping a short "Publisher requirements" or move this into an "## Appendix A - Reference publisher flow"


If any assertion fails, treat as a write failure: trigger the snapshot-restore path from Step 7's *Rollback on partial failure*, then abort with a diagnostic.

## Host implementation

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Same comment as above. The RFC concerns a well defined convention for hosts and products to follow. It also evolves independently of hosts implementation or underlying systems. Tomorrow the dotNS contract API could change, Bulletin could be replaced with a different storage solution - none of which should require amending this RFC. I suggest moving this to Appendix B - Reference host implementation.

@johnthecat johnthecat force-pushed the rfc/product-manifest branch from b0fd221 to 8b0e27b Compare June 1, 2026 13:31
@BigTava

BigTava commented Jun 8, 2026

Copy link
Copy Markdown

@filvecchiato this RFC is not in truapi repo.

@filvecchiato

Copy link
Copy Markdown
Contributor

@johnthecat can you please raise RFCs in truapi and not here, otherwise we will have diffs in the api

@filvecchiato

Copy link
Copy Markdown
Contributor

@filvecchiato this RFC is not in truapi repo.

porting it over now thanks for flagging

@BigTava

BigTava commented Jun 8, 2026

Copy link
Copy Markdown

porting it over now thanks for flagging

Do you have the link?

@filvecchiato

Copy link
Copy Markdown
Contributor

paritytech/truapi#206

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.

4 participants