Tools to diagnose config transformations issues

Hi,

I have a web.config file and an associated transformation file named web.my-project.test.config.
The deployment process in Octopus has only one step that deploys to IIS and has a confirmation transform rule (under “additional transforms”) of "web.#{Octopus.Project.Name}.#{Octopus.Environment.Name}.xml => web.config"
Octopus does not apply the transformation, and says nothing about it in the task logs.
I checked the transformation with SlowCheetah ( https://visualstudiogallery.msdn.microsoft.com/05bb50e3-c971-4613-9379-acae2cfe6f9e ) and it’s correct.
I also checked that the transformation file is included in the project and in the nuget package (I’m building the package with the standard OctoPack procedure).
I also checked that the project name is correct (in the database, even matching the case) and the environnment name is correct (also matching the case).

At this point I realise that I’m starting to guess and that’s something to avoid of course. Since there are no logs about this situation, I start looking for tools and I find https://github.com/OctopusDeploy/Calamari which seems like it could help diagnose issues with transformations locally, without me having to try things by guessing and commiting changes then waiting for the build in TeamCity and the deployment in Octopus.
However it seems that Calamari is not available in nuget.org for some reason, which is puzzling ( https://www.nuget.org/packages?q=calamari ).
So I built it from source code and when I ran it found that there are no options to apply transformations. It might be part of the “deploy-package” command, but I only want to test the transformations here, not deploying the whole thing.

So the question is: are there really no logs or tools to diagnose an issue like this? I browsed around this forum and it seems that lots of people have issues with transformations. Instead of guessing what their problem is, doesn’t it make more sense to provide tools so they can figure things out on their own?

Cheers,
Mauricio

Hi Mauricio,
We do try to provide as much logging as possible around these tasks but perhaps this may be a scenario where it’s lacking. So that I can try to diagnose what might be going on (and as a result possibly add more logging for future users), could you please provide screenshots of your step configuration as well as any logs that its currently generating. Also, what version of Octopus Deploy are you using.
Thanks in advance for providing all this information, hopefully we should get you deploying successfully again.
Cheers,
Robert

Hi Rob,

Thanks for your answer and sorry for the very late reply! I’m using the latest version of Octopus.
This issue is about getting tools to diagnose things by myself, which is also good for you as it would likely drive down your support costs.
I’d rather not start the “blind support guessing” game (not sure how to best describe it, but you probably know what I’m talking about :slight_smile: ), as it is very time consuming, frustrating for both ends and many times does not end with a concrete solution.
I see that Calamari is still not available on NuGet, would you consider publishing it?
Also is there at least a troubleshooting guide for this kind of problems?

Thanks,
Mauricio

Hi Mauricio,
As you have found we currently don’t expose though Calamari any just perform transformation commands since there are various dependencies that Calamari has when executing the deployments such as variables provided through an external variables.json file as well as environment variables. Its not really something we expect people to be using often. Given that Calamari is bundled within Octopus Deploy we have not yet seen a big desire from the community to publish it to NuGet. Despite that, it is open source so users are free to fork, tweak and use internally in their own Octopus Deploy instances.
We strive to make OD as simple to understand as possible, so any unexpected behaviour, or failures we would ideally like to surface through the portal itself to prevent users from even having to use tools to understand.
With regards to your config transformation problems perhaps we can be of help. There were some changes made in 3.3.0 that provided better logging and warning information when transformations take place. What version of Octopus are you currently running? You mentioned latest so I would have expected some logging to be available. Could you send me a screenshot of your deployment step. Are these files in the root directory of the extracted package?
I hope we can get to the bottom of your issues so you can get your deployments working again, and prevent confusion for all our future users.
Robert