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

Snap: improve interface management documentation #8

Open
degville opened this issue Jan 25, 2024 · 9 comments · May be fixed by #67
Open

Snap: improve interface management documentation #8

degville opened this issue Jan 25, 2024 · 9 comments · May be fixed by #67
Assignees
Labels
diátaxis Revise a document to better conform to its Diátaxis type explanation Write or update an explanation for a known topic help wanted We welcome community help with this issue how-to Create a edit a how-to to achieve a specific task size 2 Fix a known documentation issue (size 2/8) update Update potentially outdated instructions, commands, or version numbers

Comments

@degville
Copy link
Collaborator

The current interface management documentation isn't as a how-to, and isn't clean, clear, or as simple as it could be.

This task is to improve this documentation to make it easier to understand, to make it task-oriented and to either remove any superfluous details, or move them to the explanation section:

How-to:
https://snapcraft.io/docs/interface-management

Explanation:
https://snapcraft.io/docs/interfaces

Background

Snaps use plugs and slots to allow access to system resources, but the terminology isn't easy to understand for a general desktop audience. This problem is repeated throughout the snap-related documentation.

Prerequisites

You will need some experience using snaps and working with connections and interfaces.

See also Contribute to our documentation.

@degville degville added help wanted We welcome community help with this issue size 2 Fix a known documentation issue (size 2/8) diátaxis Revise a document to better conform to its Diátaxis type update Update potentially outdated instructions, commands, or version numbers how-to Create a edit a how-to to achieve a specific task explanation Write or update an explanation for a known topic labels Jan 25, 2024
@keith-taylor
Copy link

Hi @degville — I might be ineterested in taking this on, but i have a couple of questions:

  1. How much snap experience are we talking about here? I've read through the HT and Exp. — am I now sufficeintly informed?
  2. Somewhat related, are you looking at the HT being fleshed out a bit here (i.e. more how to do...s) or is it just a cleaning job (removing the superfluous)?

Thanks

@degville
Copy link
Collaborator Author

Hello @keith-taylor! Sorry for the long delay getting back to you. I've been away, but I should be a lot more responsive from now. And thanks so much for your interest in this task.

  1. How much snap experience are we talking about here? I've read through the HT and Exp. — am I now sufficeintly informed?

I don't think you need a great deal of experience. I think part of the problem at the moment is that we're assuming too much of our readers and users, and it would actually be really helpful to look at the ideas behind interfaces from an outside perspective - what an interface is isn't immediately obvious, I think, and yet it's fundamental to the access system and confinement that snaps use.

  1. Somewhat related, are you looking at the HT being fleshed out a bit here (i.e. more how to do...s) or is it just a cleaning job (removing the superfluous)?

I'd love to see this fleshed-out, but I wanted to leave the issue ambiguous to help encourage people without too much time. Ideally, it would be wonderful if there were more sensible examples of how to use interfaces (with perhaps a range of different types of snaps such as hardware accessing ones, audio ones, file ones). These are just off the top of my head - if you still want to take this one, just feel free to take it in whatever direction you think may be most useful to readers trying to understand these concepts, and how they may best use interfaces.

@akcano
Copy link
Collaborator

akcano commented Apr 12, 2024

I'd chime in with my 5 cents: indeed, I've seen people (myself included) struggling around the idea of an interface in general, and the complete picture of all the components that comprise its operation, i.e. plugs, slots, policies, etc., even though the description looks pretty simple at first.

The problem that arises out of this is that the reader skims through the parts that appear obvious (e.g. 'surely I know what an interface is') only to eventually find themselves with a number of unfamiliar moving parts of different shapes and sizes that somehow refuse to work the way they expected them to.

@PhilStollery
Copy link

@keith-taylor are you still working on this? I'd like to pick it up if you can no longer do it?

@keith-taylor
Copy link

I'm happy to let you take this @PhilStollery.

@degville
Copy link
Collaborator Author

That's really kind of you @keith-taylor. I'll assign this task to you, @PhilStollery. But @keith-taylor, let me know what kind of task you're interested in working on, and we'll create one specifically.

@degville
Copy link
Collaborator Author

And thanks to @PhilStollery for taking this on!

@PhilStollery
Copy link

Thanks @degville for assigning this to me. Should I make a copy of the markdown and add it to this repo for development and reviewing? Or work directly in discourse? My preference would be GitHub.

@degville
Copy link
Collaborator Author

Hello @PhilStollery. Very happy to do this - I prefer working in GitHub too. I've just imported those two docs with GH-65. Feel free to modify, add or edit whatever you think is necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
diátaxis Revise a document to better conform to its Diátaxis type explanation Write or update an explanation for a known topic help wanted We welcome community help with this issue how-to Create a edit a how-to to achieve a specific task size 2 Fix a known documentation issue (size 2/8) update Update potentially outdated instructions, commands, or version numbers
Projects
None yet
4 participants