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

Consider a better separation between different users and tasks, concepts, and references? #482

Open
tomschr opened this issue Feb 2, 2022 · 7 comments

Comments

@tomschr
Copy link

tomschr commented Feb 2, 2022

Situation

I really like Concourse and its features. ❤️ Also the documentation gave me a good insight into the possibilities.

However, I see some issues with the current documentation:

  • "Docs" as a title isn't a particular good title (although I understand you need to separate it from other content)
  • There seems to be no clear distinction between different users or target groups. For example, a total beginner needs different documents than a more advanced user or even an admin. Although the "Getting started" addresses the beginner, it's not clear what comes next. The admin isn't really mentioned at all.
  • Structure-wise, the doc doesn't distinguish clearly between tasks, concepts, and references (see below about this idea).
  • Some examples are quite advanced, for example the section Test, Build & Deploy. Unfortunately, this example uses Terraform which is a bit unfortunate. Although you don't have to completely understand Terraform to use it, it raises the bar quite high and creates an unnecessary dependency. As test, build, and deploy is quite a common approach, there should be a simpler example which doesn't depend on Terraform.

The overall goal is to make the documentation even more useful, accessible, and easier to understand.

Suggestion

I understand that the above points are maybe a bit too much for this single issue. Probably we can split it up into different, independent issues that drives to a common goal. For example, the example could be solved independent from this overall idea.

Not sure if you know already, but one way to organize documentation would be into tasks, concepts, and references. That idea comes from topic oriented writing:

  • Task: the "recipes" where the real work takes place. Things the user needs to do. Usually organized in procedures with several steps. Examples are "Getting started with Concourse", "Starting a pipline" etc.
  • Concept: informs the user about background information in a greater context. They are neither tasks nor references. For example, "Inputs and Outputs", "Auth & Teams" etc.
  • References: shows details about CLI, API, pipeline format etc. It's more of a dictionary-type document. You only read it if you need a keyword, a structure etc. Examples are " Pipeline schema format", "API reference" etc.

That sounds like a huge task and probably it can be depending on how much effort you put into it. We already have a lot of good sections, I think a good start is to have some clearer structure and better titles. If we want to follow this approach, we could try the following steps:

  1. Go through each topic and sort it into a task, concept or reference.
  2. Set for each topic where it is targeted to: beginner, advanced user, or admin.
  3. Rephrase the title according to its type. If it's a task, start with a verb ("Starting a pipeline"). If it's not a task, start with a noun.
  4. If topics are missing, open an issue or write them.
  5. Regroup the sections so it makes sense.

So here is a short idea for a different structure. I don't say, it's perfect and it probably isn't. It should only serve as an inspiration. There are plenty of other ways to do it, there is no right or wrong:

For Beginners
* Getting Started with Concourse  (<= absolute beginner would start here)
* Using the fly CLI command
* What's next? 

For advanced users
* Installing Concourse
* Using GitHub repos in pipelines
* Running a pipeline in CLI and GUI
* Inputs and outputs
* Resources
* Introduction to YAML
* Common Pipeline practices

For admins
* Maintaining Concourse server
* Creating teams
* Passing parameters to API calls
* Knowing authentification
* [...]

References
* Pipeline schema format
* API
* Internals
* [...]

IMHO, the structure takes into account the different level of knowledge about Concourse.

What do you think?

@taylorsilva
Copy link
Member

This is fantastic! I've been writing/updating most of the docs and I'm not a docs writer, so it's been hard for me to see where to further take the docs to make them better. This is exactly what we need.

I like the proposed breakdown between the types of users and the docs meant for each group. I think it would be a huge improvement over the current structure.

I've got a lot going on right now, so definitely don't have time to work on this in the short-term, but happy to shepherd any PR's you start.

@tomschr
Copy link
Author

tomschr commented Feb 2, 2022

Thank you for your kind word, Taylor. I hope my text wasn't too mean or discouraged you. Tried to be quite the opposite! I would really like to see the documentation as a proud testament of all the possible things that can be done with Concourse.

I'm happy if my proposal makes sense to you. Even if it is still a little half-baked. 😉

The reason for this issue is, I'm a beginner. Perhaps I'm a good candidate for all the traps and mistakes you can make. 😆 The Getting Started served me quite well, but then I got confused where to go and felt a bit lost. Maybe it was just me.

I can try to kickstart the process a bit. However, when I try to build the documentation with ./scripts/build -s 8000 as written in the README, I got an errors (error loading module requirements). I use Go version go1.12.17 on my machine.

@taylorsilva
Copy link
Member

I hope my text wasn't too mean or discouraged you.

It had quite the opposite effect! It was all quality, constructive feedback. It made me feel energized and excited about the docs! 😃

I use Go version go1.12.17 on my machine.

Maybe try running go mod download first?

@tomschr
Copy link
Author

tomschr commented Feb 2, 2022

I hope my text wasn't too mean or discouraged you.

It had quite the opposite effect! It was all quality, constructive feedback. It made me feel energized and excited about the docs! 😄

Haha, that's great! 👍 😄

I use Go version go1.12.17 on my machine.

Maybe try running go mod download first?

I've tried that, see the log below. I run it on openSUSE Leap 15.2. I also added the log from the ./scripts/build command.

Not sure what I did wrong. Used the instructions from the README.

Log from "go mod download" (click me)
$ LANG=C go mod download        
go: finding golang.org/x/tools v0.0.0-20201218024724-ae774e9781d2
go: finding golang.org/x/sys v0.0.0-20191026070338-33540a1f6037
go: finding golang.org/x/sys v0.0.0-20201218084310-7d0127a74742
go: finding golang.org/x/net v0.0.0-20210224082022-3d97a244fca7
go: finding golang.org/x/net v0.0.0-20201216054612-986b41b23924
go: finding golang.org/x/net v0.0.0-20200202094626-16171245cfb2
go: finding golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
go: finding golang.org/x/text v0.3.4
go: finding gopkg.in/alecthomas/kingpin.v2 v2.2.6
go: finding gopkg.in/yaml.v2 v2.4.0
go: golang.org/x/[email protected]: unknown revision v0.3.4
go: finding golang.org/x/sys v0.0.0-20200413165638-669c56c373c4
go: gopkg.in/alecthomas/[email protected]: unknown revision v2.2.6
go: finding golang.org/x/text v0.3.2
go: golang.org/x/[email protected]: unknown revision v0.3.2
go: finding golang.org/x/sys v0.0.0-20200519105757-fe76b779f299
go: gopkg.in/[email protected]: unknown revision v2.4.0
go: finding golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/sys refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/76a8992ccba6d77c6bcf031ff2b6d821cf232e4ad8d1f2362404fbd0a798d846: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/sys/' not found
go: finding golang.org/x/net v0.0.0-20190613194153-d28f0bde5980
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/net refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/4a22365141bc4eea5d5ac4a1395e653f2669485db75ef119e7bbec8e19b12a21: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/net/' not found
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/tools refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/b44680b3c3708a854d4c89f55aedda0b223beb8d9e30fba969cefb5bd9c1e843: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/tools/' not found
go: golang.org/x/[email protected]: unknown revision 7d0127a74742
go: finding golang.org/x/tools v0.0.0-20190830223141-573d9926052a
go: golang.org/x/[email protected]: unknown revision 986b41b23924
go: finding gopkg.in/yaml.v2 v2.2.4
go: gopkg.in/[email protected]: unknown revision v2.2.4
go: finding golang.org/x/sys v0.0.0-20190422165155-953cdadca894
go: golang.org/x/[email protected]: unknown revision 573d9926052a
go: golang.org/x/[email protected]: unknown revision 16171245cfb2
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/oauth2 refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/107b619a0a978da90476a85ea79f10cd55d87ea7b773b72c57d92167dbaf4d15: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/oauth2/' not found
go: golang.org/x/[email protected]: unknown revision d28f0bde5980
go: golang.org/x/[email protected]: unknown revision 669c56c373c4
go: golang.org/x/[email protected]: unknown revision fe76b779f299
go: golang.org/x/[email protected]: unknown revision 5ac8a444bdc5
go: golang.org/x/[email protected]: unknown revision 953cdadca894
go: finding golang.org/x/mod v0.4.0
go: finding golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
go: golang.org/x/[email protected]: unknown revision v0.4.0
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/sync refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/55179c5d8c4db2eaed9fae4682d4c84a1fd3612df666b372bef3bbb997c9601f: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/sync/' not found
go: error loading module requirements
Log from ./scripts/build -s 8000 (click me)
$ LANG=C ./scripts/build -s 8000
go: finding golang.org/x/sync v0.0.0-20181108010431-42b317875d0f
go: finding golang.org/x/net v0.0.0-20210224082022-3d97a244fca7
go: finding golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
go: finding golang.org/x/net v0.0.0-20190613194153-d28f0bde5980
go: finding golang.org/x/sys v0.0.0-20191026070338-33540a1f6037
go: finding golang.org/x/sys v0.0.0-20201218084310-7d0127a74742
go: finding golang.org/x/text v0.3.4
go: finding golang.org/x/mod v0.4.0
go: finding golang.org/x/tools v0.0.0-20201218024724-ae774e9781d2
go: finding gopkg.in/alecthomas/kingpin.v2 v2.2.6
go: golang.org/x/[email protected]: unknown revision v0.4.0
go: golang.org/x/[email protected]: unknown revision v0.3.4
go: gopkg.in/alecthomas/[email protected]: unknown revision v2.2.6
go: finding golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/sync refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/55179c5d8c4db2eaed9fae4682d4c84a1fd3612df666b372bef3bbb997c9601f: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/sync/' not found
go: finding golang.org/x/sys v0.0.0-20200413165638-669c56c373c4
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/net refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/4a22365141bc4eea5d5ac4a1395e653f2669485db75ef119e7bbec8e19b12a21: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/net/' not found
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/tools refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/b44680b3c3708a854d4c89f55aedda0b223beb8d9e30fba969cefb5bd9c1e843: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/tools/' not found
go: finding golang.org/x/sys v0.0.0-20190422165155-953cdadca894
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/oauth2 refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/107b619a0a978da90476a85ea79f10cd55d87ea7b773b72c57d92167dbaf4d15: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/oauth2/' not found
go: golang.org/x/[email protected]: unknown revision d28f0bde5980
go: finding golang.org/x/tools v0.0.0-20190830223141-573d9926052a
go: golang.org/x/[email protected]: unknown revision cbe0f9307d01
go: finding golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb
go: golang.org/x/[email protected]: unknown revision 573d9926052a
go: finding golang.org/x/net v0.0.0-20200202094626-16171245cfb2
go: golang.org/x/[email protected]: unknown revision c7110b5ffcbb
go: finding golang.org/x/sys v0.0.0-20190904154756-749cb33beabd
go: golang.org/x/[email protected]: unknown revision 16171245cfb2
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/sys refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/76a8992ccba6d77c6bcf031ff2b6d821cf232e4ad8d1f2362404fbd0a798d846: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/sys/' not found
go: finding golang.org/x/net v0.0.0-20201216054612-986b41b23924
go: golang.org/x/[email protected]: unknown revision 7d0127a74742
go: golang.org/x/[email protected]: unknown revision 986b41b23924
go: finding golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
go: golang.org/x/[email protected]: unknown revision 669c56c373c4
go: golang.org/x/[email protected]: unknown revision 953cdadca894
go: golang.org/x/[email protected]: unknown revision 749cb33beabd
go: finding gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
go: finding gopkg.in/yaml.v2 v2.2.4
go: finding gopkg.in/yaml.v2 v2.4.0
go: finding gopkg.in/yaml.v2 v2.3.0
go: golang.org/x/[email protected]: git fetch -f https://go.googlesource.com/xerrors refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/3dae2e2383f75162530e523fa60c46a0150bec632a2a57ec3fee7fac3fc3648c: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/xerrors/' not found
go: gopkg.in/[email protected]: git fetch -f https://gopkg.in/tomb.v1 refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/toms/go/pkg/mod/cache/vcs/95acae1f863cd3698780e83ddc42f6ad6cd0ab1cb79143808a7de7300ae4df93: exit status 128:
        remote: Not Found
        fatal: repository 'https://github.com///gopkg.in/tomb.v1/' not found
