Repository navigation
Rewrite of system variables page to match new standards - #3275
Conversation
| subject: system variables, release variables, deployment variables, action variables, output variables, runbook variables | ||
| type: reference | ||
| audience: [devops-eng, power-user] | ||
| image: |
There was a problem hiding this comment.
Why does a page have image and imageAlt?
There was a problem hiding this comment.
These should power the open graph image. There is a fall back if there is no value. But the slot is there for high value pages that would need their own open graph image.
There was a problem hiding this comment.
I'm not up to speed with what "open graph image" means sorry.
In general, it's good not to leave empty things around; people either get confused by them (like I was), or mistake them for a bug and attempt to fill them in, which might break other things.
|
🤖 Review by Claude (via Claude Code, requested by @orion-edwards) I diffed the rewrite against 🔴 1. Five inbound anchor links breakThe old page carried explicit
Cheapest fix: put the explicit 🔴 2. Indexed step/action notation is goneThe old "Tracking deployment status" section documented the indexer forms: The new page only has the unindexed current-step/current-action versions (lines 221, 242, 338–340). That's a real capability loss, not just prose — reading another step's status is the documented way to write run conditions, and Same pattern in Output variables: the old page had Suggest a short note under Step/Action variables that indexer notation is available, plus keeping the 🔴 3.
|
|
Regarding changed subheadings: "Nothing in the repo links to them" is good enough for me. Any bookmarks that used an anchor will still land on the correct page, they just won't land on the correct subsection. I'm fine with that. Don't know what happened with the leading whitespace, but good that the linter caught it. I updated the content to include missing step/action notation caught by Claude review. |
|
Pull request environment is available at https://stoctodocspr3275.z22.web.core.windows.net. You can view the ephemeral environment status in Octopus Deploy. This environment will be automatically deprovisioned when the pull request is closed, or after 7 days of inactivity. |
| | `Octopus.Release.Builds` | The build and version-control details associated with the release. A collection of build objects. | `#{Octopus.Release.Builds[0].BuildUrl}` | | ||
| | `Octopus.Release.WorkItems` | The distinct work items across all packages in the release. A collection of work item objects. | `#{Octopus.Release.WorkItems[0].Id}` | | ||
|
|
||
| ### Package properties |
There was a problem hiding this comment.
I notice that the old version of this expressed the structure in JSON, whereas this is just tables now. The JSON helps make it much easier to see the structure and relationships, but sucks for describing the properties...
Anyway, in the description for Octopus.Release.Package above, you have "A collection of package objects". I think this heading should therefore be "Package object properties". It's subtle, but using the "Package object" term in both places ties them together in a way that "Package properties" doesn't
There was a problem hiding this comment.
I'll be honest. I stopped reading about halfway down the page; it looked reasonable enough and I'd bank on claude catching any minor mixups before I did. The content changes look good and the table format is much nicer than the eternally-scrolling list.
However, there is one major problem with the table approach, evidenced by this screenshot from the staging site, where the Description and Example columns are not visible at all.
What's happening:
- The layout specifies a fixed-with central content column of 800px
- The variable names are formatted as code with backticks. This means they don't wrap (which they shouldn't; wrapping would obscure the meaning)
- We have some quite long and verbose variable names, which consume almost the entire 800px width at the current font size
- The description and example columns don't fit within the 800px size. You have to scroll horizontally to see them, but modern macOS and windows don't show a horizontal scrollbar, so for all intents and purposes they're just gone 😢
I don't think we can ship this. We'll need to come up with some other way of presenting tables where the columns contain non-wrappable text
| | `Octopus.Release.CurrentForEnvironment.Id` | The ID of the release of the last successful deployment to the current environment. | `releases-122` | | ||
| | `Octopus.Release.CurrentForEnvironment.Number` | The version number of the release of the last successful deployment to the current environment. | `1.2.2` | | ||
| | `Octopus.Release.Git.BranchName` | The branch name the release was created from. Available for version-controlled projects. | `features/some-new-feature` | | ||
| | `Octopus.Release.Git.CommitHash` | The commit hash the release was created from. Available for version-controlled projects. | `0c708fdec272bc4446c6cabea4f0022c2b616eba` | |
There was a problem hiding this comment.
The commit hash causes the example column on the table to be very wide and squash all the explanatory text. I think we should shorten it from 0c708fdec272bc4446c6cabea4f0022c2b616eba to 0c708f...6eba. Everyone knows what a commit hash is
| | `Octopus.Action.Name` | The name of the action. | Website | | ||
| | `Octopus.Action.Number` | The sequence number of the action in the deployment process. | `5` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectory` | The specific directory the package is copied to after extraction, if set. | `C:\InetPub\WWWRoot\OctoFx` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectoryShouldBePurgedBeforeDeployment` | Whether all files in the custom installation directory are deleted before deployment. | `False` | |
There was a problem hiding this comment.
CustomInstallationDirectoryShouldBePurgedBeforeDeployment is super long and causes the column to push the other ones out of the visible area.
We could consider putting a <wbr> in the middle of the word, but it's awkward because it's just a single word. Unclear as to whether this would work or whether it'd be a good idea.
TreatConfigTransformationWarningsAsErrors below is also going to do it.
I feel like our max column width of 800x is too low. It's good for text, but for tables it's oppressive. Can we do something like min-width 800, max-width 1200 on the column, or style the tables so they can exceed the normal column bounds or something?
There was a problem hiding this comment.
Also, font-size reduction might help
There was a problem hiding this comment.
I put a manual . This feels like an edge case. However, the design handover document specifies:
"Decorated code breaks onto next line at the dot OR capital letter, depending on if there's no dot for the break to occur before max width is reached. If there are no dots or capital letters, break occurs at max width."
There was a problem hiding this comment.
That should probably be solved in the CSS, rather than with manual breaks. But the works for now. :)
There was a problem hiding this comment.
Decorated code breaks onto next line at the dot OR capital letter
...
That should probably be solved in the CSS, rather than with manual breaks
The problem is that CSS simply can't break words on capital letters.
…and wbr for long variable name
| | `Octopus.Action.Name` | The name of the action. | Website | | ||
| | `Octopus.Action.Number` | The sequence number of the action in the deployment process. | `5` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectory` | The specific directory the package is copied to after extraction, if set. | `C:\InetPub\WWWRoot\OctoFx` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectoryShouldBePurgedBeforeDeployment` | Whether all files in the custom installation directory are deleted before deployment. | `False` | |
There was a problem hiding this comment.
Also, font-size reduction might help
|
|
||
| | Variable | Description | Example | | ||
| | --- | --- | --- | | ||
| | `Octopus.Action.Azure.CertificateThumbprint` | The thumbprint of the X.509 certificate used to authenticate with the target Azure subscription. | `86B5C8E5553981FED961769B2DA3028C619596AC` | |
There was a problem hiding this comment.
As above, long value of 86B5C8E5553981FED961769B2DA3028C619596AC causes the table rendering to be wonky. Suggest 86B5C...96AC
| | `Octopus.RunbookRun.Created` | The date and time the runbook was run. | Friday, March 13, 2020 6:23:38 AM | | ||
| | `Octopus.RunbookRun.CreatedUtc` | The date and time the runbook was run, in UTC. | `3/13/20 6:23:38 AM +00:00` | | ||
| | `Octopus.RunbookRun.Git.BranchName` | The branch name, if the run was created from a branch. | `branch-abc` | | ||
| | `Octopus.RunbookRun.Git.CommitHash` | The commit hash used to create the run, for a version-controlled runbook. | `14677f79e59df2a55e3904a7020fd14e96b8a1e9` | |
There was a problem hiding this comment.
As above, suggest shortening commit hash to 14677f...a1e9
| | `Octopus.Action.Name` | The name of the action. | Website | | ||
| | `Octopus.Action.Number` | The sequence number of the action in the deployment process. | `5` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectory` | The specific directory the package is copied to after extraction, if set. | `C:\InetPub\WWWRoot\OctoFx` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectoryShouldBePurgedBeforeDeployment` | Whether all files in the custom installation directory are deleted before deployment. | `False` | |
There was a problem hiding this comment.
Decorated code breaks onto next line at the dot OR capital letter
...
That should probably be solved in the CSS, rather than with manual breaks
The problem is that CSS simply can't break words on capital letters.
| | `Octopus.Action.Name` | The name of the action. | Website | | ||
| | `Octopus.Action.Number` | The sequence number of the action in the deployment process. | `5` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectory` | The specific directory the package is copied to after extraction, if set. | `C:\InetPub\WWWRoot\OctoFx` | | ||
| | `Octopus.Action.Package.CustomInstallationDirectory<wbr>ShouldBePurgedBeforeDeployment` | Whether all files in the custom installation directory are deleted before deployment. | `False` | |
There was a problem hiding this comment.
Unfortunately you can't put tags inside code blocks
We could use a zero-width non-breaking space, however if someone copies and pastes the value, the ZWNBSP will end up in the pasted output and break their script so that's not great.
I'm not sure there's a solution here.
Maybe we just merge it and hope and pray that future changes to table formatting and font sizes will help?
There was a problem hiding this comment.
What's wrong with:
word-break: normal;
overflow-wrap: anywhere;
On the <code> element?
…ode blocks. Improve comment in rehype-wbr comment. Fix padding and improve font-size of code blocks
There was a problem hiding this comment.
Rather than continuously kicking problems back to you I thought I'd try and fix it.
I've added a commit which uses explicit HTML to insert wbr's in the middle of some of the long words, e.g. <code>OctopusSuppressDuplicate<wbr>VariableWarning</code>
This is ugly to author, but we only need to do it in a handful of places and it works well. No tables overflow the horizontal area anymore.
I also piggybacked two other changes.
- Adding small horizontal padding to code blocks, per Mandy's comment here - this is also in alignment with the figma design, I just missed it earlier
- Reducing the font size for
<code>blocks slightly. Note this is not the style that the figma design says to use. It calls fortext.code.regular.mediumwhich is actually bigger than the old font size. I usedfont.size.mediumwhich, in my opinion, looks better as it's closer to the size of the surrounding non-monospace text.
Screenshot showing the explicit breaks on the very long words, plus the tweaks to the font
@samironsoctopus - see what you think, and merge when you're happy. Your call if we escalate the font size change up to Ellen or just take it

This is probably a good test of our reviewer workflow too, since the group landed on GitHub as the place to review content.