-
Notifications
You must be signed in to change notification settings - Fork 40
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
Rewrite, improve, update and correct the documentation #102
base: master
Are you sure you want to change the base?
Conversation
Previously, tables with much text in a row had had scroll bars to scroll through all the text instead of automatic line breaks. This is due to an open issue in the sphinx read the docs theme (readthedocs/sphinx_rtd_theme#1505). A workaround has been implemented to fix this until the issue is resolved. Additionally, grid tables have been replaced by list tables. This allows explicitly setting the width of the columns and makes it easier to change the tables in the future.
The linuxdeploy user guide has been rewritten, improved and updated. In general, the explanation of how linuxdeploy can be used has been massively improved. There is now a clear explanation of the two distinct ways and its easier to understand how to use linuxdeploy without make. The misleading term "Manual packaging" has been removed as well. Additionally, there are many smaller improvements, namely: - Documentation on the command line arguments --appstream-file, --appdir, --plugin and --output has been added. (This depends on linuxdeploy/linuxdeploy#288 being merged). - The introduction has been improved and now explains the core ideas better. - Additional information about the command line arguments --icon-file and --executable as well as about plugins has been added (and wrong information has been corrected). - An incorrect link to a different section has been corrected. - TODOs about further improvements that also affect other sections have been added.
The packaging guide overview has been rewritten, improved and updated. A table that gives an overview of the different methods to create AppDirs and the corresponding AppImages has been added. It lists their advantages, disadvantages and differences. Additionally, TODOs to remove the (outdated) rest of the overview and to make a section for each AppImage creation method have been added.
Information about each appimage creation tool has been collected, created and unified into one folder. The linuxdeploy and pkg2appimage files have been moved into the new folder. They have been improved: Additional information from the new overview has been included and the introductions have been improved. The appimage-builder and electron-builder sections in the old overview have been removed and replaced by new files in the new folder. They have also been improved with additional information from the new overview. A file about go-appimagetool has been created. It contains information from the new overview as well as further information on how to use it. In the overview, links to these new files have been added (as well as a TODO to make these links more consistent). Additionally, a minor part of the new overview table has been improved. These files have been (preliminarily) added to the packaging guide toctree. The already existing files have been removed from their respective prior toctrees.
The information about the different packaging approaches (packaging as application author and converting existing packages) has been rewritten and collected in a single section. This section has been placed in the overview. The new section replaces the previous Packaging from source and Converting existing binary packages sections. It contains all relevant information from them as well as additional information and a better explanation of the differences between the approaches. Other files about converting binary packages and packaging from source have been removed as well. A TODO has been added to the remaining Packaging native binaries file to move everything relevant (about linuxdeploy or creating the AppDir structure) into new files and then removing it as well. Additionally, a link to one of the removed sections has been replaced.
The packaging automation section (formerly called hosted services) has been rewritten, improved and updated. The (previously almost empty) main page on packaging automation has been rewritten from scratch. A new introduction on the advantages of packaging automation and why it should be used instead of manual packaging has been written. Additionally, a new section about GitHub Actions with an extensive example has been added. The sections about Travis CI and OBS in the overview have been removed and their information has been moved into the main packaging automation page, together with additional information about the history and state of Travis CI. The Travis CI page has been removed. Its convenience functions section has been moved to the main packaging automation page as well. The redundant section about Travis CI in the Packaging native binaries page has also been removed. The Open Build Service page has been improved as well: - Outdated parts (e.g. an almost eleven years (!) old openSUSE version or non-existing links) have been updated. - A recommendation related to testing has been moved into the testing section, which has been linked. The testing section has been updated accordingly. - Grammar mistakes and indentation errors have been fixed. - TODOs to check whether the section is still up to date have been added. Additionally, the section about manual AppDir creation in the overview has been removed as all of its content is duplicated and has been included in the new overview table.
All information about creating the AppDir structure has been collected, rewritten and improved and moved into a new Creating the AppDir structure section. The section consists of a main page that provides an overview of the different ways to do it, the reason why one would want to do it and the additional possibility of manually packaging everything. It also contains new sub-pages about 1. manually creating the AppDir structure, 2. Using make to create the AppDir structure and 3. manually packaging *everything*. Links to this new section have been added on several pages. The Manual packaging page has been removed. It had previously mixed the information about manually creating the AppDir structure (to give it to a tool) and manually packaging everything (without a tool). This has been fixed; all information from it has been separated and put (rewritten and improved) into the new section. The Packaging native binaries page has been removed as well. Information about creating the AppDir structure has been moved into the new section, information about linuxdeploy has been moved into its section (both rewritten and improved) and information about desktop entries has been added to a new todo file. The linuxdeploy page has been majorly updated as well: The parts about make have been removed as that's explained in the new section. To account for that, the explanation of --appdir has been improved. Sections on how to download linuxdeploy, on the appimage plugin variables and on an iterative workflow have been added. The page has generally been improved and additional information has been added. Additionally, the overview has been improved: Its introduction has been improved to better explain what the AppImage creation tools actually do. It now also mentions AppDir structure creation and links to the new section. Furthermore, it now provides more information on how to include additional resources.
A new page about desktop entry files and icon files has been created. To do that, the Desktop information page in References, as well as the temporary desktop file file, have been removed and replaced by it. Their content has been rewritten and moved into the new page, together with much additional information. The linuxdeploy page, AppDir specification and Manually creating an AppDir section have all been improved as well with additional information and new links (mostly to the new sections).
The different pages about the AppImage creation tools have been moved into a common section. They've been dereferenced from the packaging guide toctree and moved into a new section toctree. The previous overview page has been renamed into AppImage creation tools and now serves as the main page of this new section. It has also been adapted accordingly (with minor text changes, changed reference names and a toctree). Other pages have been adapted to use the new reference and section names. Additionally, some formatting mistakes have been fixed and the desktop entry & icon files section has been slightly improved.
The packaging guide introduction has been rewritten and improved. Among other things, additional information about the content of the packaging guide has been added.
The AppDir specification has been updated, mostly about the AppRun file, but also about desktop entry and icon files. The AppRun section from the software overview page has been moved into the AppDir specification and has been updated. Other additional information has been added to it as well. The wording has also been improved. Other related pages have been updated accordingly: The page about manually creating an AppDir structure has been updated in regards to AppRun, whose section has been removed. The page about manually creating the entire AppDir has also been updated accordingly. A new section about the rest of the AppDir structure has been added and the specification has been linked. Additional information has been added to both pages, and their wording has been improved.
The software overview page in the introduction section has been split up, partially moved into the references section and rewritten. The sections about appimaged and AppImageLauncher have been moved into the desktop integration tool section and linked. The corresponding subsections there (that had already existed) have been updated accordingly with more information and improved wording. The section about the NX Software center has been moved into the FAQ. The how to download AppImages part has been improved with additional information, among other things about AppImageHub. The sections about linuxdeploy and linuxdeployqt have been removed, and the AppImage creation tool section has been linked instead. The rest of the page has been moved into the references section (whose page order has been improved). A new introduction, which explains the purpose of the page and links to other relevant sections, has been written. Outdated parts have been updated and additional information has been added. The wording has also been improved and made more consistent.
The concept page has been improved: Additional information has been added and the wording and spelling has been improved. But most importantly, the sections about which dependencies are bundled and which Linux distribution version the binaries should be compiled on, have been greatly improved and partially rewritten. Misleading headlines have been changed and a better explanation of why AppImages should usually be compiled on older systems, and which exceptions and other options exist, has been added. The AppImage creation tools section (both the main page and the specific tool pages) has been updated and corrected accordingly. Information about which distribution versions to compile on has been added to the pages and wrong & unnecessary information has been removed.
I support this, recently there was this discussion asking about the static and deploy everything tools: https://github.com/orgs/AppImage/discussions/1343 Btw a small nitpick, the part that says:
Can be changed to say instead |
@Samueru-sama I'm sorry for the late answer, I was really busy the last days. On the other part, I took that information from the appimage-builder documentation. But thanks for the feedback; I'll change the part to say that it's usually a big increase, but can also be smaller, depending on which libraries are called. |
@probonopd Hey, did you see this PR yet? I noticed that you were also working on the documentation in #103. While luckily, this doesn't interfere with my PR as it's a new section, I would have expected some kind of reaction or response to this. |
Hi @Korne127, thanks for this massive undertaking. Hi @TheAssassin is there any way to get this documentation rendered out for easier review (without overwriting the current one, s that I can open them side by side)? |
Hi @Korne127
Where did you get this number from? If I remember correctly, the results i got were around 1/3rd that number. How did you test? |
@probonopd One way to look at the result would be to just clone my version and execute it: git clone https://github.com/Korne127/docs.appimage.org.git
cd docs.appimage.org
mkdir venv
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
make html And then the files are build in build/html, you just need to double-click them to open in a browser. I also discovered there is a |
I took them from the appimage-builder documentation. If the numbers are wrong and your tests consistently produced different results, I'll adapt it. (But keep in mind this is still a WIP and I haven't gone over some pages at all yet. I also plan to go through the project READMEs and updated them accordingly, e.g. if they link to a now unexacting link in the documentation.) |
Note to self,
works nicely for me. Maybe we should even document it ;) |
The introduction section has been generally improved and updated: - Spelling and grammar mistakes have been corrected. - Section links have been added in multiple places. - A TODO about duplicated information has been added. - Outdated information about distributions, CIs and the excludelist has been corrected. Outdated informations about the way to create AppImages with the AppImage creation tools has been updated as well.
The motivation and advantages pages in the introduction section have been merged into a new motivation-advantages page, which has been rewritten. The new page now contains the information of both previous pages, which had the same structure and a lot of duplicated information. Some parts in the previous pages have hidden key parts among big amounts of less important information. This has been fixed: The new page has been rewritten to highlight the important AppImage advantages in short paragraphs, putting them before other secondary information. The index has been changed accordingly and a new section link has been added.
The former Running AppImages page in the user guide section has been split up into a new Inspect AppImage content page and a new Desktop integration page. This has been done because the former page didn't contain information on how to run AppImages (those had been moved into the Quickstart page much earlier), but just information on these two completely independent topics. The Inspect AppImage content page has been updated to include the ways to inspect the content of an AppImage safely with external tools. It has also been rewritten and regrouped to better explain the different methods, their advantages and disadvantages. The Desktop integration page has been rewritten to better explain the concept of desktop integration, what exactly the individual tools do and their differences. An additional download link has been added as well. Additionally, the config has been adapted to allow for double dashes to be displayed in headlines, and the index has been changed accordingly.
The FUSE Troubleshooting page has been improved, corrected and rewritten. The structure has been greatly improved: Similar sections have been merged, the order of the sections have been improved, important information has been added to the overview, duplicated information has been removed, a part in a wrong place has been moved to the right place and text styles have been unified. The content has been improved as well: The texts have been shortened and made easier to understand, and some explanations have also been improved. Additionally to that, wrong information has been corrected, additional information has been added and outdated information has been updated. This has been done by adding all important information from the AppImage wiki (https://github.com/AppImage/AppImageKit/wiki/FUSE) to this page.
All user guide pages have been improved, updated and corrected: The texts in the user guide pages have been massively improved. Among other things, information has been specified, things have been explained in a better and more detailed way, wording has been improved, links to other sections with more information have been added, sections with duplicated information have been merged and the overview and content descriptions have been improved & updated to contain everything. Several other things like terminal commands have been improved as well to always work. Additionally to that, the macOS similarity page has been updated with better comparisons that are easier to understand for normal end users, a link to the AppImage creation tools has been added and wrong information has been corrected. Several substitutions have also been added to reduce duplicated texts; they replace previously existing similar or worse texts. Furthermore, spelling, grammar and formatting errors have been fixed, outdated links have been updated and credits have been added.
I finally continued on this, and went through the whole introduction and user guide pages and improved, rewrote, updated and corrected them all. I've spent most of my free time in the past week in that process. 😅 (I also merged two pages that basically provided the same kind of information in the same structure with big parts duplicate.) To view the exact changes and things I did, see the commit messages. Also, I noticed something important: The FUSE page in the AppImage wiki (https://github.com/AppImage/AppImageKit/wiki/FUSE) has generally the same structure behind its documentation page, but has been much more up-to-date (although it also missed some information). |
The information on the AppImage updating system and how to make AppImages (self-)updateable has been rewritten and heavily improved. The updating informaion page has been restructured: - Much information that had previously been buried in subsections although it was generally applicable has been moved into more general sections. - The difference between different concepts has been made more clear and information on what approach to use in which case and the (dis-)advantages has been added. - The overview explaining the general topic has been improved to better explain the different updating concepts. - Information on specific AppImage creation tools has been replaced with a more general overview and moved into the respective tools' pages. Additionally to the restructuring, the page has been rewritten and massively improved: - The given information and explanations have generally been improved, made more concise and easier to understand and follow. Additional information and explanations have been added as well. - Information on what the update information string is and how it works has been added and improved. - A section about the update GUI libraries has been added. - The example code and corresponding explanations have been improved and bundled in one concise place. - Information that depends on a very specific project structure (using CMake and C++) has been removed and replaced with information that's generally applicable and not dependent on a specific language. - Redundant text that didn't contain meaningful information has been removed. - Duplicated information has been removed. - TODOs have been added to correct some wrong information. Furthermore, a new page in the user guide about downloading and updating AppImages has been added. It contains the information a user should know, including a basic explanation on (self-)updateable AppImages, how they work, and the ways they can be updated.
The updating information page contains information on how to call bundled executables (as appimageupdatetool can be bundled to achieve self-updateability). However, this information had previously been incorrect and didn't work. This has been fixed. The text has been replaced by an accurate explanation on how to call such bundled executables with additional notes and information.
I have another update: I finished rewriting the updating information page: Improving the page structure and all explanations (making them more concise and easier to follow), correcting wrong information that didn't work and adding missing information, giving a better overview about different approaches and their (dis-)advantages and replacing information that depends on a specific project structure with information that's generally applicable. |
The information on AppImage signatures has been improved and updated. Additional information about signatures has been added. The signature page has been improved, with a more concise explanation of what's required and an overview over the different ways to embed a signature. Links to new information on specific AppImage creation tools have been added as well as a reference to the updating page. Explanations and the section order have also been improved. A new signing section has been added to the pages of linuxdeploy, go-appimagetool and electron builder. Each contains new information on how to sign the AppImage with the respective tool. Additionally: - An embedding updating information section has been added to the go-appimagetool page. - The updating page has been improved with links to the new go-appimage section and the signing section. - Outdated information on the linuxdeploy page has been updated and links to more information as well as a warning have been added. Its embedding updating information section has also been improved.
The AppStream page has been improved with a better introduction, a better explanation on why to use AppStream files, a new validating section and a new explanation on how to embed AppStream files with AppImage creation tools that create the AppDir. An AppStream section has also been added to the linuxdeploy page, explaining how to embed an AppStream file using it. Additionally, the packaging guide has been restructured. The updating, signature and AppStream pages have been moved from the optional features sub-section into the packaging guide section as the following pages are also optional and not more relevant.
Information about the different software catalogs has been added, improved and updated. The distribution page has also generally been restructured and improved. The AppImageHub section in the distribution page has been rewritten to a general software catalog section, giving an overview on what a software catalog is and why one would want to use them and listing the different software catalogs. The very extensive description on how to add an AppImage to AppImageHub has been removed as it's duplicated; a link to the tutorial has been added instead. The user guide downloading section content has been added; it explains the different ways to download AppImages and the advantages of software catalogs from a user perspective. The FAQ, macOS and motivation pages have also been updated accordingly and link to more information about software catalogs. Additionally, the distribution page has generally been restructured and improved: - The order has been improved, with the download button now in the hosting section and the recommendations have been grouped together after hosting and software catalogs. - The introduction on what the page actually explains and the explanations have been improved and made easier to understand. Some wrong links and names have also been corrected.
The environment variables page has been improved: The sections about type 1 and type 2 AppImages have been merged as most information was duplicated and readers might not know (and shouldn't need to know) the difference. Instead, one extra section about the additional variable and its restrictions has been added. Additionally, all the explanations have been made easier to understand with more examples on how to use the environment variables. The introduction has also been improved to give a better overview.
The contact page has been updated and improved: - The overview has generally been improved. - A section about GitHub discussions has been added as this is now the primary way to contact the team. - The section about IRC has been improved and outdated information has been removed. - The section about the forum has been removed as it shouldn't be used by new users anymore.
The software overview page has been rewritten and renamed to AppImageKit. Previously, it had only contained AppImageKit and AppImageUpdate. But because AppImageUpdate is now extensively covered in other sections, it has been removed and a link to AppImageUpdate and other information has been added instead. The introduction has been merged with the AppImageKit section introduction. Descriptions, explanations and links in it have been improved. The validate section has also been removed as validate has been moved into AppImageUpdate and isn't a part of AppImageKit anymore. Additionally, a warning has been added which explains the current situation of the AppImageKit repository and its replacement with new repositories for the individual components.
The best practices page has been removed. All of its content that hadn't been duplicated has been moved into other respective pages: - Some general information on what an AppImage is has been moved into the quickstart. - The information on absolute paths in binaries has been merged into the section on the manually packaging everything page which contained exactly that topic. - Some additional information on binaries having to be compiled on old systems has been moved into the concept page. - The other information in those three sections had been duplicated and has been removed. Additionally, some related parts of the documentation that have been affected by that have additionally been improved: - The parts linking to manually making an AppImage relocatable have been rewritten in order to better explain that this should usually be done automatically with an AppImage creation tool. - The majority of information about AppRun.c has been moved into the dedicated section about it; most information duplicated in different places has been removed. - All links to more information on AppRun.c have been changed to now link towards the dedicated AppRun.c page and their descriptions have been improved and made more consistent. Minor wrong links, names, code and spelling mistakes have also been corrected.
All inexistent links have been corrected: Some link names have been corrected, some links to sections that don't exist and had never existed have been removed, and one link target has been added to the respective section. The description of one link has also been slightly improved.
All introductory pages, namely the front page, the quickstart page, the FAQ and the chapter pages have been rewritten and improved. The front page now directly links to the chapters that people in different situations should read, and makes it much easier to find important information most people might search for. The big logo has been moved down so people initially see something meaningful. The quickstart page has also been heavily improved: - Its pre-existing sections have been improved to better explain the information (and merged with the equivalent FAQ sections). - A new section about AppImages in docker containers has been added as this is an important use-case. - A new section about AppImages not starting has been added, explaining how to see the error messages as this hadn't been explained previously. - The sections about how to integrate AppImages and where to store them have been added (moved from the FAQ). The quickstart now replaces the FAQ (which has been removed) to have a single page to point new users towards, which answers all common questions. Many sections had already been duplicated between them, and others have been moved into the quickstart. The quickstart page has been moved into the user guide and the downloading page has also been slightly updated due to this. The introductory chapter pages for the individual chapters have all been improved as well. They now give a better and more comprehensive summary of the information explained in the corresponding chapter. This also makes them consistent with the new chapter descriptions on the front page.
The entire reference section about AppImages, their specification, reference implementation, history and more has been rewritten, updated and majorly improved. This way, the specification and reference implementation decisions could be separated much more clearly and many duplicates could be rempoved. Much information (such as about different AppImage versions, their differences and history) has also been added. All reference information about AppImages has been bundled into a new AppImage reference section. Its index page gives an overview on the concepts of the specification and reference implementation and explains the advantages of that separation. The new specification page replaces the former architecture page as well as the former specification page: - The former architecture page content has been moved in it as it essentially just describes the rough way how AppImages work, which is defined in the specification. - The descriptions in the former architecture page have been improved and updated to the state of modern AppImages. - Implementation decisions that had been in the architecture page but aren't defined in the specification have been moved elsewhere. - The former specification page content has been moved into a specification development section as this fits what it had described. - The former specification page content has also been generally improved with more information on different AppImage versions and a link to more information. The new reference implementation page replaces the former AppImageKit page: - It has been renamed as the reference implementation page isn't bundled into the AppImageKit repository anymore. - Its content has been improved accordingly to not use that name anymore and add links to the new repositories and more information on its history. - It has been majorly rewritten to not contain duplicates to the specification page anymore. While it had previously described the way the runtime and appimagetool works, it now references the specification (which also describes the basic principle) and only contains the true reference implementation decisions that are not covered in the specification itself. - More information on that has also been added, such as implementation decisions that had previoualy not been covered. Implementation decisions that had previously been in other sections (e.g. the architecture page) have also been moved in it. - It has been updated to account for the fact that the new static runtime is now the official reference implementation. - The information on helper tools has been improved with a more accurate description and other helper tools being bundled there. A completely new AppImage types and history page has been added: - It explains why different AppImage types and versions exists and goes over their history. - It shows notable specification changes (e.g. type 1 vs type 2) and implementation changes (e.g. the change to a static runtime and new type 2 features). - It tells more about the history of the change to the new static runtime and the repository change. - It shows how to determine the type of a specific AppImage.
Outdated references to AppImageKit and its repository have been updated: - In several places, the links to download appimagetool or the runtime have been updated to the new repositories. - Outdated mentions of AppImageKit and links to its former section have been replaced by mentions and links to the new reference implementation section. - In some places, the explanations on the AppImage specification and the reference implementation have also been updated and improved.
Another bulk of changes I've spent the last week working on :D It's hard to summarise the changes because it's just so much, but I still tried to do it. There are many improvements that aren't included in the following summary; the individual commit messages are much more complete and detailed. Major improvements of these new changes:
Other pages that have been rewritten:
General improvements that have been done to the documentation:
|
@probonopd I am a bit confused about your comment in AppImage/AppImageKit#877 (comment). As I've worked my way through the entire AppImage project while updating this documentation (being it the AppImage creation tools, the updating system, software catalogs or now the history and different types of AppImages), I've made some issues, comments or pull requests on respective repositories. I usually wrote that I stumbled across that while rewriting the documentation. But now you've stated that I should make an issue before working on the documentation, implying you are not aware of my basically complete rewrite of it (which is really necessary, see the motivation I wrote when I made this PR). Therefore I wanted to ping you again and hurried the last week to finish this batch of changes (as this PR is now mostly done, there are only many minor changes and a few pages I want to majorly improve left). The work required to rewrite the documentation to be consistently up-to-date without duplications with clearly separated chapters so that every specific information is easy to find and intuitive and concise explanations and information is insane, so I really hope that you can see and appreciate it. |
The information to run an AppImage in the terminal to see potential error messages has been added to the troubleshooting page. It has also been generally improved and made more consistent with the rest of the documentation.
Information about the desktop integration tools Gear Lever, zap, Soar and AM has been added to the desktop integration page in the user guide. Additionally, a warning has been added to the AppImageLauncher section that it doesn't work with current reference implementation AppImages anymore and to the appimaged section that the monitored directories are not configurable. The project links have also been improved to not link to a specific version anymore.
The FUSE troubleshooting page has been updated to the change to the new static runtime being the official reference implementation runtime. The descriptions have been updated to account for the fact that it mostly applies to older AppImages and not those built by the modern reference implementation, as well as the fact that most distributions don't have FUSE 2 installed out of the box anymore. The error messages have also been updated to the error message actually giving by recent AppImages. Additionally, some explanations have generally been improved.
The pkg2appimage page has been improved and updated. An explicit section on how to download and use pkg2appimage with distributed recipe files has been added. The information has been moved there from the introduction. It has also been updated to use the prepackaged pkg2appimage AppImage (and not the shell script). The recipe file section has been improved to not have duplicated information anymore and have better and easier to understand explanations. Additionally, spelling and grammar has been corrected in some places and links have been improved.
The testing page has been majorly improved, updated and corrected. The introduction has been improved and duplicates in it have been removed. Everything in the introduction that only applies to live images has been moved into a corresponding section. The testappimage part has been removed as the tool is outdated and doesn't work with modern AppImages. It has been replaced by an easy-to-understand explanation on how to manually test the AppImages with live images. The appimage-testsuite part has also been removed as the tool and its supported distribution versions are outdated and as it contains some bugs, resulting in it not working out of the box. It has been replaced by a script inside the documentation, which is an improved version of the relevant parts of appimage-testsuite. The following changes and improvements have been made: - No dockerfiles are used. Instead, the container must exist locally or gets downloaded, making it future-proof. Important packages are still installed, but transparently in the script, and this is explained to the user. - The docker command has been improved to use the X11 server socket to connect to the host system instead of an unnecessary TCP connection. (The original code didn't work anyways, as the code to get the IP didn't work on Linux and code to make the host X11 server listen on port 6000 was missing.) - Non-executed und unnecessary code has been removed. This way, several scripts could be merged into one smaller snippet which actually works without having to modify it. Explanatory comments have also been added to make the script easy to understand. Additionally, the descriptions and explanations on the page have generally been improved.
Another smaller update; I finally finished going through every page once. There are still some things on my to do list, but most are either smaller consistency changes or things I already wrote a todo for. Those are the new changes:
|
This is still a work in progress. However, I now got most of the major changes done, and since I might still take a while for the rest and am a bit afraid that someone else might want to start doing the same, I decided to open the current state as a draft pull request.
When I started looking into how to deploy AppImages a few weeks ago, I had big troubles understanding the documentation:
There was very much duplicated information which made it hard to find a specific detail that was only mentioned in one of the duplicated parts and generally to read through the documentation.
There was very much outdated information, from commonly recommending the deprecated linuxdeployqt tool, to the deprecated AppRun.c file, not even mentioning the new go-appimagetool, many invalid and outdated links, old Linux versions (one even being eleven years (!) old), etc.
The same terms were sometimes used for very different concepts, e.g. "manual packaging" for
which obviously led to much confusion.
There was much conflicting information, mostly due to duplicated information, which has been outdated in some parts and updated in others, or the same terms used for different concepts.
There was missing information that was expected in other places, e.g. which resolutions are valid for icon files.
There was information scattered across places or in the wrong places, e.g. several pages contained some details about desktop files, but no page in the packaging guide clearly explained everything related to it and how to create them.
There were weird structure decisions, e.g. placing a software overview, mostly about low-level software that the average user should not use, in the introduction section instead of the reference section.
There was no single detailed comparison about the differences between the individual tools and approaches to create an AppImage, resulting in a lot of confusion which one(s) to use and how to create AppImages.
Some things were just explained badly, e.g. the pages about using make to create an AppDir lacked the most important information on how to do so, and the linuxdeploy page made it very hard to understand how to use it without make.
I think much of this is not that noticeable when you know your way around AppImages well enough. Sure, you might notice many things aren't up to date and that some things are duplicated, but I think you can generally read through it, understand what's meant, fill in the missing information and don't really realize how hard it is to understand all of that if you don't have that prior experience and knowledge.
I also think that much of this comes from the fact that the AppImage ecosystem has evolved a lot in the past years. There are many things that have considerably improved, e.g. going from having to package the entire AppDir by yourself and use appimagetool directly, over tools like linuxdeployqt that package all shared libraries from an existing AppDir structure, to linuxdeploy, which can get all necessary data with command line arguments and requires no pre-existing structure.
I also noticed that some old parts were expecting the reader to repackage existing packages, probably out of a time where AppImages haven't been commonly used, while other parts were mainly directed to the application authors.
I can imagine that the focus was on developing better solutions and improving the AppImage packager and user experience. And it's understandable that, with many parts duplicated, you don't always find the time to really go through the documentation and update everything correctly when something changes, slowly leading to a worse documentation state.
All of this is to say, I hope that you don't take this as an insult. I do appreciate the work you put into AppImages and the whole ecosystem and I understand that the focus has been on other things, but I do think that the documentation is in a bad state.
And this also led to frustration by other users. See for example https://discourse.appimage.org/t/does-appimage-include-all-shared-library-dependencies-by-default/509/6, where someone is frustrated with the documentation as they don't find a guide on how to automatically package shared libraries, or ruffle-rs/ruffle#12401, where someone didn't even know about the other available tools that help with this, which is the core thing the documentation should explain in my opinion.
Therefore I started to rewrite, improve, update and correct the documentation.
I started with the linuxdeploy page, which I had personally had a lot of struggle with to understand previously. From there on, I worked my way through the documentation (mostly the packaging guide), and went on to improve the structure, add a comparison of creation tools & approaches, deliver better explanations, update the outdated information and add additional information.
Here is an overview of my changes:
New sections that contain collected information
Other sections that have been rewritten
Updated & improved sections
Split up sections
Minor improvements
For more details, each commit contains an in-depth message of all changes I have made within it.
Also, this pull request documents the features introduced in linuxdeploy/linuxdeploy#288, so it depends on that being merged.
As I said in the beginning, this is currently a work in progress. I still have a lot of todos and there are quite some sections I haven't really gone through yet at all.
But I still thought that now is a good time to create this draft PR, as most of the major restructuring is done and it's easy to see my desired end result. I'll probably still take a while to finish this (especially as I basically worked the entire last week from waking up until going to bed on this, and will continue slower as it's now known that I'm working on it).