[Docs] Improve docs around stream apps table
Duplication
There is a table that lists the available stream apps and it is in several locations:
- https://github.com/spring-cloud/stream-applications/blob/main/README.adoc#reusable-spring-cloud-stream-applications
- https://dataflow.spring.io/docs/applications/pre-packaged/#scdf-stream-applications
- https://spring.io/projects/spring-cloud-stream-applications
This duplication leads to inconsistency across locations and is toil to attempt to keep the table up-to-date.
- [ ] An improvement would be to manage this table in a single location - and link to (or use) the central table.
- [ ] A further improvement would be to auto-generate the central table.
Formatting
In addition to the duplication, the table layout is currently confusing. There is a 3 column table (source, processor, sink). Each column is alpha-ordered but there is also an attempt to line up rows that have representation in more than 1 column (eg. xmpp, twitter, etc..).
It may be less confusing to instead break the 3 column table into 3 separate lists (one for source, processor, sink) and just make them alpha-ordered.
If this formatting is done, there is also a reusable functions table that may benefit from the same treatment.
Wiki
Also add a Wiki w/ checklist for items to do when we add a new app.
We don’t do it often but there are several places that things need to be updated when we do.
- top-level README
- metadata descriptor files
- stream-applications-release-train/stream-applications-docs pom.xml requires deps for any modules that are publishing javadocs
- central app/function table (in items above)
+1 for a list representation: there is no guarantee that we always going to have close number of those sources, processors and sinks.
I also don't think that it would be a big deal to have these lists in a separate adoc file to be include:: whenever it is necessary.
Indeed such a file could be generated: I believe I can write some Gradle task simply based on Groovy File API, but I don't think it would be possible with Maven without custom plugin or so...
Indeed such a file could be generated: I believe I can write some Gradle task simply based on Groovy File API, but I don't think it would be possible with Maven without custom plugin or so...
I was thinking the same thing. Even w/o the auto-generation, the other 2 points would be a big improvement.
-
Solved the duplication by making the table in this repo's README the single source of truth and having the other locations simply link to the sample apps section in the README.
-
Fixed the formatting in this repo's README.
-
Not going to do any auto-generation of the table at this point.
Fixed via: https://github.com/spring-cloud/stream-applications/commit/e4143370eb8d0f1c485088e685519056b68acba3