Comments (5)
While AppStream historically allows hyphens in component-IDs, today we try to align the component-ID with other commonly used IDs for the application, like the AppID and D-Bus interface names. The latter is especially relevant because many new apps support being launched by D-Bus (see https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#dbus ).
The benefit of having only one name is obviously to reduce confusion and needless renaming. So, while AppStream does support hyphens, D-Bus doesn't (and also no parts of the string starting with numbers). We can't remove support for hyphens from AppStream completely, as that would break backwards compatibility, but for new metadata we strongly discourage using them, and appstreamcli validate
will throw an INFO-type hint if your component-ID contains one.
You can read more about this in the specification, see the info-box at https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic
I hope that clarifies things :-)
from metainfocreator.
Btw, your ID could be io.github.jacalz.wormhole_gui
or maybe io.github.jacalz.wormholegui
. In the past, there was some debate around using the com.github
namespace, as that would be reserved for GitHub apps themselves, while user-created stuff would be under io.github
, but I do not recall anyone from GitHub ever weighing in on that discussion. So, using either is probably fine (the metainfo-creator will generate the .io variant regardless after entering the URL, just in case).
from metainfocreator.
Thanks for taking your time with the detailed answer. It certainly does clarify things a lot. It is greatly appreciated 👍
Yeah, you are probably right that it makes more sense to use io.github
over com.github
and it makes even more sense since I am planning on creating my own jacalz.github.io
website.
There is one issue though, fyne (the ui toolkit that I used for creating the application) uses the application id in it's local storage of settings. The problem is that just moving over to io.github.jacalz.wormhole_gui
would be a breaking change as all the user's settings would be lost. That would warrant a 3.0.0 release, which feels a bit drastic when I recently released 2.0.0. I understand that this probably isn't something you would suggest, but would it work to create the metadata as com.github.jacalz.wormhole_gui
and then manually rename and modify the file as com.github.jacalz.wormhole-gui
until I can change the id entirely? As my software is cross-platform (thus no dbus support), it could work as a temporary solution?
from metainfocreator.
You don't have to have your component-ID match all the other IDs - it's certainly nicer that way, but if doing so would result in breakage, it's better to have two separate IDs (ideally only temporarily).
So you could give your metadata an io.github.jacalz.wormhole_gui
component-ID and just leave all other identifier as they are (you could even have a component-ID with a hyphen, but I would advise against that, just to be future-proof).
For AppStream, that ID is really only just an identification string that is used to make your app uniquely known to operating systems and software centers, and is used to associate extra data (like ratings and reviews) with it. It's not, unlike with D-Bus, used for any code generation and may differ from other IDs used in the app with the only drawback of then having in-app ID inconsistencies that may confuse the developer :-P
from metainfocreator.
Alright. Thank you for the response 🙂
from metainfocreator.
Related Issues (11)
- Prepopulate reasonable default value HOT 2
- Wishlist: Metainfo validation service HOT 3
- Add support for creating OARS rating
- Add fields for donations, bug tracker and translations HOT 3
- Add support for adding releases HOT 1
- Error if no www. subdomain HOT 1
- Ambiguosly choosing LGPL license HOT 1
- Homepage is missing from the generated config HOT 1
- Capitalisation and hyphenation of final element of <id>
- Missing secondary category spell checker HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metainfocreator.