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
- Breaking change: The property
Octopus.Action.Package.NuGetFeedId on deployment steps has been changed to
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
TaskDetailsResource has been renamed to
- Breaking change: The logic for
Octopus.Client has moved to
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
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
CalamariUpgrade that were previously overloading the
MachineResource.Status property should now be determined by the pre-existing
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.
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.
Changes in Octopus 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