Compare releases

Compare releases and check for compatibility between your existing Octopus Server and new releases.

What's new

These are the most important features you'll get by upgrading from 3.3.27 to 3.4.15

Octopus 3.4

New Features in 3.4

  • Multi-tenant deployments
  • Improved support for elastic and transient environments
  • Cloud Region deployment targets
  • Proxy support for Tentacle communications
  • Support for F# custom scripts
  • SemVer 2 support
  • Support for NuGet v3 external package repositories
  • Deprecation notice: We are deprecating the Azure Cloud Service and Azure Web App deployment targets. See below for more details.
  • Deprecation notice: We are deprecating the MachineResource.Status property in favour of the new MachineResource.HealthStatus property. See below for more details.
  • Breaking change: We have patched Tentacle to fix a bug when registering new machines with Octopus 3.4. See below for more details.
  • Breaking change: We have changed the HTTP Status Code returned when you attempt to push a duplicate package to the built-in package repository. See below for more details.
  • Breaking change: Octopus Server now requires a minimum .NET version of 4.5.1. We have changed the minimum required version for the server to enable the SQL connection resiliency features in ADO.NET. The Octopus Tentacles retain their current minimum .NET version.
  • Breaking change: If you are using TeamCity NuGet feeds you will need to upgrade to TeamCity 9.0 or newer (Recommend latest due to continual improvements in NuGet feed) or switch to using the Octopus built-in repository. This is due to upgrading our NuGet dependencies to v3 which aren't compatible with the custom v1 feed provided by TeamCity 7.x-8.x. We recommend upgrading to the latest TeamCity version and enabling the v2 NuGet feed API.
  • Breaking change: The way pre-release versions are handled in Channel version rules has changed. Previously pre-release versions were treated as greater than the release version. This has now been corrected, and pre-release versions are considered less than release versions. e.g. the version rule (,1.0] would have previously excluded 1.0.0-alpha. It will now include it.
  • Breaking change: The property PackageSizeBytes has been moved from PackageResource to PackageFromBuiltInFeedResource.
  • Breaking change: The property Octopus.Action.Package.NuGetPackageId and Octopus.Action.Package.NuGetFeedId on deployment steps has been changed to Octopus.Action.Package.PackageId and Octopus.Action.Package.FeedId to reflect our extended packaging options. Steps that have the old property names will have the values be synchronised with the new properties, however new steps will only set the new properties.
  • Breaking change: The property ActivityLog on TaskDetailsResource has been renamed to ActivityLogs
  • Breaking change: The logic for ScopeSpecification in Octopus.Client has moved to ScopeScenario

Octopus 3.4 and snapshots - nothing has changed

We recently posted a request for comments on removing snapshots. Don't worry, we haven't changed anything. Deployment snapshots in Octopus 3.4 work just like they did in earlier releases.

You cannot create new Azure Cloud Service nor Azure Web App deployment targets

Starting in Octopus 3.4 you will no longer be able to create new Azure Cloud Service nor Azure Web App deployment targets. Don't worry, you will be able to view and edit any existing Azure deployment targets, and begin migrating them over to the replacement Azure Cloud Service and Azure Web App deployment steps. Here is a guide to help you migrate.

In a future release of Octopus Deploy we will cease support for the Azure Cloud Service and Azure Web App deployment targets, giving you plenty of notice before doing so.

Please note that Azure Cloud Services and Azure Web Apps are still fully supported; we are just changing the way they are implemented.

Changes to health check results

We have introduced a new property MachineResource.HealthStatus for elastic and transient environments which can be either Healthy, Unhealthy, Unavailable, HasWarnings and Unknown. You can continue to use the existing MachineResource.Status in Octopus 3.4, but we have marked the Status property as Obsolete and will be removing it in a future release. The states NeedsUpgrade and CalamariUpgrade that were previously overloading the MachineResource.Status property should now be determined by the pre-existing MachineResource.Endpoint.TentacleVersionDetails.UpgradeSuggested and MachineResource.HasLatestCalamari properties respectively.

Registering new Tentacle Instances with Octopus 3.4

Registering a brand new Tentacle instance with Octopus 3.4 will fail if you are using an older version of Tentacle. This happens because old Tentacle doesn't understand Cloud Regions and couldn't deserialize them. We have patched Tentacle to be more resilient to these kinds of changes in the future.

Note: This issue only affects registering new Tentacle Instances with your Octopus Server. Existing Tentacles will continue to work as per normal. Registering a new Tentacle instance on an existing server where Tentacle has previously been installed will also fail until the Tentacle is upgraded to one of the below versions.

  • Registering 3.0.x Tentacles (used for older .NET 4.0-only servers): please download Tentacle 3.0.26 which has been patched to work with Octopus 3.4.
  • Registering a newer version of Tentacle: please start using the a 3.4.x Tentacle release (we recommend the latest).

Changes to built-in repository error codes

When you push a duplicate package to the built-in package repository we will now respond with HTTP status code 409 Conflict instead of 400 Bad Request. Clients like nuget.exe would only show the HTTP status code, dropping the reason Octopus returned explaining why it was a bad request. Using 409 Conflict for this situation should make it easier to diagnose. Refer to this GitHub Issue for more information.

Upgrading

Read the upgrade guide for more details on upgrading from your current version to Octopus 3.4.

Using TeamCity NuGet feeds? You will need to upgrade your TeamCity server to v9.0 or newer and enable the NuGet v2 API. Octopus 3.4+ no longer supports the custom NuGet v1 feeds from TeamCity 7.x-8.x. We recommend upgrading to the latest TeamCity version available due to continual improvements in their NuGet feed - or switch to using the Octopus built-in repository.

Want to use SemVer 2 for packages or releases? You will need to upgrade OctoPack and/or octo.exe to 3.4 or newer.

Octopus 3.3

New Features in 3.3

  • Script-steps can source the script from a package
  • Script-steps can execute on the Octopus server without requiring a Tentacle
  • Server-based steps (i.e. email, manual-intervention, and the new server-script steps) can be child steps
  • Support for zip and tar packages
  • OctoPack.js + gulp and grunt wrappers Guide for deploying Node.js
  • Azure Service Principal account type
  • Azure Resource Group Template step type
  • ASP.NET 5 (Sorry, ASP.NET Core) JSON configuration support
  • Breaking change: Sensitive Properties have changed to resolve a number of issues on deployment steps and templates, affecting octo.exe, Octopus.Client and the TeamCity plugin (see below for more details)

Read our blog post announcing 3.3

Please Note: you will need to upgrade octo.exe, Octopus.Client and the TeamCity plugin when upgrading to Octopus Deploy 3.3

Breaking Change: Sensitive Properties

As part of this release we have resolved a number of minor issues with sensitive properties on deployment steps and step templates. The issues resolved include:

  • Windows Service Custom account and password properties no longer retained when switching account types (#2264).
  • Sensitive fields in steps can now be cleared/reset (#2311)
  • Username/password fields on IIS and Windows Service features will remain visible if account-type/identity is bound to a variable (#2333)
  • Sensitive fields now use a consistent UI control across the entire portal.

Breaking Change

This introduces a breaking change to our API, and will affect those using the following endpoints:

  • /api/deploymentprocesses
  • /api/actiontemplates

It also affects octo.exe, Octopus.Client and the TeamCity plugin. If you are using any of these components please upgrade them when upgrading to Octopus Deploy 3.3.

See Sensitive Property API Changes in Release 3.3 for more details.

Upgrading

Read the upgrade guide for more details on upgrading from your current version to Octopus 3.3.

Please upgrade octo.exe, Octopus.Client and the TeamCity plugin when upgrading to Octopus Deploy 3.3.

Release notes

These are the features and fixes you'll get by upgrading from 3.3.27 to 3.4.15.

Changes in Octopus Server 3.4.15

  • 2828 - Creating a new role no longer adds the text (custom 'new' role) to the role
  • 2858 - Tentacle upgrade now only blocks if there is a deployment running that affects the Tentacle being upgraded
  • 2861 - Steps that were manually skipped during a deployment will also be skipped during subsequent automatic deployments
  • 2862 - All steps applicable to a deployment target, based on roles, will be run during an automatic deployment, even if some of those roles do not form part of the trigger's event filter
  • 2863 - Run steps that are scoped to multiple roles during automatic deployments if the deployment target has any of those roles
  • 2864 - The deploy screen now shows a warning about the impact of manually skipping steps when the project has any auto-deploy triggers
  • 2865 - Temporarily removed auto-deploy trigger steps preview, which could be misleading in certain scenarios, and replaced it with a more accurate description and link to documentation
  • 2869 - When a step targets roles, but there are no matching machines available during package acquisition, the package will no longer be (mistakenly) downloaded to the Octopus Server

Changes in Octopus Server 3.4.14

  • 2789 - When downloading a package directly on the Tentacle, and the download fails, we now clean up the partially downloaded package file
  • 2797 - The package cache clean task now run on all nodes in an HA environment
  • 2823 - Show an info box that running a PowerShell script as part of Azure steps require PowerShell 3
  • 2839 - Improved the error messages shown when the new IIS Web Site/Application/Virtual Directory Step finds unexpected content in IIS
  • 2840 - Improved usability of the new IIS Web Site and Application Step
  • 2846 - Converting an existing physical directory to either a Virtual Directory or Web Application in IIS now works, just like it used to in the old Step Templates

Changes in Octopus Server 3.4.13

  • 2600 - When variable templates are converted from sensitive to insensitive and vice versa, any variables based on the templates will also be converted
  • 2645 - Accounts are now imported when using the Octopus migrator
  • 2792 - Ensure a release goes through the correct Lifecycle phases for a tenant, even if the release has progressed past a phase for another tenant
  • 2819 - Add support for tables and strikethrough where Markdown can be used
  • 2820 - Ensure package is downloaded on the Octopus server for steps that use a package and executes on the server
  • 2821 - Package push instructions are now shown if a user has BuiltInFeedPush and they are scoped to project(s) or environment(s)

Changes in Octopus Server 3.4.12

  • 2442 - Automatic release creation now works for step template package steps
  • 2498 - Queue a Tentacle upgrade task if there are currently deployments running on the Tentacle
  • 2619 - Added delete button to server nodes UI
  • 2634 - Improved data integrity of teams scoped to environments and/or tenants
  • 2714 - Correct Azure subscription written to the task log when multiple subscriptions exist
  • 2762 - Variable scope dropdown is now correctly positioned when opened when editing a variable far down a long list of variables
  • 2763 - Fail a deployment if a custom install directory has been specified but we can’t properly evaluate the path or it is a relative path
  • 2777 - Include project triggers when cloning a project
  • 2788 - The sysdiagrams table is now ignored by the system integrity check
  • 2790 - Fix releases and projects that reference channels irrelevant to the release or project
  • 2791 - Fixed an error that occured when performing JSON transforms with a value of null
  • 2794 - Packages used by package steps based on step templates now follow package retention rules when being considered for removal from the built-in NuGet feed
  • 2796 - The 2.6 to 3 importer now ignores orphaned attachments when mapping documents
  • 2799 - Fix number of retries for package download to match number of attempts shown in log
  • 2803 - Ensure releases are created in a channel appropriate for the project
  • 2806 - Migrator can now import LibraryVariableSets when the VariableSet has an Id longer than 50 characters
  • 2808 - Azure scripts no longer fail if the Octopus working directory has a space in it

Changes in Octopus Server 3.4.11

  • 2620 - Support passing array, object and secureObject type parameter values into ARM templates
  • 2655 - Package acquisition for upgraded Azure steps should now work again
  • 2746 - Increase the amount of time spent retrying downloads from external package feeds
  • 2764 - Only machines applicable to the deployment should be listed when selecting specific deployment targets
  • 2778 - Prevent disabled projects from causing automatic deployments
  • 2779 - Prevent variable that had ever been scoped to steps and then the scope removed from being deleted when the deployment process is saved
  • 2781 - Fixed import order so now deployments with missing channel don't block channels from being imported
  • 2782 - Ensure new polling Tentacles using a proxy make their server registration calls through the proxy

Changes in Octopus Server 3.4.10

  • 2669 - Tenant drop down variables from projects and library variable sets now properly displays the default value if one has been set
  • 2686 - When deploying using the Deploy to all (or the Deploy on an individual Tenant) option from the Project Overview only include the applicable Tenant(s)
  • 2748 - Replacing SQL triggers with code-based triggers (to help us track future deadlock issues)
  • 2760 - Fixed recursive variable definitions causing a stack overflow
  • 2766 - Include variables, scoped variables and all system variable in auto-complete drop-down
  • 2774 - Fixed Tentacles not correctly loading custom proxy settings

Changes in Octopus Server 3.4.9

  • 2684 - Restore missing variables in binding auto-complete list
  • 2749 - Apply health check cleanup per machine policy
  • 2751 - Fix child actions which run on the server on behalf of a role not running for all machines
  • 2757 - Fixed trigger concurrency exception when automatically deleting multiple machines

Changes in Octopus Server 3.4.8

  • 2608 - Set KeepAliveInterval to 30 sec on SSH connections to keep connection to server open during long uploads.
  • 2719 - Avoid reading and writing variables at the same time
  • 2743 - Project Group selector on the Dashboard now sorts alphanumerically
  • 2744 - Log exception stack trace when a deployment action fails
  • 2745 - Populate the variables Octopus.Action.Status.Error and Octopus.Action.Status.ErrorDetail when an action running in parallel fails
  • 2752 - Physical path of IIS Website can be set on OS with PowerShell v2

Changes in Octopus Server 3.4.7

  • 2699 - Exposed IIS and Windows Service functionality as separate built-in steps
  • 2700 - Added Virtual Directory support to Package Deployment step
  • 2704 - Allow scoping library variable set variables to tenant tags when multi-tenancy is enabled

Changes in Octopus Server 3.4.6

  • 2661 - Added machine scoping to output variables that are set by a step that runs on the server on behalf of targets
  • 2705 - Reduce log level of the high number of transaction message
  • 2712 - Now returning the correct HTTP headers when a 401 Unauthorised response is returned
  • 2717 - Channels on project overview is now sorted by default channel and then alphabetically
  • 2720 - Improved error message when pushing a package to the built in repository with a non-SemVer 2.0.0 compliant version
  • 2724 - Health Check Steps now require Target Roles to be specified

Changes in Octopus Server 3.4.5

  • 2685 - Tenanted deployments can now progress through lifecycle phases when the minimum environment phase requirement has been satisfied
  • 2692 - Removed tenant information from triggers when not applicable
  • 2695 - Cascade environment deletion to tenant connections, tenant variables and triggers
  • 2713 - Fixed chocolatey packages by adding checksum information to the chocolateyInstaller.ps1 file
  • 2715 - Prevent the addition of project variable templates from clearing related tenant variables in some circumstances

Changes in Octopus Server 3.4.4

  • 2674 - Prevent incorrect environments from displaying in trigger summary
  • 2677 - Added support to set a custom deployment label for Azure cloud service steps
  • 2681 - Resolved issue downloading package with SemVer 2.0 versions on Tentacle from file-system feeds
  • 2687 - Fixed FilePathTooLong exception when extracting NuGet packages where file names contain unicode characters
  • 2697 - Resolved error deploying packages with SemVer 2.0 versions from remote NuGet feeds

Changes in Octopus Server 3.4.3

  • 2676 - Fixed an error that prevented deploying a release when the user is part of a team with Tenant restrictions set
  • 2679 - NuGetPackageId variable will now be correctly populated for steps after the first deployment step.
  • 2689 - Octopus.Client returns PackageFromBuiltInFeedResource instead of PackageResource for operations involving the built-in package feed
  • 2690 - Resolved error executing script Script0043 - Increase Package Column Widths.sql during 3.4 upgrade.
  • 2691 - Reverted changes to Octopus.Client that caused manual intervention steps to fail if they were awaiting approval before upgrading to 3.4.2
  • 2642 - Prevent automatic deployments to tenanted targets when the tenant has been disconnected from the project or environment
  • 2643 - Prevent automatic deployments to tenanted or untenanted targets when a project is toggled to only tenanted or untenanted mode
  • 2664 - Resolved packages with different SemVer 2.0 metadata conflicting
  • 2665 - Reimplemented OctopusSuppressNestedScriptWarning variable
  • 2666 - Log a friendlier message if the health status of a machine is null when running our DB migrations
  • 2670 - Resolved issue downloading NuGet packages with 4-part versions from file-system feeds.

Changes in Octopus Server 3.4.1

  • 2372 - Automatic Release Creation settings will no longer be hidden if they have values
  • 2648 - Fixed an issue with VSTS/TFS creating releases
  • 2650 - Link to deployment triggers troubleshooting documentation is now more pronounced
  • 2652 - Update Step Template variables to use new generic package variable names
  • 2654 - Project triggers can be accessed with ProcessView and ProcessEdit permissions rather than ProjectEdit permissions
  • 2657 - Fixing edge case in auto-deploy regarding skipped deployment steps
  • 2658 - Ensure TenantView permission is given to all built-in project roles
  • 2659 - Tenants and TenantTags fields are now visible in the TeamCity plugin
  • 2660 - Fixed a bug which prevented editing Accounts if the multi-tenant deployments feature was not enabled

Changes in Octopus Server 3.4.0

  • 1963 - You can now manage tenants and tenanted deployments with Octopus Deploy
  • 2246 - Fixed issues around event table deadlocks
  • 2295 - Releases by channels are now shaded appropriately by channel on the project dashboard
  • 2367 - Octopus Server now requires a minimum .NET version of 4.5.1, to enable the SQL connection resiliency features in ADO.NET, Tentacles have not changed
  • 2401 - Warning we will deprecate Azure Targets in 3.4
  • 2419 - Octopus Server now returns 409 Conflict instead of 400 Bad Request when pushing duplicate package to the built-in package feed
  • 2422 - Upgrade to WebDeploy 3.6
  • 2428 - Upgrade NuGet libraries to 3.0
  • 2440 - Cloud Region target type
  • 2445 - You can now manage elastic and transient environments more easily with Octopus Deploy
  • 2479 - Improvements around SQL query plan caching
  • 2490 - Expanded proxy support to allow proxies in Tentacle communications
  • 2644 - Support for SSH connection through proxies
  • 2517 - Support SemVer 2.0
  • 2538 - ScriptCS scripts work now on Win 2012 R2 when FIPS is enabled, ScriptCS has been updated to version 0.16.1 which works only on Mono >= 4.0
  • 2549 - You can now write custom scripts using F# (.fsx)
  • 2565 - Update to Tentacle registration to account for new MachineResources changes
  • 2594 - Project overview dashboard filtering, grouping and empty state improvements
  • 2597 - Only download a package once on a machine when it is used multiple times
  • 2602 - Remove project permission restrictions on health checks for environments
  • 2609 - Updated Azure PowerShell modules to version 1.6.0
  • 2613 - [DeployedBy] field on [Deployment] set to non nullable and deployment will fail if instigating user is undefined

Changes in Octopus Server 3.4.0-beta0001

  • 1963 - You can now manage tenants and tenanted deployments with Octopus Deploy
  • 2246 - Fixed issues around event table deadlocks
  • 2422 - Upgrade to WebDeploy 3.6
  • 2440 - Cloud Region target type
  • 2445 - You can now manage elastic and transient environments more easily with Octopus Deploy
  • 2479 - Improved around SQL query plan caching
  • 2490 - Expanded proxy support to allow proxies in Tentacle communications
  • 2538 - ScriptCS scripts work now on Win 2012 R2 when FIPS is enabled, ScriptCS has been updated to version 0.16.1 which works only on Mono >= 4.0
  • 2565 - Update to Tentacle registration to account for new MachineResources changes

Changes in Octopus Server 3.3.27

  • 2623 - When performing variable substitution on a file, try to continue when a parse error occurs rather than not performing any substitutions
  • 2629 - Patching our SQL alias generator to use predictable strings instead of random strings