Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions docs-mslearn/toolkit/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: FinOps toolkit changelog
description: Review the latest features and enhancements in the FinOps toolkit, including updates to FinOps hubs, Power BI reports, and more.
author: MSBrett
ms.author: brettwil
ms.date: 03/03/2026
ms.date: 03/04/2026
ms.topic: reference
ms.service: finops
ms.subservice: finops-toolkit
Expand Down Expand Up @@ -35,6 +35,8 @@ The following section lists features and enhancements that are currently in deve

## v14

_Released March 2026_

### [Implementing FinOps guide](../implementing-finops-guide.md) v14

- **Fixed**
Expand Down Expand Up @@ -68,6 +70,13 @@ The following section lists features and enhancements that are currently in deve
- Fixed inverted verbose logging in [Start-FinOpsCostExport](powershell/cost-management/Start-FinOpsCostExport.md) that showed blank dates when a date range was specified.
- Addressed minor lint warnings across PowerShell commands.

<!-- prettier-ignore-start -->
> [!div class="nextstepaction"]
> [Download](https://github.com/microsoft/finops-toolkit/releases/tag/v14)
> [!div class="nextstepaction"]
> [Full changelog](https://github.com/microsoft/finops-toolkit/compare/v13...v14)
<!-- prettier-ignore-end -->

<br>

## v13 Update 1
Expand All @@ -92,7 +101,7 @@ This release is a minor patch to fix a bug in FinOps hub managed exports and the

## v13

_Released January 2026_
_Released January 31, 2026_

### [Implementing FinOps guide](../implementing-finops-guide.md) v13

Expand Down
2 changes: 1 addition & 1 deletion docs/_includes/ftktag.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v13
v14
2 changes: 1 addition & 1 deletion docs/_includes/ftkver.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
13.0
14.0-dev
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ftk",
"version": "13.0.0",
"version": "14.0.0-dev",
"description": "Starter kits, scripts, and advanced solutions to accelerate your FinOps journey in the Microsoft Cloud.",
"main": "index.js",
"directories": {
Expand Down
2 changes: 1 addition & 1 deletion src/optimization-engine/ftkver.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
13.0
14.0-dev
2 changes: 1 addition & 1 deletion src/powershell/Private/Get-VersionNumber.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
function Get-VersionNumber
{
param()
return '13.0'
return '14.0-dev'
}
4 changes: 2 additions & 2 deletions src/powershell/Tests/Integration/Toolkit.Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
Describe 'Get-FinOpsToolkitVersion' {
It 'Should return all known releases' {
# Arrange
$plannedRelease = '13'
$expected = @('12', '0.11', '0.10', '0.9', '0.8', '0.7', '0.6', '0.5', '0.4', '0.3', '0.2', '0.1.1', '0.1', '0.0.1')
$plannedRelease = '14'
$expected = @('13', '12', '0.11', '0.10', '0.9', '0.8', '0.7', '0.6', '0.5', '0.4', '0.3', '0.2', '0.1.1', '0.1', '0.0.1')

# Helper function to normalize version strings for [version] parsing
# Single-part versions like "12" need to become "12.0" for [version] to parse them
Expand Down
4 changes: 2 additions & 2 deletions src/scripts/Get-Version.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ $ver = (Get-Content (Join-Path $PSScriptRoot ../../package.json) | ConvertFrom-J

if ($AsTag)
{
return 'v' + ($ver -replace '\.0$', '')
return 'v' + (($ver -replace '-.*$', '') -replace '\.0$', '')
}

if ($AsDotNetVersion -and $ver.Contains('-'))
{
$arr = (($ver -replace '-[^\.0-9]+', '') -split '\.') + @(0, 0)
$arr[3] += 1000000000
return $arr[0..3] -Join '.'
return $arr[0..3] -join '.'
}

return $ver
85 changes: 85 additions & 0 deletions src/scripts/Update-Version.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,91 @@ if ($update -or $Version)
Write-Output " return '$ver'"
Write-Output "}"
} | Out-File "$PSScriptRoot/../PowerShell/Private/Get-VersionNumber.ps1" -Encoding ascii -Append:$false

# Release tag strips prerelease labels and trailing .0 (e.g., "14.0-dev" -> "v14")
$releaseTag = 'v' + (($ver -replace '-.*$', '') -replace '\.0$', '')

# Update changelog with new version section
Write-Verbose "Updating changelog..."
$changelogPath = Join-Path $repoRoot 'docs-mslearn/toolkit/changelog.md'
if (Test-Path $changelogPath)
{
$changelogLines = Get-Content $changelogPath
$anchorIndex = $changelogLines.IndexOf('<br><a name="latest"></a>')
if ($anchorIndex -ge 0)
{
# Find the first ## v heading after the anchor to get the previous version tag
$prevTag = 'v0.0.1'
for ($i = $anchorIndex + 1; $i -lt $changelogLines.Count; $i++)
{
if ($changelogLines[$i] -match '^## (v\S+)')
{
$prevTag = $Matches[1]
break
}
}

# Skip if this version section already exists
if ($prevTag -eq $releaseTag)
{
Write-Verbose "- Changelog already has $releaseTag section"
}
else
{
$releaseDate = (Get-Date).AddMonths(1).ToString('MMMM yyyy')
$newSection = @(
''
"## $releaseTag"
''
"_Released ${releaseDate}_"
''
'<!-- prettier-ignore-start -->'
'> [!div class="nextstepaction"]'
"> [Download](https://github.com/microsoft/finops-toolkit/releases/tag/$releaseTag)"
'> [!div class="nextstepaction"]'
"> [Full changelog](https://github.com/microsoft/finops-toolkit/compare/$prevTag...$releaseTag)"
'<!-- prettier-ignore-end -->'
''
'<br>'
)
Comment thread
flanakin marked this conversation as resolved.

$changelogLines = $changelogLines[0..$anchorIndex] + $newSection + $changelogLines[($anchorIndex + 1)..($changelogLines.Count - 1)]
$changelogLines | Out-File $changelogPath -Encoding utf8
Write-Verbose "- Added $releaseTag section to changelog"
}
}
}

# Update integration test version variables
Write-Verbose "Updating integration test versions..."
$testPath = Join-Path $repoRoot 'src/powershell/Tests/Integration/Toolkit.Tests.ps1'
if (Test-Path $testPath)
{
$testContent = Get-Content $testPath -Raw
$releaseTagName = $releaseTag.TrimStart('v')

# Extract current planned release and skip if already up to date
if ($testContent -match '\$plannedRelease = ''([^'']+)''')
{
$oldPlanned = $Matches[1]

if ($oldPlanned -eq $releaseTagName)
{
Write-Verbose "- Integration test already has planned release '$releaseTagName'"
}
else
{
# Update $plannedRelease to the new version
$testContent = $testContent -replace '\$plannedRelease = ''[^'']+''', ('$plannedRelease = ''{0}''' -f $releaseTagName)

# Prepend old planned release to $expected array
$testContent = $testContent -replace '\$expected = @\(', ('$expected = @(''{0}'', ' -f $oldPlanned)

$testContent | Out-File $testPath -NoNewline -Encoding utf8
Write-Verbose "- Updated planned release from '$oldPlanned' to '$releaseTagName'"
}
}
}
}

return $ver
2 changes: 1 addition & 1 deletion src/templates/finops-alerts/modules/ftkver.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
13.0
14.0-dev
2 changes: 1 addition & 1 deletion src/templates/finops-hub/modules/fx/ftktag.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v13
v14
2 changes: 1 addition & 1 deletion src/templates/finops-hub/modules/fx/ftkver.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
13.0
14.0-dev
2 changes: 1 addition & 1 deletion src/templates/finops-workbooks/ftkver.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
13.0
14.0-dev
2 changes: 1 addition & 1 deletion src/workbooks/.scaffold/ftkver.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
13.0
14.0-dev
Loading