-
Notifications
You must be signed in to change notification settings - Fork 41
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
Decision tree and where to download the tools #30
Comments
Maybe we should also add a decision tree
And then point to the tools needed depending on the answers to those questions. |
When I say "toolchain" I mean Saying "The tools are from third parties" is one of things that is technically correct, but functionally unhelpful as an observation. The AppImage documentation (docs.appimage.org) directly references these tools, suggests that they should be used, and provides detailed documentation on their use. They're hosted as part of the AppImage Github org. But not once do the docs include the phrase "and here's how to install them". And if the answer is "you don't; you download the AppImage and run it", that's fine - but you need to say that. Talking about a decision tree for all these options is great - but you're missing step 0. Assuming I have a clean Ubuntu install - how do I get anything going? |
Thanks for your feedback, which I honestly appreciate and which is extremely helpful. I know that our developer tools are complex and might look a bit frightening at first sight, but we really try to be helpful to anyone who wants to package an application in AppImage format. Sometimes it's not easy to know what someone seeing the project for the very first time finds hard. But now that you are saying it, I agree!
Actually my recommendation is never to do builds on a local developer machine but on services like the Open Build Service, Travis CI or GitLab CI for a) reproducability and b) supportability (by us), but I guess that is a matter of preference. |
First draft of the decision tree, might still contain errors. Asking for review by @TheAssassin
|
So... I feel like I'm missing something here... because while I gather the decision tree is something you' are enthusiastic about, it does nothing to address the concern I raised. I didn't have any particular difficulty navigating the content on the current docs site to determine the options that seemed appropriate. I did, however, have difficulty working out how to obtain the command line tools that were referenced by the docs. As an end user, It does me absolutely no good to have a first class funnel getting me to a page that tells me I need to use "pkg2appimage" if there are no instructions on how to obtain pkg2appimage. |
A chance to rant back? Yay! The big issue there is that we have a certain and working set of tools but some people refuse to let the old ones go. There's plenty ones that have huge issues and shouldn't be used by anyone, but are required to be documented by those people. pkg2appimage for instance is quite insecure and there's known attacks on it; also it creates bloaty packages and is advertised to work e.g., for Python, which clearly is wrong. Therefore this thing shouldn't even be mentioned, and sent to retirement. Just like many other things still mentioned there. I don't consider linuxdeploy difficult (it's a lot easier than things like linuxdeployqt, especially since it has some meaningful logging...), and it's not hard to find in general, and also not on the docs.
All the examples showing how to use it involve this "installation" step, e.g., https://docs.appimage.org/packaging-guide/from-source/native-binaries.html#bundling-resources-into-the-appdir, https://docs.appimage.org/packaging-guide/from-source/native-binaries.html#using-qmake-and-make-install. Then we have the software overview, which lists all the tools and links to them: https://docs.appimage.org/introduction/software-overview.html#linuxdeploy I can't take this "criticism" or "feedback" all that seriously. If there had been any interest in improving the docs, it'd been easy enough to come here first and open issues, without having to use caps. I have serious doubts @freakboy3742 really read more deeply into the docs or even used the search. Reading @freakboy3742's last comment, all that is missing seems mentioning all our tools are shipped as AppImages in the software overview page and maybe post direct links to the GitHub release pages or something. Regarding a "decision tree", there's already an Overview that should point people in the right direction. PRs welcome, this thing might need some improvements. @freakboy3742, I don't have the same point of view on the docs that you might have, if you ever wrote docs you'll know that. Please consider contributing to our docs to improve them and avoid random, off-putting Twitter rants. |
Yes, I get it. At the end of the decision tree there should be a link to the appropriate place. I just did not have the time to do it yet. |
Me :-)
I wrote above:
Err, what? E.g., https://github.com/AppImage/pkg2appimage/blob/9249a99e653272416c8ee8f42cecdde12573ba3e/recipes/Mu.yml
Well, I do. In fact, I sincerely thank @freakboy3742 because he is pointing out what is making AppImage "difficult" for application developers; and I'd like to improve. Because AppImage exists to remove complexity. First and foremost for the end user, but then also for the application developer.
They are much better now than they ever were before especially thanks to your hard work, but they can (and should) be improved, especially with "easy fixes" like telling where to download the tools we are describing. And maybe a decision tree ;-) |
I know having someone dump on your work isn't motivating; and for that, I apologize. My Twitter rant was intended as just that - a rant. I very specifically didn't tag the project, or anyone involved in the project, in that rant. @probonopd sought me out, not the other way around. My original posts came from a place of extreme frustration at failing to even get a "hello world" example going, and I lashed out. I would gladly contribute to the docs. However, at this point, I've done everything I've been able to do. Other than reporting that the problem exists, I'm literally not in a position to help, because I haven't been able to get anything working yet. I am stuck at step 0: how do I install the software. Also: "If you ever wrote docs"... You might want to do a little reading about my history in FLOSS. This isn't my first open source rodeo. |
Yes. I found that example. And it didn't work. Or, at least, I couldn't get it to work. I eventually worked out that pkg2appimage was just a shell script, so I cloned the repository and ran it directly from there; however, the script tries to move an icon image to /usr/share location where it tries to move the image doesn't exist. |
Yes. Because you voiced something I deeply care about - making things easy to use.
Is that still an issue now? I linked the download pages of the various parts above, and to close this ticket, will also link them in the documentation. You don't install AppImages, nor do you install bash scripts. But I think you already figured that part out ;-) |
On that note, @TheAssassin is there a global "search and replace" like functionality to define in rst that whenever the world "linuxdeploy" appears it automatically gets linked there? |
@probonopd I have more of an idea what is going on; I haven't had a chance to actually try any of this advice to see if I can generate a working AppImage. My comments were intended the "If I were to just read the documentation" sense. |
If you point us to the project you are trying to package we'll try to help you :) Btw, getting AppImage as an output format into https://beeware.org/ would be aweseome, and certainly something I'd like to help with. |
The initial target app is Toga's Tutorial 0. The end goal will be to template the solution so it can be used by Briefcase as a mechanism for turning an Python project into a native app package for any Python app. |
@TheAssassin do you know why 823992f failed? Old-fashioned |
That's just not true at all. We're running a link check on Travis, there's broken links somewhere. Format doesn't make a difference. Also, you may send your changes as a PR. Then we can double-check your changes. After all, you're a rookie, and that way errors can be prevented. |
Yes. Can you see what I did wrong? |
Either of you is hereby invited to write whatever you think that decision tree should contain. Preferrably in reStructured Text, but if you are lazy and refuse to learn two or three things, please write them in Markdown. Otherwise I tend to closing this issue, if we're not going to work on it anyway. I am not entirely sure what a decision tree like this should contain, so I don't want to invest time if the outcome is unsure. |
|
There's many errors in this tree... Please revisit. |
Possibly. I did it in a hurry and while traveling. Could you be a little bit more specific though? |
https://twitter.com/freakboy3742/status/1161149221812072449
Most of the tools we use to make AppImages are, well, AppImages, and hence do not need to be installed.
The high-level tools are mostly from third parties and not from the AppImage project itself:
Our tool is running "under the hood" but if you really want you could use it directly, too:
If you mean with "toolchain" the compilers and such, we don't cover those because AppImage is just a container format that executes whatever you put inside it (think of it as a fancy self-mounting filesystem image). Just like CD-ROM authoring tools don't explain how to make the files that go into a CD-ROM, we don't go at length on how to make the files that go into an AppImage.
If you mean with "toolchain" the tools to turn binaries into AppImages, I hope the links above point you into the correct places.
Let us know if you are stuck, AppImage developers are on #AppImage on irc.freenode.net and are usually helpful in solving almost any challenge (just be a bit patient since we do this in our free time).
The text was updated successfully, but these errors were encountered: