Release Notes Breaks Deploy Log Page

The Product Managers at my org have asked me to implement a release notes format to be sent to slack when I create a new release. I have done this, however a LOT of users of the system now complain that the release notes section entirely screws up the page layout, making it impossible to read what’s happening in the deploy log for an environment. The release notes look like this:

*#{Octopus.Release.Number}*

*JQL* = issuetype in subTaskissueTypes() and CodebaseKey = #{Octopus.Project.Name} and IntegratedBuild = #{Octopus.Release.Number}

<#{jira.serverURL}/issues/?jql=issuetype%20in%20subTaskIssueTypes()%20AND%20%27CodebaseKey%5BDropdown%5D%27%20%3D%20#{Octopus.Project.Name}%20AND%20%27Integrated%20Build%5BLabels%5D%27%20%3D%20#{Octopus.Release.Number}|Go To Jira>

When pushed to slack, everything looks fantastic. However when you deploy to any environment, the section with these release notes pushes the table in the page waaaaaay over to the left and it causes hideous word wrap for everything to the left of it.

A commonality that all of my users have is they primarily use Chrome. I’ve had several of them switch to firefox and it resolves the issue, but that feels like a bad workaround. Additionally I can see that when some users switch their resolutions and zoom scale around that it causes some relief, but they have to zoom to less than 100% of the page.

Is there anything I can do?

Hi @Zoren_Manteuffel

Thanks for getting in touch with Octopus and for our question!

One alternative is to use the release notes template for display in the user interface / for consumption outside of Slack and then create a body for the text in Slack specific to Slack; either using a separate project/library variableset variable, or just in the step itself.

You can see an example of this in one of our sample projects in our samples cloud instance here (login as a guest)

I’ve shared a screenshot of the step in question below too:

The idea is that you’d swap out the #{Octopus.Release.Notes} variable with the template above in the step, e.g.:

*#{Octopus.Release.Number}*

*JQL* = issuetype in subTaskissueTypes() and CodebaseKey = #{Octopus.Project.Name} and IntegratedBuild = #{Octopus.Release.Number}

<#{jira.serverURL}/issues/?jql=issuetype%20in%20subTaskIssueTypes()%20AND%20%27CodebaseKey%5BDropdown%5D%27%20%3D%20#{Octopus.Project.Name}%20AND%20%27Integrated%20Build%5BLabels%5D%27%20%3D%20#{Octopus.Release.Number}|Go To Jira>

Then in the project’s release notes template, you can either replace it with the default (simply by removing the template altogether) or creating one that doesn’t cause the table to be pushed over to the left.

I hope that helps!

What in the formatting of mine causes it to be pushed so far to the left? If I am using a community step to merge release notes from releases that didn’t get to production, how would i use this?

What in the formatting of mine causes it to be pushed so far to the left?

That I’m not 100% sure of, but I was able to recreate the issue in Chrome. Using your template, Chrome makes the table’s width double the size as it does in Firefox for me. Chrome interprets the JIRA link as a continuous block of text and pushes the width out, whereas Firefox doesn’t. If you want to continue this conversation with one of our support engineers, I’d be happy to get them to help you further :slight_smile:

If I am using a community step to merge release notes from releases that didn’t get to production, how would I use this?

I’m not sure I follow the question entirely. Using a community step template works similarly to a built in template. You provide the body of text for the Slack message you want to post to Slack. If by information about releases that didn’t get to production you mean using the deployment notes template (that provides a roll-up summary of previous releases deployed/contained in the currently executing deployment) then you might need to use the release notes field (its contained within deployment notes). It really depends on what you are using in your slack message body now - and what you want to send

I hope that helps!

I’m not sure I follow the question entirely. Using a community step template works similarly to a built in template. You provide the body of text for the Slack message you want to post to Slack. If by information about releases that didn’t get to production you mean using the deployment notes template (that provides a roll-up summary of previous releases deployed/contained in the currently executing deployment) then you might need to use the release notes field (its contained within deployment notes). It really depends on what you are using in your slack message body now - and what you want to send

to clarify, we’re using a modified version of the community step: Consolidate Release Notes (I was forced to change it because it didn’t work as-is to grab the octopus URL, and it would error if the previous release had a null section in the notes.) This step is being used as you indicated to grab the previous releases’ notes if it didn’t deploy to production.

I would love to work with an engineer to try solving this.

Hi @Zoren_Manteuffel

Thanks for the additional context. One thing to note is that although the community step you mention updates the release notes, it doesn’t include that version of the merged notes in the currently executing deployment, so I’m curious if your modification of this into a custom step template has worked around that issue - as you wouldn’t be able to use the system variables to include the merged notes as they weren’t merged when the variables were initialised for the current deployment.

In any event, I’d be happy to pass this to our support team who can work with you further on helping you.

Best regards

Hi @Zoren_Manteuffel,

I’m just stepping in for Mark from the Support Team.

I’ve been investigating this TaskLog overlap with Release Notes issue today and have reproduced and confirmed this behaviour for Chromium based browsers.

I’ve raised a Github issue for tracking it’s resolution if you’d like to follow along with any updates:

I found that I by adding overflow-wrap: anywhere; to the element’s style via the browsers Dev Tools, the ReleaseNotes would wrap correctly in Chrome however it’s not really a suitable workaround.

I’ll keep you posted if I’m able to find any other workarounds or suggestions, feel free to reach out if you have any questions at all!

Best Regards,

1 Like

@mark.harrison I don’t account for that as of now. I’ve learned that I need to account for some unique scenarios that aren’t the happy path for this step that I’ve been debugging for a day or two.

For example Work Items and Issue Trackers and Commits. I have 2 team city build servers, one with a setup we’re trying to destroy and migrate off of, and one that is modernized with a better templated build setup. The new team city instance provides build information and work items on all builds for releases. The legacy server does not. Releases pushed to production on the legacy server work perfectly fine, however all projects backed by the new server throw this error that we’ve been ignoring while i try to remedy it.

Eventually once i get these tweaks done i might be able to account for the release notes replacement variable.

Hi @Zoren_Manteuffel,

That error looks like it might be an issue with deserialising JSON, could you please confirm the value of the $responseBody received?It looks like it might contain extra \s that are interfering with it being interpreted.

Let me know if that helps or you have any questions at all!

Best Regards,

@finnian.dempsey ,

I’ll have to dig into what Team City does, since I don’t see any \s in the json body provided when I try looking for it.

I finally got my hands on what Team City posts to Octopus upon using the Publish Build Information step.

I threw the JSON into a validator just to be safe, but all of what I have is entirely valid json, and there’s no illegal escape characters that I can see here. Can I send the JSON to you or an engineer privately to tell me what might be wrong with it?

Hi @Zoren_Manteuffel,

Sorry looks like I missed this earlier, I’d be happy to check over it to see if I can spot what’s going on!

You should be able to upload the JSON to our secure upload portal, feel free to reach out if there are any issues with it!

Best Regards,

I uploaded a sample JSON and an export of the slightly modified community step to that portal. The only major change i made so far was converting the release notes section to a message that indicates no notes provided for a previous release.

1 Like

Hi @Zoren_Manteuffel,

Thanks heaps for providing those!

I’ve had a dig through but wasn’t able to spot any obvious issues with the JSON. I found your test for empty $rel.ReleaseNotes and don’t think that would be causing the issue.

Looking at the error a bit closer it’s seems to be having trouble converting a commit value to a custom object. The error suggests it’s line 24, which if looking just at the commit lines, lines up with the <Root project> value in the comment, could it be this value causing the issue?

Otherwise I noticed the commits don’t have links as mine do which could cause the validation issue:

 "Commits": [
        {
          "Id": "0e6c290523a5ec656865e432a1a283d1cad4e87e",
          "LinkUrl": "https://github.com/<RepoURL>/test_tc_build/commit/0e6c290523a5ec656865e432a1a283d1cad4e87e",
          "Comment": "fixes AB#{1}"
        }
      ],

Sorry for not requesting earlier but could you please send through the task logs showing the error? That should let us see exactly what’s going on, I’m also curious why it doesn’t appear as an error originally. The same upload link should work but let me know if there are any issues with it!

Best Regards,

I’ve tried to upload some sample JSON’s but it fails to upload without error

Hi @Zoren_Manteuffel,

Thanks for trying, what was the error you received?

I’ve created another secure upload link for you to use here, please let me know if there are any issues with this one!

Best Regards,

it just says Failed.

Hi @Zoren_Manteuffel,

Thanks for confirming that, I’ll check into our backend logs to see if we’ve captured the error and keep you posted with any findings.

Does it work if you rename the file and try uploading from a incognito browser session? I wonder if the space in .log (1).txt is causing the issue.

Best Regards,

It’s weird that it works but it does so i wont complain. 2 different projects with the same step error have been uploaded.

if you need me to get a more verbose version I’ll grab one.

1 Like

Hi Zoren,

Sorry for the delay with this, it looks like my message didn’t send last week!

Thanks for sending those through, confirming I’ve received it ok! I believe it was because we refuse any files that don’t look typical e.g. myFile.txt for antivirus protection.

I’ve managed to reproduce the issue by having multiple commits in the build info, I’ll keep digging into it and see if I can get it working with multiple commits!

Best Regards,