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
52 changes: 52 additions & 0 deletions .config/mise/tasks/release-metadata/check
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/sh
#MISE description="Verify synchronized server release metadata"

set -eu

root=$(CDPATH='' cd -- "$(dirname -- "$0")/../../../.." && pwd)
manifest="$root/.release-please-manifest.json"
config="$root/release-please-config.json"
props="$root/src/Directory.Build.props"
runtime_properties="$root/src/EventStore.Common/Utils/version.properties"

manifest_version=$(jq -er '."."' "$manifest")
file_version=$(tr -d '\r\n' <"$root/version.txt")
props_version=$(sed -n 's:.*<VersionPrefix>\([^<]*\)</VersionPrefix>.*:\1:p' "$props")
props_suffix=$(sed -n 's:.*<VersionSuffix>\([^<]*\)</VersionSuffix>.*:\1:p' "$props")
runtime_suffix=$(sed -n 's/^version_suffix=//p' "$runtime_properties")
bootstrap_sha=$(jq -er '."bootstrap-sha"' "$config")

if ! printf '%s\n' "$manifest_version" | grep -Eq '^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$'; then
echo "The release manifest must contain a stable semantic version." >&2
exit 1
fi

if [ "$manifest_version" != "$file_version" ] || [ "$manifest_version" != "$props_version" ]; then
echo "Release versions must match across the manifest, version.txt, and Directory.Build.props." >&2
exit 1
fi

if ! grep -Eq '<VersionSuffix([[:space:]]*/>|></VersionSuffix>)' "$props" ||
! grep -q '^version_suffix=$' "$runtime_properties" ||
[ -n "$props_suffix" ] || [ -n "$runtime_suffix" ]; then
echo "Stable release metadata cannot carry a prerelease suffix." >&2
exit 1
fi

if ! printf '%s\n' "$bootstrap_sha" | grep -Eq '^[0-9a-f]{40}$'; then
echo "The release bootstrap must be a full lowercase commit SHA." >&2
exit 1
fi

git -C "$root" cat-file -e "$bootstrap_sha^{commit}"
Comment thread
coderabbitai[bot] marked this conversation as resolved.

jq -e '
.packages["."]."release-type" == "simple" and
.packages["."]."include-component-in-tag" == false and
.packages["."]."include-v-in-tag" == true and
.packages["."]."include-v-in-release-name" == false and
any(.packages["."]."extra-files"[];
.type == "xml" and
.path == "src/Directory.Build.props" and
.xpath == "//VersionPrefix")
' "$config" >/dev/null
24 changes: 2 additions & 22 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,22 +1,2 @@
# Each line is a file pattern followed by one or more owners.

# database-mergers team is the default owner for everything in
# the repo. Unless a later match takes precedence.
* @EventStore/database-mergers

# documentation and database-mergers teams own any files in the 'docs'
# directory at the root of the repository and any of its
# subdirectories.
/docs/ @EventStore/documentation @EventStore/database-mergers

# documentation and database-mergers teams own any markdown files
# in the root of the repository (README, CONTRIBUTING, LICENSING, etc.)
# Either team will be able to approve PRs changing these files.
/*.md @EventStore/documentation @EventStore/database-mergers

# eventstore-admin team owns the codeowners file to prevent
# unauthorized changes to it.
/.github/CODEOWNERS @EventStore/eventstore-admin

# protected because it contains license rules
/qodana.yaml @EventStore/eventstore-admin
# Review ownership belongs to human maintainers rather than individual or automation accounts.
* @TrogonStack/trogon-eventstore-maintainers
23 changes: 15 additions & 8 deletions .github/workflows/build-container-ubuntu-lts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ name: Ubuntu LTS Container

on:
pull_request:
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"
merge_group:
types:
- checks_requested
Expand All @@ -15,10 +11,6 @@ on:
- release/v*
tags:
- v*
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down Expand Up @@ -142,3 +134,18 @@ jobs:
with:
image-artifact-name: eventstore-image-noble-linux-x64
secrets: inherit

required:
name: Container CI
if: ${{ always() }}
needs:
- build-images
- test
- client-compatibility
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Require successful jobs
env:
REQUIRED_JOBS: ${{ toJSON(needs) }}
run: jq -e 'all(.[]; .result == "success")' <<< "$REQUIRED_JOBS"
21 changes: 13 additions & 8 deletions .github/workflows/build-ubuntu-lts-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ name: Ubuntu LTS ARM64

on:
pull_request:
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"
merge_group:
types:
- checks_requested
Expand All @@ -15,10 +11,6 @@ on:
- release/v*
tags:
- v*
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -32,3 +24,16 @@ jobs:
os: ubuntu-24.04-arm
arch: arm64
secrets: inherit

required:
name: ARM64 CI
if: ${{ always() }}
needs:
- build
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Require successful jobs
env:
REQUIRED_JOBS: ${{ toJSON(needs) }}
run: jq -e 'all(.[]; .result == "success")' <<< "$REQUIRED_JOBS"
21 changes: 13 additions & 8 deletions .github/workflows/build-ubuntu-lts-x64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ name: Ubuntu LTS X64

on:
pull_request:
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"
merge_group:
types:
- checks_requested
Expand All @@ -15,10 +11,6 @@ on:
- release/v*
tags:
- v*
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"

jobs:
build:
Expand All @@ -28,3 +20,16 @@ jobs:
os: ubuntu-24.04
arch: x64
secrets: inherit

required:
name: X64 CI
if: ${{ always() }}
needs:
- build
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Require successful jobs
env:
REQUIRED_JOBS: ${{ toJSON(needs) }}
run: jq -e 'all(.[]; .result == "success")' <<< "$REQUIRED_JOBS"
45 changes: 37 additions & 8 deletions .github/workflows/common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@ name: Common

on:
pull_request:
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"
merge_group:
types:
- checks_requested
Expand All @@ -16,10 +12,6 @@ on:
- release/v*
tags:
- v*
paths-ignore:
- "docs/**"
- "samples/**"
- "**.md"

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down Expand Up @@ -130,6 +122,24 @@ jobs:
run: |
./protolock.sh status --uptodate

release-metadata:
runs-on: ubuntu-latest
name: Release Metadata
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
persist-credentials: false
- name: Install task runner
uses: jdx/mise-action@v4.3.0
with:
version: 2026.8.2
install: false
cache: false
- name: Verify release metadata
run: mise run --skip-tools release-metadata:check

archive-storage-contract:
runs-on: ubuntu-latest
name: Archive Storage Contract
Expand Down Expand Up @@ -224,3 +234,22 @@ jobs:
DOCKER_BUILDKIT: 1
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mise run --skip-tools github-actions:docker-compose-smoke

required:
name: Common CI
if: ${{ always() }}
needs:
- semantic-conventions
- csharp-quality
- vulnerability-scan
- protolock
- release-metadata
- archive-storage-contract
- docker-compose
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Require successful jobs
env:
REQUIRED_JOBS: ${{ toJSON(needs) }}
run: jq -e 'all(.[]; .result == "success")' <<< "$REQUIRED_JOBS"
25 changes: 25 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Release Please

on:
push:
branches:
- master
workflow_dispatch:

permissions:
contents: write
issues: write
pull-requests: write

jobs:
release-please:
name: Release Please
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Create release pull request or release
uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
with:
token: ${{ secrets.GH_PAT_RELEASE_PLEASE_ACTION }}
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "0.0.1"
}
26 changes: 26 additions & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"bootstrap-sha": "10b210b00594fb80a99730991a91b29699094e44",
"group-pull-request-title-pattern": "chore${scope}: release${component} ${version}",
"signoff": "SHT Bot <61149376+sht-bot@users.noreply.github.com>",
"packages": {
".": {
"release-type": "simple",
"package-name": "TrogonEventStore",
"component": "TrogonEventStore",
"include-component-in-tag": false,
"include-v-in-tag": true,
"include-v-in-release-name": false,
"pull-request-title-pattern": "chore${scope}: release${component} ${version}",
"bump-minor-pre-major": false,
"bump-patch-for-minor-pre-major": false,
"extra-files": [
{
"type": "xml",
"path": "src/Directory.Build.props",
"xpath": "//VersionPrefix"
}
]
}
}
}
19 changes: 11 additions & 8 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,26 @@
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<DebugType Condition=" '$(Configuration)' == 'Debug' ">full</DebugType>
<DebugType Condition=" '$(Configuration)' == 'Release' ">pdbonly</DebugType>
<Authors>Event Store Ltd</Authors>
<PackageIconUrl>ouro.png</PackageIconUrl>
<Authors>Straw Hat, LLC</Authors>
<Company>Straw Hat, LLC</Company>
<PackageIcon>trogon-logo.png</PackageIcon>
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
<PackageProjectUrl>https://eventstore.com</PackageProjectUrl>
<PackageProjectUrl>https://github.com/TrogonStack/TrogonEventStore</PackageProjectUrl>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<Copyright>Copyright 2012-2024 Event Store Ltd</Copyright>
<PackageReleaseNotes>https://eventstore.com/blog/</PackageReleaseNotes>
<Copyright>Copyright 2011-2024, Event Store Ltd; Copyright 2025-2026, Straw Hat, LLC</Copyright>
<PackageReleaseNotes>https://github.com/TrogonStack/TrogonEventStore/releases</PackageReleaseNotes>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/TrogonStack/TrogonEventStore</RepositoryUrl>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>14.0</LangVersion>
<Platforms>AnyCPU;x64;ARM64</Platforms>
<IsPackable>false</IsPackable>
<VersionPrefix>24.10.0</VersionPrefix>
<VersionSuffix>prerelease</VersionSuffix>
<VersionPrefix>0.0.1</VersionPrefix>
<VersionSuffix></VersionSuffix>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\LICENSE.md" Pack="true" PackagePath="\" />
<None Include="..\..\NOTICE.html" Pack="true" PackagePath="\" />
<None Include="..\..\ouro.png" Pack="true" PackagePath="\" />
<None Include="..\..\trogon-logo.png" Pack="true" PackagePath="\" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion src/EventStore.Common/Utils/VersionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public static class VersionInfo
public static string CommitSha { get; private set; } = ThisAssembly.Git.Commit;
public static string Timestamp { get; private set; } = ThisAssembly.Git.CommitDate;

public static string Text => $"EventStoreDB version {Version} {Edition} ({BuildId}/{CommitSha})";
public static string Text => $"TrogonEventStore version {Version} {Edition} ({BuildId}/{CommitSha})";

static VersionInfo()
{
Expand Down
2 changes: 1 addition & 1 deletion src/EventStore.Common/Utils/version.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
version_suffix=prerelease
version_suffix=
edition=local
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,5 @@
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
<None Remove="..\..\ouro.png" />
</ItemGroup>
</Project>
1 change: 1 addition & 0 deletions version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.0.1
Loading