concourse / docs

concourse documentation and website
https://concourse-ci.org
56 stars 153 forks source link

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

Open tomschr opened 2 years ago

tomschr commented 2 years ago

Situation

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

However, I see some issues with the current documentation:

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:

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 commented 2 years ago

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 commented 2 years ago

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. :wink:

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. :laughing: 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 commented 2 years ago

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 commented 2 years ago

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! :smile:

Haha, that's great! :+1: :smile:

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/text@v0.3.4: unknown revision v0.3.4 go: finding golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 go: gopkg.in/alecthomas/kingpin.v2@v2.2.6: unknown revision v2.2.6 go: finding golang.org/x/text v0.3.2 go: golang.org/x/text@v0.3.2: unknown revision v0.3.2 go: finding golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 go: gopkg.in/yaml.v2@v2.4.0: unknown revision v2.4.0 go: finding golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5 go: golang.org/x/sys@v0.0.0-20191026070338-33540a1f6037: 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/net@v0.0.0-20210224082022-3d97a244fca7: 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/tools@v0.0.0-20201218024724-ae774e9781d2: 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/sys@v0.0.0-20201218084310-7d0127a74742: unknown revision 7d0127a74742 go: finding golang.org/x/tools v0.0.0-20190830223141-573d9926052a go: golang.org/x/net@v0.0.0-20201216054612-986b41b23924: unknown revision 986b41b23924 go: finding gopkg.in/yaml.v2 v2.2.4 go: gopkg.in/yaml.v2@v2.2.4: unknown revision v2.2.4 go: finding golang.org/x/sys v0.0.0-20190422165155-953cdadca894 go: golang.org/x/tools@v0.0.0-20190830223141-573d9926052a: unknown revision 573d9926052a go: golang.org/x/net@v0.0.0-20200202094626-16171245cfb2: unknown revision 16171245cfb2 go: golang.org/x/oauth2@v0.0.0-20190604053449-0f29369cfe45: 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/net@v0.0.0-20190613194153-d28f0bde5980: unknown revision d28f0bde5980 go: golang.org/x/sys@v0.0.0-20200413165638-669c56c373c4: unknown revision 669c56c373c4 go: golang.org/x/sys@v0.0.0-20200519105757-fe76b779f299: unknown revision fe76b779f299 go: golang.org/x/sys@v0.0.0-20181116152217-5ac8a444bdc5: unknown revision 5ac8a444bdc5 go: golang.org/x/sys@v0.0.0-20190422165155-953cdadca894: 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/mod@v0.4.0: unknown revision v0.4.0 go: golang.org/x/sync@v0.0.0-20181108010431-42b317875d0f: 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/mod@v0.4.0: unknown revision v0.4.0 go: golang.org/x/text@v0.3.4: unknown revision v0.3.4 go: gopkg.in/alecthomas/kingpin.v2@v2.2.6: unknown revision v2.2.6 go: finding golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01 go: golang.org/x/sync@v0.0.0-20181108010431-42b317875d0f: 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/net@v0.0.0-20210224082022-3d97a244fca7: 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/tools@v0.0.0-20201218024724-ae774e9781d2: 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/oauth2@v0.0.0-20190604053449-0f29369cfe45: 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/net@v0.0.0-20190613194153-d28f0bde5980: unknown revision d28f0bde5980 go: finding golang.org/x/tools v0.0.0-20190830223141-573d9926052a go: golang.org/x/net@v0.0.0-20180218175443-cbe0f9307d01: unknown revision cbe0f9307d01 go: finding golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb go: golang.org/x/tools@v0.0.0-20190830223141-573d9926052a: unknown revision 573d9926052a go: finding golang.org/x/net v0.0.0-20200202094626-16171245cfb2 go: golang.org/x/net@v0.0.0-20201202161906-c7110b5ffcbb: unknown revision c7110b5ffcbb go: finding golang.org/x/sys v0.0.0-20190904154756-749cb33beabd go: golang.org/x/net@v0.0.0-20200202094626-16171245cfb2: unknown revision 16171245cfb2 go: golang.org/x/sys@v0.0.0-20191026070338-33540a1f6037: 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/sys@v0.0.0-20201218084310-7d0127a74742: unknown revision 7d0127a74742 go: golang.org/x/net@v0.0.0-20201216054612-986b41b23924: unknown revision 986b41b23924 go: finding golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 go: golang.org/x/sys@v0.0.0-20200413165638-669c56c373c4: unknown revision 669c56c373c4 go: golang.org/x/sys@v0.0.0-20190422165155-953cdadca894: unknown revision 953cdadca894 go: golang.org/x/sys@v0.0.0-20190904154756-749cb33beabd: 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/xerrors@v0.0.0-20191204190536-9bdfabe68543: 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/tomb.v1@v1.0.0-20141024135613-dd632973f1e7: 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/yaml.v2@v2.2.4: unknown revision v2.2.4 go: gopkg.in/yaml.v2@v2.4.0: unknown revision v2.4.0 go: gopkg.in/yaml.v2@v2.3.0: unknown revision v2.3.0 go: error loading module requirements ```
taylorsilva commented 2 years ago

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 commented 2 years ago

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

tomschr commented 2 years ago

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.