Release Notes

I’m trying to get release notes from the TeamCity Octo plugin into Octopus Deploy.

I have the TC Octo Build Information build runner pulling the commit from git.
This works.
I have named the Package ID with reference to the 2 git repo’s that are been built.
So one is FrontEnd and the other is BackEnd.
According to the octopus document the Package Id is not the same as an nuget package id.

So onto Octopus server:
Under the Library >> Build Information page; I can see the commits from each repo and assigned to the correct release version.

What I can’t seem to do is get the build information from FrontEnd and BackEnd into an actual release package using the release template.

eg: using the documentation example:
Here are the notes for the packages

    #{each package in Octopus.Release.Package}
    - #{package.PackageId} #{package.Version}
    #{each workItem in package.WorkItems}
        - [#{workItem.Description}](#{workItem.LinkUrl})
    #{/each}
    #{/each}

What am I missing here?
Do I need to name the Build Information package Id after an actually nuget package that is included in a release?
Our software is made of many parts. Not a single site/executable.
How do I get Octopus.Release.Package to contain the build information from FrontEnd and BackEnd?

I worked it out.
TL;DR. Build Information should be associated to Package Version Id ; not a list of Package Id’s.

Firstly, the documentation on automated release notes are really really bad. Sorry; but they don’t do a good job at describing how to do release notes. No start to finish examples.

Secondly, you are assuming a 1 repo per project package (nuget or otherwise).
This isn’t always the case.
Teams do have multiple projects in 1 repo.

So the Build Information you are extracting from TC to Octopus is really better described as repo changes since last build. (aka Change History)
Now if a repo has more than 1 project and thus more packages; you say to include the extra package names in the package id list (part of the build info build step)
All this does is add the same build information multiple times in the release notes (for each package id). Not really very useful.

For example, take the documentations example release notes template:

Packages used in release #{Octopus.Release.Number}:

#{each package in Octopus.Release.Package}
- #{package.PackageId} #{package.Version}
#{each commit in package.Commits}
  -  [#{commit.CommitId}](#{commit.LinkUrl}) - #{commit.Comment}
#{/each}
#{/each}

If there are 10 projects; build 10 packages from a single repo. The above code will simply iterate the same commit messages for each package id.
This is simply just noise.

Annoyingly you associate build information for a release only by package id references.
When; what I think you need to do; is associate build information by package version to a release.
That way we can build any number of repo’s and packages into a release and have the correct build information assigned to the release by its is package version id from all associated code repo’s.

Cheers

Hi Tony,

Thanks for getting in touch and providing a great level of detail! (I was actually in the process of responding with essentially the same information as your findings.) Great to hear you sorted this out, and I appreciate you going in depth with the solution, and also for your input on how we can improve our documentation in this area. I’ve taken note of your feedback and we’ll have another look on improving it.

Thanks again, and please don’t hesitate to reach out if you have any questions or concerns moving forward!

Best regards,

Kenny

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.