Skip to content

Commit 18ccc2c

Browse files
github-actions[bot]MohabMohieCopilot
authored
docs(blog): add automated release blog post for 10.2.20260506 (#481)
* docs(blog): add automated release blog post for 10.2.20260506 * fix(release-blog): prevent MDX-invalid scope summaries in generated posts Agent-Logs-Url: https://github.com/ShaftHQ/shafthq.github.io/sessions/97693b3a-47b4-49ee-90e4-ee21c7a0dfd4 Co-authored-by: MohabMohie <19201898+MohabMohie@users.noreply.github.com> * fix(blog): refine release summary sanitization and changelog bullets Agent-Logs-Url: https://github.com/ShaftHQ/shafthq.github.io/sessions/97693b3a-47b4-49ee-90e4-ee21c7a0dfd4 Co-authored-by: MohabMohie <19201898+MohabMohie@users.noreply.github.com> --------- Co-authored-by: MohabMohie <19201898+MohabMohie@users.noreply.github.com> Co-authored-by: Mohab Mohie <Mohab.MohieElDeen@outlook.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
1 parent 237737e commit 18ccc2c

3 files changed

Lines changed: 213 additions & 8 deletions

File tree

.github/copilot-instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,4 @@ The following pages were created or significantly revised by other Copilot sessi
250250
- For PRs in this repository, verify Netlify checks pass when applicable (especially `Pages changed - shaftengine`, `Header rules - shaftengine`, and `Redirect rules - shaftengine`).
251251
- Do not consider the task complete until required checks have completed successfully or any failures are explicitly investigated and fixed.
252252
- Before proposing or updating a PR, always run local validation for affected areas (at minimum `npm run build`; and relevant tests such as `npm test`/`yarn test:playwright` when applicable) and confirm results in the PR update.
253+
- For automated release blog generation, ensure the generated `## ⚡ What Changed?` summary is MDX-safe text only (no raw HTML tag fragments like `<div ...`/`</div`), and verify with `npm run test:release-template` plus `npm run build` before pushing.

.github/workflows/automated-release-blog-post.yml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -236,14 +236,26 @@ jobs:
236236
? `\n🎉 **A warm welcome to our first-time contributors!** ${firstTimers.map((c) => `[@${c.login}](https://github.com/${c.login})`).join(', ')} — your first contribution is now part of SHAFT's story. We're thrilled to have you on board!`
237237
: '';
238238
239-
const extractScopeSummary = (markdownText) => {
240-
const sanitizedMarkdownText = markdownText.replace(/<!--[\s\S]*?-->/g, '');
241-
const candidateLines = sanitizedMarkdownText
242-
.split('\n')
243-
.map((line) => line.trim())
244-
.filter((line) => line && !line.startsWith('#'))
245-
.map((line) => line.replace(/^[-*+]\s*/, '').replace(/[*_>#]/g, '').trim())
246-
.filter(Boolean);
239+
const extractScopeSummary = (markdownText) => {
240+
const sanitizedMarkdownText = markdownText.replace(/<!--[\s\S]*?-->/g, '');
241+
const candidateLines = sanitizedMarkdownText
242+
.split('\n')
243+
.map((line) => line.trim())
244+
.filter((line) => line && !line.startsWith('#'))
245+
.map((line) =>
246+
line
247+
.replace(/<[^>]+>/g, ' ')
248+
.replace(/!\[[^\]]*\]\([^)]+\)/g, '')
249+
.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1')
250+
.replace(/^[-*+]\s*/, '')
251+
.replace(/^>\s*/, '')
252+
.replace(/[*_`#]/g, '')
253+
.replace(/\s+/g, ' ')
254+
.trim()
255+
)
256+
// Guard against incomplete HTML fragments that can break MDX (e.g., "<div ..." or "...>").
257+
.filter((line) => line && !/^<[^>]*$/.test(line) && !/^[^<]*>$/.test(line))
258+
.filter(Boolean);
247259
248260
if (!candidateLines.length) {
249261
return 'This version focuses on improving developer productivity, strengthening runtime reliability, and making test design more expressive across common automation scenarios.';
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
---
2+
slug: release-10.2.20260506
3+
title: "🚀 SHAFT 10.2.20260506: What's New and Why You Should Upgrade Today"
4+
authors: [autobot]
5+
tags: [shaft_engine, release, changelog, test-automation, open-source]
6+
---
7+
8+
Hey there, SHAFT community! 👋
9+
10+
A fresh release just dropped and it's packed with improvements you don't want to miss. **SHAFT_ENGINE 10.2.20260506** is here, and whether you're a seasoned SHAFT user or just getting started, there's something in this release for you.
11+
12+
<!-- truncate -->
13+
14+
## ⚡ What Changed?
15+
16+
- Improved project hygiene by updating `.gitignore` and Maven metadata management
17+
- Expanded SHAFT_ENGINE test coverage across file managers, validation builders, and REST utilities
18+
- Added Allure 2 compatibility mode and fixed Allure 3 real-time monitoring watch command behavior
19+
20+
👉 [View the full release on GitHub](https://github.com/ShaftHQ/SHAFT_ENGINE/releases/tag/10.2.20260506)
21+
22+
## 📋 Changelog
23+
24+
<!-- SHAFT_ENGINE Release Body Template
25+
Rendered automatically by the Maven Central CD workflow (mavenCentral_cd.yml).
26+
27+
HOW THIS WORKS:
28+
- The workflow runs `sed` to replace 10.2.20260506 with the actual version, then passes the
29+
result as the `bodyFile` to ncipollo/release-action with `generateReleaseNotes: true`.
30+
- ncipollo APPENDS the auto-generated changelog (categorized via .github/release.yml) AFTER the
31+
entire content of this template. It does NOT inject it into any placeholder inside this file.
32+
- Therefore: do NOT add static sections here that reference optional changelog categories
33+
(e.g. "Breaking Changes", "Security Fixes") — those sections only appear in the appended
34+
changelog when PRs carry the matching labels, and referencing them unconditionally creates
35+
misleading empty-looking entries in every release. -->
36+
37+
<div align="center">
38+
39+
# 🎉 SHAFT_ENGINE 10.2.20260506
40+
41+
**The unified test automation engine — Web · Mobile · API · CLI · Database**
42+
43+
[![Maven Central](https://img.shields.io/maven-central/v/io.github.shafthq/SHAFT_ENGINE?color=blue&logo=apachemaven)](https://central.sonatype.com/artifact/io.github.shafthq/SHAFT_ENGINE)
44+
[![GitHub stars](https://img.shields.io/github/stars/ShaftHQ/SHAFT_ENGINE?style=social)](https://github.com/ShaftHQ/SHAFT_ENGINE/stargazers)
45+
46+
</div>
47+
48+
---
49+
50+
## ⬆️ How to Upgrade
51+
52+
Update the version in your `pom.xml`:
53+
54+
```xml
55+
<properties>
56+
<shaft_engine.version>10.2.20260506</shaft_engine.version>
57+
</properties>
58+
```
59+
60+
Or update the dependency directly:
61+
62+
```xml
63+
<dependency>
64+
<groupId>io.github.shafthq</groupId>
65+
<artifactId>SHAFT_ENGINE</artifactId>
66+
<version>10.2.20260506</version>
67+
</dependency>
68+
```
69+
70+
> [!IMPORTANT]
71+
> **We support only the latest release.** If you encounter any issue, please upgrade to `10.2.20260506` first before filing a bug report.
72+
73+
---
74+
75+
## 📖 Resources
76+
77+
| Resource | Link |
78+
|---|---|
79+
| 📚 Full Documentation | [shafthq.github.io](https://shafthq.github.io/) |
80+
| 🚀 Getting Started | [Quick-Start Guide](https://shafthq.github.io/) |
81+
| 📋 JavaDocs | [ShaftHQ JavaDoc](https://shafthq.github.io/SHAFT_ENGINE/) |
82+
| 🤖 MCP Server | [SHAFT_MCP](https://github.com/ShaftHQ/SHAFT_MCP) |
83+
| 🗺️ Roadmap | [GitHub Projects](https://github.com/orgs/ShaftHQ/projects) |
84+
| 💬 Community | [GitHub Discussions](https://github.com/ShaftHQ/SHAFT_ENGINE/discussions) |
85+
| 🐛 Report a Bug | [Bug Report](https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md) |
86+
| 💡 Request a Feature | [Feature Request](https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md) |
87+
| 💬 Slack | [Join our Slack](https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw) |
88+
89+
---
90+
91+
## 🙌 Get Involved
92+
93+
If SHAFT_ENGINE saves you time, helps your team ship quality software faster, or you just enjoy using it — please consider:
94+
95+
-**[Star the repository](https://github.com/ShaftHQ/SHAFT_ENGINE)** — it helps others discover the project and motivates the team!
96+
- 🐛 **Found a bug?** [Open a bug report](https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=bug_report.md)
97+
- 💡 **Have an idea?** [Request a feature](https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new?template=feature_request.md)
98+
- 🤝 **Want to contribute?** Read the [Contributing Guide](https://github.com/ShaftHQ/SHAFT_ENGINE/blob/main/CONTRIBUTING.md)
99+
- 💬 **Questions or feedback?** Join us on [GitHub Discussions](https://github.com/ShaftHQ/SHAFT_ENGINE/discussions) or [Slack](https://join.slack.com/t/shaft-engine/shared_invite/zt-oii5i2gg-0ZGnih_Y34NjK7QqDn01Dw)
100+
101+
---
102+
103+
<!-- The auto-generated, categorized changelog (from .github/release.yml) is appended here by GitHub. -->
104+
105+
106+
<!-- Release notes generated using configuration in .github/release.yml at main -->
107+
108+
## What's Changed
109+
### 🔨 Other Changes
110+
* Update .gitignore and pom.xml for improved encoding and dependency management by @MohabMohie in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2498
111+
* feat(tests): Increase SHAFT_ENGINE unit and E2E test coverage across file managers, validation builders, and REST utilities by @Copilot in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2501
112+
* feat: Allure 2 compatibility mode + fix Allure 3 real-time monitoring watch command by @Copilot in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2497
113+
* chore(release): prepare SHAFT_ENGINE 10.2.20260506 metadata by @Copilot in https://github.com/ShaftHQ/SHAFT_ENGINE/pull/2502
114+
115+
116+
**Full Changelog**: https://github.com/ShaftHQ/SHAFT_ENGINE/compare/10.2.20260505...10.2.20260506
117+
118+
## 🏆 Community Spotlight
119+
120+
This release was made possible by **45 amazing contributors** who have poured their time and expertise into making SHAFT better for everyone.
121+
122+
Open source thrives because of people like these. Every bug fix, every feature, every review — it all counts.
123+
124+
- <img src="https://github.com/MohabMohie.png" width="32" height="32" alt="@MohabMohie" /> [@MohabMohie](https://github.com/MohabMohie)
125+
- <img src="https://github.com/MahmoudElSharkawy.png" width="32" height="32" alt="@MahmoudElSharkawy" /> [@MahmoudElSharkawy](https://github.com/MahmoudElSharkawy)
126+
- <img src="https://github.com/MennaMagedm.png" width="32" height="32" alt="@MennaMagedm" /> [@MennaMagedm](https://github.com/MennaMagedm)
127+
- <img src="https://github.com/AhmdZanoon.png" width="32" height="32" alt="@AhmdZanoon" /> [@AhmdZanoon](https://github.com/AhmdZanoon)
128+
- <img src="https://github.com/magdyheiba.png" width="32" height="32" alt="@magdyheiba" /> [@magdyheiba](https://github.com/magdyheiba)
129+
- <img src="https://github.com/MustafaAgamy.png" width="32" height="32" alt="@MustafaAgamy" /> [@MustafaAgamy](https://github.com/MustafaAgamy)
130+
- <img src="https://github.com/amfarid.png" width="32" height="32" alt="@amfarid" /> [@amfarid](https://github.com/amfarid)
131+
- <img src="https://github.com/KyrillosNageh.png" width="32" height="32" alt="@KyrillosNageh" /> [@KyrillosNageh](https://github.com/KyrillosNageh)
132+
- <img src="https://github.com/Mohab-Osama.png" width="32" height="32" alt="@Mohab-Osama" /> [@Mohab-Osama](https://github.com/Mohab-Osama)
133+
- <img src="https://github.com/RihamMostafa.png" width="32" height="32" alt="@RihamMostafa" /> [@RihamMostafa](https://github.com/RihamMostafa)
134+
- <img src="https://github.com/MhmdElGazzar.png" width="32" height="32" alt="@MhmdElGazzar" /> [@MhmdElGazzar](https://github.com/MhmdElGazzar)
135+
- <img src="https://github.com/MohamedHazem95.png" width="32" height="32" alt="@MohamedHazem95" /> [@MohamedHazem95](https://github.com/MohamedHazem95)
136+
- <img src="https://github.com/MamdouhMansour.png" width="32" height="32" alt="@MamdouhMansour" /> [@MamdouhMansour](https://github.com/MamdouhMansour)
137+
- <img src="https://github.com/samiir95.png" width="32" height="32" alt="@samiir95" /> [@samiir95](https://github.com/samiir95)
138+
- <img src="https://github.com/mohamedtawfek05354.png" width="32" height="32" alt="@mohamedtawfek05354" /> [@mohamedtawfek05354](https://github.com/mohamedtawfek05354)
139+
- <img src="https://github.com/sys123-data.png" width="32" height="32" alt="@sys123-data" /> [@sys123-data](https://github.com/sys123-data)
140+
- <img src="https://github.com/ieZaky.png" width="32" height="32" alt="@ieZaky" /> [@ieZaky](https://github.com/ieZaky)
141+
- <img src="https://github.com/hammad101088.png" width="32" height="32" alt="@hammad101088" /> [@hammad101088](https://github.com/hammad101088)
142+
- <img src="https://github.com/MahmoudMabrok.png" width="32" height="32" alt="@MahmoudMabrok" /> [@MahmoudMabrok](https://github.com/MahmoudMabrok)
143+
- <img src="https://github.com/Kinasr.png" width="32" height="32" alt="@Kinasr" /> [@Kinasr](https://github.com/Kinasr)
144+
- <img src="https://github.com/wesamhamed.png" width="32" height="32" alt="@wesamhamed" /> [@wesamhamed](https://github.com/wesamhamed)
145+
- <img src="https://github.com/themosaeed.png" width="32" height="32" alt="@themosaeed" /> [@themosaeed](https://github.com/themosaeed)
146+
- <img src="https://github.com/khaledskhamis.png" width="32" height="32" alt="@khaledskhamis" /> [@khaledskhamis](https://github.com/khaledskhamis)
147+
- <img src="https://github.com/Waleedmohammed.png" width="32" height="32" alt="@Waleedmohammed" /> [@Waleedmohammed](https://github.com/Waleedmohammed)
148+
- <img src="https://github.com/TarekGaafar.png" width="32" height="32" alt="@TarekGaafar" /> [@TarekGaafar](https://github.com/TarekGaafar)
149+
- <img src="https://github.com/Salma2018170.png" width="32" height="32" alt="@Salma2018170" /> [@Salma2018170](https://github.com/Salma2018170)
150+
- <img src="https://github.com/osamaayman1005.png" width="32" height="32" alt="@osamaayman1005" /> [@osamaayman1005](https://github.com/osamaayman1005)
151+
- <img src="https://github.com/sultanpaymob.png" width="32" height="32" alt="@sultanpaymob" /> [@sultanpaymob](https://github.com/sultanpaymob)
152+
- <img src="https://github.com/Mochxd.png" width="32" height="32" alt="@Mochxd" /> [@Mochxd](https://github.com/Mochxd)
153+
- <img src="https://github.com/MarwaYoussef1.png" width="32" height="32" alt="@MarwaYoussef1" /> [@MarwaYoussef1](https://github.com/MarwaYoussef1)
154+
- <img src="https://github.com/xValenciax.png" width="32" height="32" alt="@xValenciax" /> [@xValenciax](https://github.com/xValenciax)
155+
- <img src="https://github.com/hjsblogger.png" width="32" height="32" alt="@hjsblogger" /> [@hjsblogger](https://github.com/hjsblogger)
156+
- <img src="https://github.com/georgii-musikhin.png" width="32" height="32" alt="@georgii-musikhin" /> [@georgii-musikhin](https://github.com/georgii-musikhin)
157+
- <img src="https://github.com/DavidIshakGorgy.png" width="32" height="32" alt="@DavidIshakGorgy" /> [@DavidIshakGorgy](https://github.com/DavidIshakGorgy)
158+
- <img src="https://github.com/BojteTamas.png" width="32" height="32" alt="@BojteTamas" /> [@BojteTamas](https://github.com/BojteTamas)
159+
- <img src="https://github.com/blacelle.png" width="32" height="32" alt="@blacelle" /> [@blacelle](https://github.com/blacelle)
160+
- <img src="https://github.com/Ayanasrallah.png" width="32" height="32" alt="@Ayanasrallah" /> [@Ayanasrallah](https://github.com/Ayanasrallah)
161+
- <img src="https://github.com/AmrAdelElkholy.png" width="32" height="32" alt="@AmrAdelElkholy" /> [@AmrAdelElkholy](https://github.com/AmrAdelElkholy)
162+
- <img src="https://github.com/amlosman.png" width="32" height="32" alt="@amlosman" /> [@amlosman](https://github.com/amlosman)
163+
- <img src="https://github.com/ahmednasr95.png" width="32" height="32" alt="@ahmednasr95" /> [@ahmednasr95](https://github.com/ahmednasr95)
164+
- <img src="https://github.com/ahmed-madyan.png" width="32" height="32" alt="@ahmed-madyan" /> [@ahmed-madyan](https://github.com/ahmed-madyan)
165+
- <img src="https://github.com/AhmedHelalyy.png" width="32" height="32" alt="@AhmedHelalyy" /> [@AhmedHelalyy](https://github.com/AhmedHelalyy)
166+
- <img src="https://github.com/A-Alii.png" width="32" height="32" alt="@A-Alii" /> [@A-Alii](https://github.com/A-Alii)
167+
- <img src="https://github.com/AbdelrahmanFahd.png" width="32" height="32" alt="@AbdelrahmanFahd" /> [@AbdelrahmanFahd](https://github.com/AbdelrahmanFahd)
168+
- <img src="https://github.com/Abdelrhman-Ellithy.png" width="32" height="32" alt="@Abdelrhman-Ellithy" /> [@Abdelrhman-Ellithy](https://github.com/Abdelrhman-Ellithy)
169+
170+
171+
## 🚀 Get Started in Seconds
172+
173+
Upgrading is simple — just update your dependency version:
174+
175+
```xml
176+
<dependency>
177+
<groupId>io.github.shafthq</groupId>
178+
<artifactId>SHAFT_ENGINE</artifactId>
179+
<version>10.2.20260506</version>
180+
</dependency>
181+
```
182+
183+
## 💬 Join the Conversation
184+
185+
We'd love to hear what you think! Found a bug? Have an idea? Just want to say hi?
186+
187+
-[Star SHAFT on GitHub](https://github.com/ShaftHQ/SHAFT_ENGINE) — it helps more than you think
188+
- 💡 [Start a Discussion](https://github.com/ShaftHQ/SHAFT_ENGINE/discussions) — share feedback or ideas
189+
- 🐛 [Report an Issue](https://github.com/ShaftHQ/SHAFT_ENGINE/issues/new) — help us squash bugs faster
190+
- 📖 [Read the Docs](https://shafthq.github.io/) — dive deeper into SHAFT
191+
192+
Thanks for being part of the SHAFT journey. Until the next release — happy testing! 🎯

0 commit comments

Comments
 (0)