Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide advisory on naming of custom features to avoid possible conflicts #9557

Closed
alimirjamali opened this issue Nov 3, 2024 · 3 comments · Fixed by QubesOS/qubes-core-admin-client#316
Assignees
Labels
C: core P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. pr submitted A pull request has been submitted for this issue. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.

Comments

@alimirjamali
Copy link

alimirjamali commented Nov 3, 2024

How to file a helpful issue

The problem you're addressing (if any)

If user sets a feature for their local personal program (or whatever reason), it might be allocated by Qubes OS project in the future and break something. Just like how it is mentioned in #7730

The solution you'd like

  1. Allocate some prefixes (e.g. user-, custom- or dev-) for user custom features workflow. Never use them it in future developments. Document this.
    Optional:
  2. Have a database of all known features. If user tries to set an unknown feature without the above prefixes, warn them that it might conflict with future features and they would better prepend the custom prefixes.

The value to a user, and who that user might be

Advanced users and 3rd party developers who might need custom features.

Completion criteria checklist

(This section is for developer use only. Please do not modify it.)

@alimirjamali alimirjamali added P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality. labels Nov 3, 2024
alimirjamali added a commit to alimirjamali/qubes-core-admin-client that referenced this issue Nov 3, 2024
Allocating `user-*`, `custom-*` and `dev-*` feature prefixes to end
users.

resolves: QubesOS/qubes-issues#9557
@andrewdavidwong andrewdavidwong added the pr submitted A pull request has been submitted for this issue. label Nov 5, 2024
@marmarek
Copy link
Member

Generally a good idea. I wonder about specific prefix - the ones you proposed is not a bad idea, but still may result in some conflicts with 3rdparty extensions (for example I can see several people coming at custom-start-services name with different semantics, and some may also publish their setup as salt formulas to reuse by others...).
Maybe encourage some user/project specific prefix? Like user-marmarek-... or custom-qusal-... ? Or maybe shorter x-marmarek-... (x- prefix is common for extended unregistered values in various protocols). There is of course still a chance for a conflict (I don't think it's desirable to enforce any central register of those prefixes - after all, the point of this recommendation is to allow user safely using their own features without registering them anywhere), but should be much smaller.

@alimirjamali
Copy link
Author

alimirjamali commented Nov 15, 2024

Or maybe shorter x-marmarek-... (x- prefix is common for extended unregistered values in various protocols)

This sounds very good for private use.

I also considered reverse domain name notation. Something like tld.domain.app.feature_key. e.g. com.example.feature_key or press.freedom.securedrop.feature_key. This might be safe to be shared with other users without any worries for conflicts. p.s.: As far as I know, there is no existing official feature with dot in key.

@marmarta
Copy link
Member

I agree with x-[project-or-username] pattern. It also clearly distinguishes features that are part of core qubes from custom ones; and big projects like SecureDrop could use e.g. sd- prefix, which would be kind of visually consistent.

alimirjamali added a commit to alimirjamali/qubes-core-admin-client that referenced this issue Nov 19, 2024
Allocating `user-*`, `custom-*` and `dev-*` feature prefixes to end
users.

resolves: QubesOS/qubes-issues#9557
alimirjamali added a commit to alimirjamali/qubes-core-admin-client that referenced this issue Nov 19, 2024
Allocating `x-*` feature prefix to end users.

resolves: QubesOS/qubes-issues#9557
marmarek added a commit to QubesOS/qubes-core-admin-client that referenced this issue Dec 17, 2024
* origin/pr/316:
  Dedicate `x-` prefix for user's custom features

Pull request description:

Allocating `x-*` feature prefix to end users.

resolves: QubesOS/qubes-issues#9557
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C: core P: default Priority: default. Default priority for new issues, to be replaced given sufficient information. pr submitted A pull request has been submitted for this issue. T: enhancement Type: enhancement. A new feature that does not yet exist or improvement of existing functionality.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants