For a real example, my index card says "Abstraction Tweaks".
My day.md looks like this:
# <story-id> - SPIKE: Investigate the best way to abstract common Jenkinsfiles
* Look at current Jenkinsfile types
* Identify commonalities
* If workflows had to change, what would that look like in a code change
* Write a less abstract version, how does that change future code change approach and readability
* Test
* Write a more abstract version, how does that change future code change approach and readability
* Test
* How easy is it to read current code vs your new abstraction
So my index card is more like a pointer to the day.md story I am working on. Right now, perhaps it's obvious, I just started working this story. My breakdown of the work to be done is rather generic. As I start working on the first part "Look at current Jenkinsfile types", I will see the types, and then update that section with the different types as a note. This help me downstream when I am ready to make changes, I can make sure my abstractions in this case would work for all cases.Here is an example of a done task, including my thoughts, verbatim from my day.md. It's the worst case scenario when I get stuck. By convention, "" means action, ">" means thought. Markdown renders it nicely.
* DONE Test `withEnv` removal - it fails
* If it breaks move it into the rhel7-gradle Dockerfile
* Test change - it fails
* Test w/o gradle opts - success
* Test w/o gradle user home - failure
* Test w/o gradle home - success
> how is this possible? Empty gradle user home or defined works, removing it fails...
* Test no GRADLE_USER_HOME in Dockerfile ENV withEnv GRADLE_USER_HOME= - success
* Test no GRADLE_USER_HOME in Dockerfile ENV no withEnv GRADLE_USER_HOME= - failure
* Test GRADLE_USER_HOME in Dockerfile ENV no withEnv GRADLE_USER_HOME= - failure...container env points to /app/jenkins/.gradle...w/ Dockerfile ENV defined...
* Test GRADLE_USER_HOME in Dockerfile ENV withEnv GRADLE_USER_HOME= - success...container env points to /home/gradle/.gradle which matches Dockerfile
> Looks like the witEnv is shielding the ENV Dockefile definition from an override, where is it coming from?
> Still need to test withEnv only surrounding gradleWorkflow, I don't think the docker workflow needs it
* Jenkins Globals overwrite ENV variables. Removed them from test and everything works