This is from Hackfest.
I think it should be more learning than following steps.
1. Java - "Consult your distribution's documentation for details." - for Linux users Java is preinstalled, so we `java -version` would be enough to confirm
Subsections per OS would be useful
2. Open links in new tab/card
3. Installing mvn looks over-complicated if you already have homebrew/apt-get or any other package manager on any non-Windows OS
4. "Configure Maven" - do we need to set up global configuration in ~/.m2/settings? I know there is "<activeByDefault>true</activeByDefault>" there
1. "mvn -U archetype:generate -Dfilter=io.jenkins.archetypes:" - some users can run it in root folder - maybe we can offer them to create `Jenkins` folder and move inside or use `jenkins-demo` instead of `demo` later on
2. "This tutorial is based on version 1.2 of the hello-world-plugin archetype, so use that." - user number `2`
3. "Skip this value; it is unused. The default org.jenkins-ci.plugins will be used." - I wasn't asked for it
4. "This is mandatory and uniquely identifies your plugin in Jenkins. This plugin tutorial uses the name demo (user input highlighted in bold). If you want to publish your plugin, make sure the name is not already taken, and that the name you choose is future-proof: The artifactId cannot be changed after you've published your first release." - Include direct link to `https://plugins.jenkins.io/` to check, or any reference where user should check it
5. "Review and confirm your selection." - Maven will show whole configuration. Review it and confirm your selection
6. "Maven will download several more dependencies, and then go through the configured build lifecycle, including static analysis (FindBugs) and tests, until it shows something like this:" - it would be useful to have a reference what exactly will be downloaded/what is set up
1. "The Maven HPI Plugin provides a convenient way to run a Jenkins instance with your plugin:" - can we reference to description what Maven HPI plugin is, easy to check without switching context
2. "The build step will print a message to the build log, like this:" - I didn't see it (later I've realised that I was looking at console logs, but I still think it isn't clear what `build log` means)
3. "Create a new freestyle project in Jenkins, and add the "Say hello world" build step. It will look like this:" - I missed `creating build step`. I can imagine it's part of basic tutorial, but it would be good to have a reference here
1. "While possible to follow with a plain text editor, this section is much easier to follow along by using a Java IDE with Maven support." - can't we started with it? Can we offer specific solutions (IntelliJ, Eclipse etc)?
2. Can't "HelloWorldBuilder" include documentation, cause we can easy get to `SimpleBuildStep` in IDE, but jar doesn't have docs included
4. Add a view that shows the name: "This is the icon used for the side panel item" etc could be in code?
6. What is `jelly`? reference
7. "This is a JEXL expression. it is always the Java object corresponding to the view, in this case the HelloWorldAction. it.name is equivalent to a getter call (getName())." - is it Java object or hudson.model.Action?
8. "To obtain a reference to the build (or, more generally, the Run) the HelloWorldAction belongs to, we need to make it implement RunAction2. This interface adds two methods that are called when the run is first attached to a build (onAttached(Run)), and when the action and run are loaded from disk (onLoad(Run)), respectively." - it may indicate that new "HelloWorldAction" has to be created
9. "This includes a view fragment (sidepanel.jelly) of another object (the Run) at this location. We mark this as optional so no error is shown if this view fragment doesn't exist, as the abstract class Run does not define such a view, only its subclass AbstractBuild." - where can I find how to use jelly with Jenkins - that params reference to what?