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
109 changes: 78 additions & 31 deletions .build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ $src_path = './pode_modules'

$Versions = @{
MkDocs = '1.6.1'
MkDocsTheme = '9.7.1'
Mike = '2.1.3'
MkDocsTheme = '9.7.6'
Mike = '2.2.0'
PlatyPS = '0.14.2'
}

Expand Down Expand Up @@ -399,14 +399,29 @@ task ReleaseNotes {

foreach ($pr in $prs) {
$labels = @($pr.labels.name)

# skip PRs with certain labels
if ($labels -icontains 'superseded' -or
$labels -icontains 'new-release' -or
$labels -icontains 'internal-code :hammer:' -or
$labels -icontains 'exclude-from-release-notes') {
continue
}

$label = ($pr.labels[0].name -split ' ')[0]
# filter out labels that are not relevant
$label = @(foreach ($label in $labels) {
if ($label -imatch '^(story|priority)') {
continue
}

if ($label -inotmatch '\s\:') {
continue
}

($label -split ' ', 2)[0]
break
})[0]

if ([string]::IsNullOrWhiteSpace($label)) {
$label = 'misc'
}
Expand All @@ -421,47 +436,75 @@ task ReleaseNotes {
$categories[$label] = @()
}

if ($pr.author.login -ilike '*dependabot*') {
if ($pr.title -imatch 'Bump (?<name>\S+) from (?<from>[0-9\.]+) to (?<to>[0-9\.]+)') {
if (!$dependabot.ContainsKey($Matches['name'])) {
$dependabot[$Matches['name']] = @{
Name = $Matches['name']
# split titles on ; to handle multiple changes in one PR
$titles = @($pr.title).Trim()
if ($pr.title.Contains(';')) {
$titles = ($pr.title -split ';').Trim()
}

# only include the author if it's not badgerati or dependabot
$author = $null
if (($pr.author.login -ine 'badgerati') -and ($pr.author.login -inotlike '*dependabot*')) {
$author = "@$($pr.author.login)"
}

# format the string for the PR, and add it to the relevant category/categories
foreach ($title in $titles) {
# handle package version bump PRs separately to aggregate them by package name, and get the from/to versions
if ($title -imatch 'Bump (?<name>\S+) from (?<from>[0-9\.]+) to (?<to>[0-9\.]+)') {
# get the parts of the PR title
$pkgName = $Matches['name']
$fromStr = $Matches['from']
$toStr = $Matches['to']

# ensure 'from' version has 3 parts
if ($fromStr -imatch '^\d+$') {
$fromStr += '.0.0'
}
$from = [version]$fromStr

# ensure 'to' version has 3 parts
if ($toStr -imatch '^\d+$') {
$toStr += '.0.0'
}
$to = [version]$toStr

if (!$dependabot.ContainsKey($pkgName)) {
$dependabot[$pkgName] = @{
Name = $pkgName
Number = $pr.number
From = [version]$Matches['from']
To = [version]$Matches['to']
From = $from
To = $to
Author = @()
}

if ($author) {
$dependabot[$pkgName].Author += $author
}
}
else {
$item = $dependabot[$Matches['name']]
$item = $dependabot[$pkgName]
if ([int]$pr.number -gt [int]$item.Number) {
$item.Number = $pr.number
}
if ([version]$Matches['from'] -lt $item.From) {
$item.From = [version]$Matches['from']
if ($from -lt $item.From) {
$item.From = $from
}
if ([version]$Matches['to'] -gt $item.To) {
$item.To = [version]$Matches['to']
if ($to -gt $item.To) {
$item.To = $to
}
if ($author -and ($author -notin $item.Author)) {
$item.Author += $author
}
}

continue
}
}

$titles = @($pr.title)
if ($pr.title.Contains(';')) {
$titles = ($pr.title -split ';').Trim()
}

$author = $null
if (($pr.author.login -ine 'badgerati') -and ($pr.author.login -inotlike '*dependabot*')) {
$author = $pr.author.login
}

foreach ($title in $titles) {
$str = "* #$($pr.number): $($title)"
# handle normal PRs
$str = "* #$($pr.number): $($title -replace '`', "'")"
if (![string]::IsNullOrWhiteSpace($author)) {
$str += " (thanks @$($author)!)"
$str += " (thanks $author!)"
}

if ($str -imatch '\s+(docs|documentation)\s+') {
Expand All @@ -475,13 +518,17 @@ task ReleaseNotes {

# add dependabot aggregated PRs
if ($dependabot.Count -gt 0) {
$label = 'dependencies'
$label = 'Packaging'
if (!$categories.Contains($label)) {
$categories[$label] = @()
}

foreach ($dep in $dependabot.Values) {
$categories[$label] += "* #$($dep.Number): Bump $($dep.Name) from $($dep.From) to $($dep.To)"
$str = "* #$($dep.Number): Bump $($dep.Name) from $($dep.From) to $($dep.To)"
if ($dep.Author.Count -gt 0) {
$str += " (thanks $($dep.Author -join ', ')!)"
}
$categories[$label] += $str
}
}

Expand Down
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
labels:
- "packaging :package:"

- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
labels:
- "packaging :package:"
2 changes: 1 addition & 1 deletion .github/workflows/ci-pwsh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ on:
- 'package.json'

env:
INVOKE_BUILD_VERSION: '5.12.0'
INVOKE_BUILD_VERSION: '5.14.23'

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM badgerati/pode:2.12.1
FROM badgerati/pode:2.13.2
LABEL maintainer="Matthew Kelly (Badgerati)"
RUN mkdir -p /usr/local/share/powershell/Modules/Pode.Web
COPY ./src/ /usr/local/share/powershell/Modules/Pode.Web
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) [2020-2025] [Matthew Kelly (Badgerati)]
Copyright (c) [2020-2026] [Matthew Kelly (Badgerati)]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- omit in toc -->
# <img src="https://github.com/Badgerati/Pode/blob/develop/images/icon.png?raw=true" width="25" /> Pode.Web

> This is the develop branch for Pode.Web v1.0.0, which is currently dependant on Pode v2.12.1. If you want the latest released Pode.Web code (v0.8.3), please view the master branch instead.
> This is the develop branch for Pode.Web v1.0.0, which is currently dependant on Pode v2.13.2. If you want the latest released Pode.Web code (v0.8.3), please view the master branch instead.

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Badgerati/Pode.Web/master/LICENSE.txt)
[![Documentation](https://img.shields.io/github/v/release/badgerati/pode.web?label=docs)](https://badgerati.github.io/Pode.Web)
Expand All @@ -25,7 +25,7 @@
- [🔥 Quick Example](#-quick-example)
- [🌎 Roadmap](#-roadmap)

This is a web template framework for use with the [Pode](https://github.com/Badgerati/Pode) PowerShell web server (v2.12.1+).
This is a web template framework for use with the [Pode](https://github.com/Badgerati/Pode) PowerShell web server (v2.13.2+).

It allows you to build web pages purely with PowerShell - no HTML, CSS, or JavaScript knowledge is required!

Expand Down
2 changes: 1 addition & 1 deletion alpine.dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM badgerati/pode:2.12.1-alpine
FROM badgerati/pode:2.13.2-alpine
LABEL maintainer="Matthew Kelly (Badgerati)"
RUN mkdir -p /usr/local/share/powershell/Modules/Pode.Web
COPY ./src/ /usr/local/share/powershell/Modules/Pode.Web
2 changes: 1 addition & 1 deletion arm32.dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM badgerati/pode:2.12.1-arm32
FROM badgerati/pode:2.13.2-arm32
LABEL maintainer="Matthew Kelly (Badgerati)"
RUN mkdir -p /usr/local/share/powershell/Modules/Pode.Web
COPY ./src/ /usr/local/share/powershell/Modules/Pode.Web
4 changes: 2 additions & 2 deletions docs/Getting-Started/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Pode.Web is a PowerShell module that works along side [Pode](https://github.com/

Before installing Pode.Web, the minimum requirements must be met:

* [Pode](https://github.com/Badgerati/Pode) v2.12.1+
* [Pode](https://github.com/Badgerati/Pode) v2.13.2+

Which also includes Pode's minimum requirements:
* OS:
Expand Down Expand Up @@ -34,7 +34,7 @@ Install-Module -Name Pode.Web
[![Docker](https://img.shields.io/docker/stars/badgerati/pode.web.svg?label=Stars)](https://hub.docker.com/r/badgerati/pode.web/)
[![Docker](https://img.shields.io/docker/pulls/badgerati/pode.web.svg?label=Pulls)](https://hub.docker.com/r/badgerati/pode.web/)

Like Pode, Pode.Web also has Docker images available. The images use Pode v2.12.1 on either an Ubuntu Focal image (default), an Alpine image, or an ARM32 image (for Raspberry Pis).
Like Pode, Pode.Web also has Docker images available. The images use Pode v2.13.2 on either an Ubuntu Focal image (default), an Alpine image, or an ARM32 image (for Raspberry Pis).

* To pull down the latest Pode.Web image you can do:

Expand Down
4 changes: 2 additions & 2 deletions docs/Hosting/Docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Pode.Web has a Docker image that you can use to host your server, for instructions on pulling these images you can [look here](../../Getting-Started/Installation).

The images use Pode v2.12.1 on either an Ubuntu Focal (default), Alpine, or ARM32 image.
The images use Pode v2.13.2 on either an Ubuntu Focal (default), Alpine, or ARM32 image.

## Images

Expand All @@ -11,7 +11,7 @@ The images use Pode v2.12.1 on either an Ubuntu Focal (default), Alpine, or ARM3

### Default

The default Pode.Web image is an Ubuntu Focal image with Pode v2.12.1 and Pode.Web installed. An example of using this image in your Dockerfile could be as follows:
The default Pode.Web image is an Ubuntu Focal image with Pode v2.13.2 and Pode.Web installed. An example of using this image in your Dockerfile could be as follows:

```dockerfile
# pull down the pode image
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

> 💝 A lot of my free time, evenings, and weekends goes into making Pode happen; please do consider sponsoring as it will really help! 😊

This is a web template framework for use with the [Pode](https://github.com/Badgerati/Pode) PowerShell web server (v2.12.1+).
This is a web template framework for use with the [Pode](https://github.com/Badgerati/Pode) PowerShell web server (v2.13.2+).

It allows you to build web pages purely with PowerShell - no HTML, CSS, or JavaScript knowledge is required!

Expand Down
4 changes: 2 additions & 2 deletions src/Pode.Web.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
Author = 'Matthew Kelly (Badgerati)'

# Copyright statement for this module
Copyright = 'Copyright (c) 2020-2025 Matthew Kelly (Badgerati), licensed under the MIT License.'
Copyright = 'Copyright (c) 2020-2026 Matthew Kelly (Badgerati), licensed under the MIT License.'

# Description of the functionality provided by this module
Description = 'Web template framework for the Pode PowerShell web server'
Expand All @@ -31,7 +31,7 @@
RequiredModules = @(
@{
ModuleName = 'Pode'
ModuleVersion = '2.12.1'
ModuleVersion = '2.13.2'
Guid = 'e3ea217c-fc3d-406b-95d5-4304ab06c6af'
}
)
Expand Down
Loading