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
9 changes: 4 additions & 5 deletions .codex/scripts/bump-version.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,12 @@ function Update-Changelog {

$Text = Get-Content -Raw -Path $Path

$VersionHeadingPattern = '(?m)^`' + [regex]::Escape($Version) + '`$'
$VersionHeadingPattern = '(?m)^## v' + [regex]::Escape($Version) + '$'
if ($Text -match $VersionHeadingPattern) {
throw "CHANGELOG.md already contains a $Version entry."
throw "CHANGELOG.md already contains a v$Version entry."
}

$UnreleasedPattern = '(?ms)^## Unreleased\s*(?<body>.*?)(?=^`[^`]+`\s*$|^## |\z)'
$UnreleasedPattern = '(?ms)^## Unreleased\s*(?<body>.*?)(?=^## |\z)'
$Match = [regex]::Match($Text, $UnreleasedPattern)
if (-not $Match.Success) {
throw "CHANGELOG.md must contain an '## Unreleased' section before bumping."
Expand All @@ -82,8 +82,7 @@ function Update-Changelog {
}

$ReleasedBody = if ([string]::IsNullOrWhiteSpace($Body)) { "- No user-facing changes recorded." } else { $Body }
$VersionHeading = '`' + $Version + '`'
$Replacement = "## Unreleased`r`n`r`n$VersionHeading`r`n$ReleasedBody`r`n`r`n"
$Replacement = "## Unreleased`r`n`r`n## v$Version`r`n`r`n$ReleasedBody`r`n`r`n"
$Updated = $Text.Substring(0, $Match.Index) + $Replacement + $Text.Substring($Match.Index + $Match.Length)
Set-TextPreservingUtf8Bom -Path $Path -Value $Updated
}
Expand Down
8 changes: 4 additions & 4 deletions .codex/scripts/prerelease-notes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ fi
unreleased_body=$(
awk '
/^##[[:space:]]*Unreleased[[:space:]]*$/ { in_unreleased = 1; next }
in_unreleased && (/^`[^`]+`[[:space:]]*$/ || /^## /) { exit }
in_unreleased && /^## / { exit }
in_unreleased { print }
' "$CHANGELOG_PATH"
)
Expand All @@ -108,8 +108,8 @@ fi

version_body=$(
awk -v version="$VERSION" '
$0 == "`" version "`" { in_version = 1; next }
in_version && (/^`[^`]+`[[:space:]]*$/ || /^## /) { exit }
$0 == "## v" version { in_version = 1; next }
in_version && /^## / { exit }
in_version { print }
' "$CHANGELOG_PATH"
)
Expand Down Expand Up @@ -156,7 +156,7 @@ ${handoff_heading}

| Signal | Detail |
| --- | --- |
| 📝 Changelog | \`## Unreleased\` is empty; notes below come from \`${VERSION}\`. |
| 📝 Changelog | \`## Unreleased\` is empty; notes below come from \`v${VERSION}\`. |
| 🌿 Branch | \`${BRANCH}\` |
| 🔖 Commit | \`${short_commit}\` |
| ▶️ Run | ${run_detail} |
Expand Down
23 changes: 18 additions & 5 deletions .codex/scripts/prerelease-notes.tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,17 @@ function Test-PrereleaseNotesIncludesChangelogAndDetailsCard {
$ChangelogPath = Join-Path $FixtureRoot "CHANGELOG.md"
$OutputPath = Join-Path $FixtureRoot "prerelease-notes.md"
Set-Content -Path $ChangelogPath -Value @'
# Changelog

## Unreleased

`1.2.3`
## v1.2.3

- fixed the client widget timing
- added a runtime receipt

`1.2.2`
## v1.2.2

- previous release
'@

Expand Down Expand Up @@ -101,10 +105,13 @@ function Test-PrereleaseNotesRejectsUnreleasedContent {
try {
$ChangelogPath = Join-Path $FixtureRoot "CHANGELOG.md"
Set-Content -Path $ChangelogPath -Value @'
# Changelog

## Unreleased
- still parked for the next release

`1.2.3`
## v1.2.3

- fixed the client widget timing
'@

Expand All @@ -128,7 +135,10 @@ function Test-PrereleaseNotesRejectsMissingUnreleasedHeader {
try {
$ChangelogPath = Join-Path $FixtureRoot "CHANGELOG.md"
Set-Content -Path $ChangelogPath -Value @'
`1.2.3`
# Changelog

## v1.2.3

- fixed the client widget timing
'@

Expand All @@ -152,9 +162,12 @@ function Test-PrereleaseNotesRejectsMissingVersionEntry {
try {
$ChangelogPath = Join-Path $FixtureRoot "CHANGELOG.md"
Set-Content -Path $ChangelogPath -Value @'
# Changelog

## Unreleased

`1.2.2`
## v1.2.2

- previous release
'@

Expand Down
7 changes: 5 additions & 2 deletions .codex/scripts/release-hygiene.tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,14 @@ versionNumber = "1.2.3"
"@ -NoNewline

Set-Content -Path (Join-Path $FixtureRoot "CHANGELOG.md") -Value @"
# Changelog

## Unreleased

- planned fix

`1.2.3`
## v1.2.3

- previous release
"@ -NoNewline

Expand Down Expand Up @@ -112,7 +115,7 @@ function Test-BumpVersionUpdatesEclipseMetadata {

Assert-Match -Text $ProjectText -Pattern '<Version>1\.2\.4</Version>' -Message "Project version was not updated."
Assert-Match -Text $ThunderstoreText -Pattern 'versionNumber = "1\.2\.4"' -Message "Thunderstore version was not updated."
Assert-Match -Text $ChangelogText -Pattern '(?m)^## Unreleased\s+`1\.2\.4`\s+- planned fix' -Message "Changelog release entry was not created."
Assert-Match -Text $ChangelogText -Pattern '(?m)^## Unreleased\s+## v1\.2\.4\s+- planned fix' -Message "Changelog release entry was not created."
}
finally {
Remove-Item -LiteralPath $FixtureRoot -Recurse -Force
Expand Down
2 changes: 1 addition & 1 deletion .codex/scripts/release-nudge.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ function Write-Nudge {

function Get-UnreleasedBody {
$Text = Get-Content -Raw -Path $ChangelogPath
$Match = [regex]::Match($Text, '(?ms)^## Unreleased\s*(?<body>.*?)(?=^`[^`]+`\s*$|^## |\z)')
$Match = [regex]::Match($Text, '(?ms)^## Unreleased\s*(?<body>.*?)(?=^## |\z)')

if (-not $Match.Success) {
return $null
Expand Down
3 changes: 1 addition & 2 deletions .codex/scripts/version-metadata.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ read_thunderstore_version() {

read_latest_changelog_entry() {
local entry
# sed needs literal backticks to match the repo's changelog header format.
entry=$(sed -n '/^`[^`][^`]*`$/ { s/^`//; s/`$//; p; q; }' "$CHANGELOG_PATH" | tr -d '\r')
entry=$(sed -n 's/^## v\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$/\1/p' "$CHANGELOG_PATH" | head -n 1 | tr -d '\r')

if [ -z "$entry" ]; then
fail "Unable to determine the latest CHANGELOG entry from $CHANGELOG_PATH."
Expand Down
80 changes: 54 additions & 26 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,99 +1,127 @@
# Changelog

## Unreleased

`1.3.17`
## v1.3.17

- added prerelease note generation and changelog turnover validation for GitHub and Thunderstore release flows

`1.3.16`
## v1.3.16

- hardened attribute UI initialization so runtime-loaded clients defer when the inventory attribute hierarchy is not ready
- collapsed Emberglass bridge progress receipts to one client log line per config/progress batch

`1.3.15`
## v1.3.15

- added release hygiene helper scripts for changelog/version bump review and metadata updates
- added CI coverage for the release hygiene nudge before build verification

`1.3.14`
## v1.3.14

- optional Emberglass bridge support for Bloodcraft registration and server messages
- release workflow hardening for safer prerelease and Thunderstore publishing

`1.3.13`
## v1.3.13

- primal weapons

`1.3.12`
## v1.3.12

- attributes

`1.3.11`
## v1.3.11

- decreased update interval for more responsive UI elements (1s -> 0.1s), added config option if you prefer the old behavior; for noticeable effect requires Bloodcraft v1.11.14 or higher with fast updates enabled (Eclipsed = true)

`1.3.10`
## v1.3.10

- gamepad mode (position of quest windows and profession bars will change based on detected input)
- ability slot click-toggle for profession bars functional again

`1.3.9`
## v1.3.9

- preventing duplicate coroutine instances from being created if one is already present

`1.3.8`
## v1.3.8

- removing interact progress bar when unlocking familiars from buff entity on client
- changed abbreviation for PrimaryLifeLeech to PAL

`1.3.7`
## v1.3.7

- adjusted name trimming to target only vBloods for fam bar/quest targets
- handling for movementSpeed to show correctly on expertise bar and weapon tooltips

`1.3.6`
## v1.3.6

- small fix for legacy bar errors in console
- weapon expertise stats (most, not all) appear on tooltips

`1.3.5`
## v1.3.5

- Updated for VRising 1.1 compatibility

`1.3.3`
## v1.3.3

- small changes to accomodate minor version increases without needing to add more boilerplate logic to client/server
- minor recipe adjustments to match server-side changes for the client visually

`1.3.2`
## v1.3.2

- backwards compatible with Bloodcraft 1.5.3 (will show NPC spell cooldown's on shift when using 1.6.4 #soonYM, other changes below do not require additional information from Bloodcraft)
- weapon expertise stats show on tooltips accordingly (not all stats will show there for some reason but works for most)
- new recipe/salvage additions and changes added in 1.6.4 with ExtraRecipes enabled are best experienced with Eclipse
- profession bars no longer an eyesore (thin gold bar represents progress to max level, icon indicates profession, reordered to crafting profs then gathering profs)

`1.2.2`
## v1.2.2

- added bar for basic familiar info
- added bargraph of sorts for professions
- can toggle individual parts by clicking on ability slots 1-7

`1.1.2`
## v1.1.2

- removed unneeded dependency like I meant to for 1.1.1, oopsie

`1.1.1`
## v1.1.1

- class text under experience bar formatted more aesthetically
- improved positioning for UI elements at various resolutions (probably >_>)

`1.0.0`
## v1.0.0

- versioning for Thunderstore/sanity
- requires Bloodcraft 1.4.0

`0.2.1`
## v0.2.1

- fixed loop update if more than 3 bonus stats were chosen
- added quest icons for crafting and gathering

`0.2.0`
## v0.2.0

- added icons for quests based on normal/vblood target
- handled displaying stats in different locales

`0.1.4`
## v0.1.4

- making an attempt at handling scaling for UI elements at various resolutions, will need feedback on this although seems decent so far

`0.1.3`
## v0.1.3

- changed click detection to work off the same blood object that shows blood information when hovered over (this should fix any issues with errant clicks as if the blood object is not present it cannot be interacted with)
- quests should reliably be on the bottom right of the screen now

`0.1.2`
## v0.1.2

- clicking blood orb area if UI not active in-game will not do anything

`0.1.1`
## v0.1.1

- fixed extra bar at top of screen if only experience is enabled

`0.1.0`
## v0.1.0

- initial test release
- config values for experience, prestige, legacy, expertise, and quests (should be okay to mix and match but probably works best with all atm)
- progress bars for experience, legacies, expertise with bonus stats displayed beneath and prestige in bar header if enabled with current level on the left
Expand Down
Loading