diff --git a/.github/workflows/maven-central.yml b/.github/workflows/maven-central.yml
index 4031daaafb..31e89b6ea8 100644
--- a/.github/workflows/maven-central.yml
+++ b/.github/workflows/maven-central.yml
@@ -29,7 +29,7 @@ jobs:
run: mvn clean install -DskipTests -q
- name: Set up Maven Central
uses: actions/setup-java@v4
- with: # running setup-java again overwrites the settings.xml
+ with:
java-version: 21
distribution: 'temurin'
server-id: central
@@ -44,3 +44,78 @@ jobs:
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
CENTRAL_TOKEN: ${{ secrets.CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
+
+ update-release-notes:
+ name: Update GitHub Release Notes
+ needs: release
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Generate and Update Release Notes
+ continue-on-error: true
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ CURRENT_TAG=${{ github.ref_name }}
+ VERSION_NUM=${CURRENT_TAG#v}
+
+ # Calculate previous tag using version sorting
+ git fetch --tags --force
+ PREV_TAG=$(git tag --sort=-v:refname | grep -A 1 "^${CURRENT_TAG}$" | tail -n 1)
+
+ # Fetch milestone ID for the link
+ MILESTONE_ID=$(gh api repos/${{ github.repository }}/milestones -q ".[] | select(.title==\"$VERSION_NUM\") | .number")
+
+ # 1. Fetch NEW features (requires the 'feature' label)
+ gh issue list \
+ --repo ${{ github.repository }} \
+ --search "milestone:\"$VERSION_NUM\" label:feature" \
+ --limit 100 \
+ --json title,url \
+ --jq '.[] | "- [\(.title)](\(.url))"' > new_issues.md
+
+ # 2. Fetch OTHER changes (excludes 'feature' and 'dependencies')
+ gh issue list \
+ --repo ${{ github.repository }} \
+ --search "milestone:\"$VERSION_NUM\" -label:feature -label:dependencies" \
+ --limit 100 \
+ --json title,url \
+ --jq '.[] | "- [\(.title)](\(.url))"' > other_issues.md
+
+ # 3. Initialize the changelog file
+ > changelog.md
+
+ # 4. Conditionally add "What is new?" only if new_issues.md has content (-s)
+ if [ -s new_issues.md ]; then
+ echo "## What is new?" >> changelog.md
+ cat new_issues.md >> changelog.md
+ echo "" >> changelog.md
+ fi
+
+ # 5. Build the rest of the changelog ("Changes" is always present)
+ cat << EOF >> changelog.md
+ ## Changes
+ $(cat other_issues.md)
+
+ - [$CURRENT_TAG](https://github.com/jooby-project/jooby/tree/$CURRENT_TAG)
+ - [Issues](https://github.com/jooby-project/jooby/milestone/$MILESTONE_ID?closed=1)
+ - [Changelog](https://github.com/jooby-project/jooby/compare/$PREV_TAG...$CURRENT_TAG)
+ - [Dependencies](https://github.com/jooby-project/jooby/pulls?q=is%3Apr+label%3Adependencies+is%3Aclosed+milestone%3A$VERSION_NUM)
+
+ ## Support my work
+ - [Sponsor](https://github.com/sponsors/jknack)
+
+ ### Sponsors
+ - [@premium-minds](https://github.com/premium-minds)
+ - [@agentgt](https://github.com/agentgt)
+ - [@tipsy](https://github.com/tipsy)
+ EOF
+
+ # Overwrite the existing release notes
+ gh release edit $CURRENT_TAG --notes-file changelog.md
diff --git a/docs/asciidoc/core.adoc b/docs/asciidoc/core.adoc
index fd813fd0cf..b3c31b5a76 100644
--- a/docs/asciidoc/core.adoc
+++ b/docs/asciidoc/core.adoc
@@ -1,6 +1,6 @@
== Core
[.lead]
-The foundational building blocks of your Jooby application. This section covers how to bootstrap the server, manage application environments and configuration, and leverage the modular architecture that makes Jooby both lightweight and highly extensible.
+The heart of the Jooby development experience. This section defines the Request-Response Pipeline, covering everything from expressive routing and path patterns to managing the Context and crafting fluid responses. It is the essential guide to building the logic that powers your web applications.
include::routing.adoc[]
diff --git a/docs/asciidoc/docinfo-footer.html b/docs/asciidoc/docinfo-footer.html
index 7ef6b48b49..081c2d2dd2 100644
--- a/docs/asciidoc/docinfo-footer.html
+++ b/docs/asciidoc/docinfo-footer.html
@@ -155,3 +155,31 @@
}
});
+
+
+
+
diff --git a/docs/asciidoc/docinfo.html b/docs/asciidoc/docinfo.html
index 27704b6ebf..a68b19183a 100644
--- a/docs/asciidoc/docinfo.html
+++ b/docs/asciidoc/docinfo.html
@@ -1,5 +1,7 @@
+
+