go: gopkg.in/[email protected]: unknown revision v2.2.4
go: gopkg.in/[email protected]: unknown revision v2.4.0
go: gopkg.in/[email protected]: unknown revision v2.3.0
go: error loading module requirements

@taylorsilva
Copy link
Member

taylorsilva commented Feb 3, 2022

That's weird that you're getting stuff like

        remote: Not Found
        fatal: repository 'https://github.com///go.googlesource.com/sys/' not found

I'm on a new machine right now and I don't get any errors from go mod download. I'm using go 1.17.2. Might be worth trying to upgrade to 1.16. I think 1.16 had some changes related to go mod.

I'm also having trouble building on this new machine that hasn't built the docs before.

./scripts/build
INFO[0000] plugin registered                             plugin=baselit
INFO[0000] plugin registered                             plugin=baselit
INFO[0000] plugin registered                             plugin=concourse-docs
INFO[0000] plugin registered                             plugin=resource-type-list
WARN[0000] no $GITHUB_TOKEN set; using filler download links
WARN[0000] no $GITHUB_TOKEN set; using filler RFCs
lit/docs/steps.lit:1386: parse error: no match found, expected: [\\{}] or [a-z-]

 1386|         \required-attribute{steps}{[step]}{
      ^

Not sure what that's about 🤔

EDIT: nvm, found out it's due to a rogue slash and probably the latest version of booklit changing a bit too

@taylorsilva
Copy link
Member

It's building fine for me now on a new machine (macos) with go 1.17.2

@tomschr
Copy link
Author

tomschr commented Feb 3, 2022

Thanks for all the tips, updating to go1.17 and adding ~/go/bin into PATH helped.

I forked the repo already, will create a branch, and try to work a bit on the idea. I don't know where it leads us. When I will have something to show, I'll come back and will notify you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants