-
-
Notifications
You must be signed in to change notification settings - Fork 22
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
Relationship to AppDir specification at docs.appimage.org/reference/appdir.html? #18
Comments
I am not entirely happy with the content of docs.appimage.org/reference/appdir.html since it might be (mis-)interpreted that we own the AppDir spec. Which is not the case. https://github.com/AppImage/AppImageKit/wiki/AppDir says:
Over time, we have been habitually extending the AppDir format, for example by using files for desktop integration if they happen to be in |
@probonopd I've said it quite a lot of times, but let me repeat myself once again: We do own this specification, as we basically inherited whatever ROX have invented, and extended it in many regards. |
By the way, the History section is more appropriate than the outdated wiki page:
The General Description contains info on what is being used from the ROX description, and that we don't use a couple of entries but introduced our own:
Therefore, my point is we actually inherited their spec and developed on it. Call it a fork or a new version, but we're not using theirs but have our own. Therefore I felt it was time to write a "specification" for it. Please show me why you think that is not the case. I want to understand your thinking here. |
Once one writes a spec (or a new version of a spec) for something, things are no longer "just by convention" but they have to be followed. So I want to write specs once things have settled enough and one has experimented enough to conclude how things should be done. To give you an example: When I started with AppImage, I wanted to have self-contained application bundles similar to the Mac. I could have invented a random new directory structure or adopted the format from the Mac, with Only over time I noticed that when putting together ROX-style AppDirs, it was convenient for me to have a FHS-style As time progressed, we introduced desktop integration with the optional Just because most of the AppImages I had made so far were already coincidentally using a FHS-style Some considerations should be made (and have never explicitly been made so far) if we really ever want to bring out a new AppDir spec:
and the like. So, before we officially(!) "extend" the AppDir spec, I'd like to see some thought to go into those things. Just because I pragmatically started doing some things (usually using the least complex, most straightforward way) it doesn't necessarily mean it's the right thing to do. Also, I still believe that KDE, Gnome etc. should support an AppDir-like bundle structure properly and natively, entirely independently of AppImage. So they are stakeholders in such a discussion, which is necessarily broader than just how the directory format looks like. |
My quick brainstorm take on things is this: the content of an appimage can be possibly split in three types:
Some content might fall into more than one type, if reuse is wanted. The type 1 depends on what structure the application software itself expects/relies on (as also prepared by AppRun), both in format of content and where to find in the appdir filesystem. From this, to allow flexibility for the future as well as avoid unneeded constraints on the specification of appdir/appimages, having type 2 and type 3 each in some own, separate structure and format allows to decouple things. E.g. if one day non-xdg-fs-based application software is distributed in AppDir format, metadata and integration data would not be affected, as they are independently defined and stored/accessed, so those handlers only looking at type 2 and type 3 data can work as before. To avoid data duplication, if some app payload files can be reused for metadata & system integration, they could be sym-linked/hard-linked from the respective other locations. As it already is done often with the When it comes to (partial) compatibility to existing self-contained application container formats, I am undecided if one should try to go for that, as it might result in also only partially working solutions if those try to do cross support. Then I am also a fan of release often & early, also when it comes to things others rely on, like specs. Of course this results in unavoidable breaking changes now and then when backward compatibility is not easily possible, rendering old efforts/artifacts no longer working, but that is the price of advancing. |
There's nothing like "opinions" here. We do specify our own list of requirements for AppDirs already. You can't reject this fact. It's very important to stand behind this and actually also specify that, that way you have a document you can share with others and refer to in discussions. |
We can either:
Which approach do we want to use? |
The first approach is equal to the second, but less obvious and probably harder to read/understand. I'd go for the second. By the way, I never said the AppDir spec does have to stay in that shape. I'm fine with rewriting it. We could move it into this repo even. Why does it have to be called 2.0? |
Could also be 1.x, if we break nothing from ROX's version. |
To be investigated, I guess. Do you want to give writing an AppDir spec based on my work in the docs a try? Version can be determined later. |
As said before, I try to avoid unnecessary "admin" work "wie der teufel das weihwasser". I think it's sufficient to slightly tweak AppImageSpec like @kossebau has started doing. |
Disappointing. We really need better and more specific documentation. Specifications are documentation... |
There is no hint which one overrules the other, while some content is contradicting.
Examples:
The text was updated successfully, but these errors were encountered: