Improve variables UI
The variables view is very basic and it generally needs improving since it quickly gets hard to use when you begin adding lots of variables.
1. You have to add the same variable name for multiple environments and the ordering of environments is not the same. This is error prone and makes the list hard to parse.
2. There is no description for variables so you need to add very long names sometimes. This has already been covered, but I added it for completeness. See https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/6079578-enhance-the-variable-maintenance-screen-with-varia
3. There can be different types of variables which are changed for different reasons. It would be great to have a category concept to group them with.
4. For very large numbers of variables it would be great with a search box which filters the variables as you type. It should also search in the description.
See the following mockup for an example:
Thanks everyone for your suggestions. We are happy to announce that a new version of the Variable Editor has shipped in Octopus 4.0! See https://octopus.com/blog/octopus-release-4-0 for more details.
In this first release, we have focused on providing a great variable editing experience, which we hope you will love! Although we haven’t yet been able to implement all of your great suggestions, we have been able to build an extensible variable editor that we will continue to improve in future.
Ryan Litvak commented
I agree with these comments as well as I am having issues managing the variables on a large project. It grew organically and now it is a very daunting task for someone not already familiar with where to find a variable. Another suggestion I would add is to be able to scope an entire variable set and also the ability to have a template that you can inherit from that defines the necessary variables. I would like to have one master template and then inherit per env and scope that entire thing so I don't have to do it one by one or include them all in one variable set. It would also be nice to have the option to override a variable from the template or just leave the inherited value so you only had to change what you needed to change. Then have a toggle to show all or just show the overridden values.
Scott McFadden commented
Pressing the delete key on the variable grid is an exercise in frustration. You intend to delete a single character but instead the entire element is cancelled out and must be undone.
Morten Christiansen commented
This is a great first step, but I've suggested a more thorough overhaul of the variables UI here: https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/7192251-improve-variables-ui
D Lemos commented
I totally agree with this. It is very difficult sometimes to explain what variables do.
Our workflow was built to be scalable from scratch. Which means we have local and environment variables dependent on each other and makes it hard to track them.
Some of our variables are not to be changed, they are just used to build strings. At the moment I came with a convention to allow us to quickly set up a project. So for example variables starting with "_" must be changed.
Would be great to have a description field.
Pierre-Antoine DOUCHET commented
Very important feature. From my side, with the number of environments, the number of projects and the many variables per projects, it's important to have a feature in the tools to be able to describe the variables.
Colin Svingen commented
First, we really need this feature. We have some projects with so many variables we're losing track of them. I can't imagine what it will be like in 2, 3, 5 years down the road.
Another option as far as the UI. There could be a folding region that opens below the row giving a variable height notes area that spans the width of the whole table.
Ron Scott commented
When variable lists grow long or libraries grow numerous, even with highly self-descriptive variable naming, it is easy to forget or temporarily lose track of what purpose a variable serves. Additionally, sometimes a variable's value may have a critical effect on many different deployment projects.
In other words, there are many reasons why an Octopus admin may want to add some descriptive text to a variable.
Storage and entry of this text seems like a trivial issue, but how to display it in an elegant way? It would be easy enough to add a column to the variable table, but this would either require horizontal scrolling (always bad for many reasons) or compression of the existing columns (and they already feel cramped.)
Another option could be to put a small indicative icon to the right of the variable name, inline in the same cell, maybe right-justified. This would be an instant indication that a variable had notes/comments. Mousing over the icon could provide a tooltip that displays the notes, which would disappear when the cursor leaves the icon.