Skip to content

Commit d7aec17

Browse files
committed
Add GitHub release workflow and improve docs
1 parent d91135b commit d7aec17

File tree

13 files changed

+417
-13
lines changed

13 files changed

+417
-13
lines changed

.github/workflows/pages.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ jobs:
2020
runs-on: ubuntu-latest
2121
steps:
2222
- uses: actions/checkout@v5
23+
- uses: actions/setup-node@v6
24+
with:
25+
node-version: "22.12.0"
26+
- run: node scripts/changelog.mjs --docs docs/changelog.md
2327
- uses: actions/configure-pages@v5
2428
- uses: actions/jekyll-build-pages@v1
2529
with:

.github/workflows/release.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*.*.*"
7+
8+
concurrency:
9+
group: release-${{ github.ref_name }}
10+
cancel-in-progress: false
11+
12+
jobs:
13+
github-release:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
steps:
18+
- uses: actions/checkout@v5
19+
with:
20+
fetch-depth: 0
21+
- uses: actions/setup-node@v6
22+
with:
23+
node-version: "22.12.0"
24+
cache: npm
25+
- run: npm ci
26+
- run: npm run check
27+
- name: Validate package version matches tag
28+
run: |
29+
PACKAGE_VERSION="$(node -p "require('./package.json').version")"
30+
if [ "v${PACKAGE_VERSION}" != "${GITHUB_REF_NAME}" ]; then
31+
echo "Tag ${GITHUB_REF_NAME} does not match package.json version v${PACKAGE_VERSION}"
32+
exit 1
33+
fi
34+
- name: Build release notes from changelog
35+
run: node scripts/changelog.mjs --version "${GITHUB_REF_NAME}" > release-notes.md
36+
- name: Pack npm artifact
37+
run: |
38+
mkdir -p release-artifacts
39+
npm pack --ignore-scripts --pack-destination release-artifacts --cache /tmp/devforge-release-cache
40+
- name: Publish GitHub release
41+
env:
42+
GH_TOKEN: ${{ github.token }}
43+
run: |
44+
TITLE="DevForge CLI ${GITHUB_REF_NAME}"
45+
if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then
46+
gh release edit "${GITHUB_REF_NAME}" --title "${TITLE}" --notes-file release-notes.md
47+
gh release upload "${GITHUB_REF_NAME}" release-artifacts/*.tgz --clobber
48+
else
49+
gh release create "${GITHUB_REF_NAME}" release-artifacts/*.tgz --title "${TITLE}" --notes-file release-notes.md
50+
fi

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ The format follows Keep a Changelog and the version numbers follow Semantic Vers
66

77
## [Unreleased]
88

9+
## [0.3.3] - 2026-03-26
10+
11+
### Added
12+
13+
- Added a tag-driven GitHub release workflow that validates the repo, extracts release notes from `CHANGELOG.md`, and publishes a GitHub Release with the packaged npm artifact attached.
14+
- Added a reusable changelog rendering script for release notes and GitHub Pages documentation output.
15+
16+
### Changed
17+
18+
- Refreshed the public README with clearer product positioning, benefits, starter-surface details, and docs and release links.
19+
- Expanded the documentation site with stronger product messaging and a dedicated changelog page.
20+
- Updated the Pages workflow to render the changelog page directly from `CHANGELOG.md` during site builds.
21+
922
## [0.3.2] - 2026-03-26
1023

1124
### Fixed

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ npm run check
2828
```bash
2929
npm run check
3030
npm run smoke
31+
npm run docs:changelog
3132
npm run runtime:matrix -- --scenario backend-hono --scenario cli-tool
3233
```
3334

@@ -53,8 +54,10 @@ For generated frontend, extension, and fullstack runtime scenarios, use Node `20
5354
- Use a minor release for backward-compatible CLI capabilities, templates, or generated output improvements.
5455
- Use a major release for breaking CLI, prompt, config, or generated-project changes.
5556
- Add release notes to `CHANGELOG.md` before publishing.
57+
- Regenerate `docs/changelog.md` with `npm run docs:changelog` whenever `CHANGELOG.md` changes.
5658
- Use `npm run release:patch`, `npm run release:minor`, or `npm run release:major` to bump versions.
5759
- The version commands run `npm run release:check` first so lint, typecheck, tests, build, and pack validation all pass before the version changes.
60+
- Push a semantic version tag like `v0.3.3` to trigger the GitHub Release workflow after the changelog and package version are in sync.
5861

5962
## Communication
6063

README.md

Lines changed: 41 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,42 @@
11
# DevForge CLI
22

3-
DevForge CLI is a production-focused, AI-native scaffolding tool for modern JavaScript and TypeScript applications. It helps teams move from project intent to a documented, installable repository with architecture guidance, AI assistant rules, testing setup, and baseline tooling already in place.
3+
DevForge CLI is a production-focused, AI-native scaffolding tool for modern JavaScript and TypeScript applications. It helps teams move from project intent to a documented, installable repository with architecture guidance, AI assistant rules, testing setup, release hygiene, and baseline tooling already in place.
44

5-
## Highlights
5+
## Why DevForge
66

7-
- intent-driven project scaffolding for frontend, backend, fullstack, extension, microfrontend, and CLI projects
7+
Starting a new project usually means repeating the same setup work: choosing frameworks, wiring testing, adding linting, deciding on architecture, documenting the stack, and aligning AI assistants with team standards. DevForge turns that setup phase into a guided flow that produces a repo your team can actually build on.
8+
9+
DevForge helps you:
10+
11+
- reduce setup time for frontend, backend, fullstack, microfrontend, extension, and CLI projects
12+
- avoid invalid stack combinations through built-in normalization and compatibility rules
13+
- start with generated docs, health surfaces, project metadata, and repository hygiene from day one
14+
- configure AI tools like Cursor, Claude, and Codex with stack-aware rule packs
15+
- standardize project creation across teams, internal tools, client work, and experiments
16+
17+
## What You Get
18+
19+
- intent-driven scaffolding for landing pages, frontend apps, backend APIs, fullstack apps, microfrontends, Chrome extensions, and CLI tools
820
- environment-aware setup for Node.js and package manager selection
921
- configurable ESLint, Prettier, and Husky strictness profiles
1022
- testing setup prompts for Vitest, Jest, Playwright, Cypress, `node`, `jsdom`, and `happy-dom`
11-
- frontend state/data choices including Redux, Redux Toolkit, MobX, Jotai, TanStack Query, RTK Query, and more
12-
- generated docs, AI rules, CI, and repo hygiene out of the box
23+
- frontend state and data choices including Redux Toolkit, MobX, Jotai, TanStack Query, RTK Query, and more
24+
- generated docs, AI rules, CI, contribution files, and release-ready repository hygiene
25+
26+
## Generated Starter Experience
1327

14-
## Usage
28+
DevForge does not stop at writing config files. Fresh projects include meaningful starter surfaces so the generated app explains itself:
29+
30+
- frontend projects render a project details page with stack information and generator metadata
31+
- backend projects expose structured metadata from `/` and `/health`
32+
- fullstack apps ship with a frontend surface and an API health route
33+
- microfrontends generate a host plus remotes with role-aware starter screens
34+
- Chrome extensions include popup, background, and content-script starter surfaces
35+
- CLI projects expose human-readable output and machine-readable `--json` output
36+
37+
## Quick Start
38+
39+
Run without installing globally:
1540

1641
```bash
1742
npx @ali-dev11/devforge@latest
@@ -36,6 +61,14 @@ node dist/bin/devforge.js --help
3661
node dist/bin/devforge.js init
3762
```
3863

64+
## Release History And Docs
65+
66+
- [Documentation Site](https://ali-dev11.github.io/devforge/)
67+
- [Docs Overview](./docs/overview.md)
68+
- [Changelog](./CHANGELOG.md)
69+
- [GitHub Releases](https://github.com/Ali-dev11/devforge/releases)
70+
- [GitHub Pages Changelog](https://ali-dev11.github.io/devforge/changelog.html)
71+
3972
## Development Commands
4073

4174
```bash
@@ -44,13 +77,15 @@ npm run typecheck
4477
npm run test
4578
npm run build
4679
npm run check
80+
npm run docs:changelog
4781
npm run smoke
4882
npm run runtime:matrix -- --scenario backend-hono --scenario cli-tool
4983
```
5084

5185
## Documentation
5286

5387
- [Docs Home](./docs/index.md)
88+
- [Changelog Page](./docs/changelog.md)
5489
- [Overview](./docs/overview.md)
5590
- [Architecture](./docs/architecture.md)
5691
- [Development](./docs/development.md)

docs/changelog.md

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
---
2+
title: Changelog
3+
---
4+
5+
# Changelog
6+
7+
Track what changed in DevForge CLI across releases, including scaffolding behavior, runtime verification improvements, and release automation updates.
8+
9+
- [GitHub Releases](https://github.com/Ali-dev11/devforge/releases)
10+
- [Repository Changelog](https://github.com/Ali-dev11/devforge/blob/main/CHANGELOG.md)
11+
12+
## [0.3.3] - 2026-03-26
13+
14+
### Added
15+
16+
- Added a tag-driven GitHub release workflow that validates the repo, extracts release notes from `CHANGELOG.md`, and publishes a GitHub Release with the packaged npm artifact attached.
17+
- Added a reusable changelog rendering script for release notes and GitHub Pages documentation output.
18+
19+
### Changed
20+
21+
- Refreshed the public README with clearer product positioning, benefits, starter-surface details, and docs and release links.
22+
- Expanded the documentation site with stronger product messaging and a dedicated changelog page.
23+
- Updated the Pages workflow to render the changelog page directly from `CHANGELOG.md` during site builds.
24+
25+
## [0.3.2] - 2026-03-26
26+
27+
### Fixed
28+
29+
- Hardened generated runtime-matrix process shutdown by terminating the full spawned process group for preview and start commands, which prevents Linux CI jobs from lingering after verification logs show completion.
30+
31+
## [0.3.1] - 2026-03-26
32+
33+
### Changed
34+
35+
- Reduced CI runner pressure by grouping generated runtime scenarios into a smaller set of runtime-matrix jobs instead of spawning one hosted-runner job per scenario.
36+
- Made generated runtime verification wait for repository validation to pass before consuming matrix capacity, so bad commits fail faster and do not queue unnecessary stack jobs.
37+
- Updated this repository and generated project GitHub Actions workflows to use newer `actions/checkout` and `actions/setup-node` releases.
38+
39+
### Fixed
40+
41+
- Added workflow-level concurrency cancellation so superseded pushes stop older CI runs instead of leaving stale jobs queued behind newer commits.
42+
43+
## [0.3.0] - 2026-03-26
44+
45+
### Added
46+
47+
- Added a generated-project runtime matrix runner that scaffolds representative stacks, installs dependencies, builds them, and verifies real runtime surfaces or production artifacts.
48+
- Added a GitHub Actions matrix job for generated stack verification alongside the existing repository validation job.
49+
- Added regression coverage that enforces runtime-matrix coverage across every primary project intent and every backend framework surface.
50+
51+
### Changed
52+
53+
- Raised generated frontend and extension project engine declarations to match the current Vite-family toolchain requirements.
54+
- Documented the local runtime-matrix workflow in contributor docs and development docs.
55+
56+
### Fixed
57+
58+
- Added Node compatibility warnings when users choose a custom Node version that is too old for the selected frontend-oriented scaffold.
59+
- Added Node type definitions to generated TypeScript configs so backend, fullstack, and CLI projects build cleanly when they reference `process`.
60+
- Tightened the runtime verifier so CLI JSON checks execute the built binary directly instead of parsing npm wrapper output.
61+
- Fixed generated Next.js projects to include Next-specific type declarations and tsconfig settings so app-directory CSS imports typecheck during production builds.
62+
- Fixed generated fullstack React plus API projects to compile server code through a dedicated server tsconfig instead of typechecking browser entrypoints with NodeNext emit settings.
63+
- Fixed generated NestJS projects to enable decorator compiler options required for controller methods.
64+
- Added a no-op build script for JavaScript backend scaffolds so install/build/run verification stays consistent across backend language choices.
65+
- Relaxed frontend runtime probes to validate successful startup instead of waiting for client-rendered HTML content that only appears after hydration.
66+
- Fixed Nuxt runtime verification to start the built Nitro server directly instead of passing unsupported preview arguments.
67+
68+
## [0.2.3] - 2026-03-25
69+
70+
### Added
71+
72+
- Generated richer starter surfaces across the supported intents:
73+
frontend apps now render a project-details page,
74+
backend APIs expose structured project metadata from `/` and `/health`,
75+
CLI scaffolds print project info and support `--json`,
76+
Chrome extensions show a detailed popup and log extension metadata,
77+
and microfrontend host/remote apps identify their role and generation source.
78+
- Added regression coverage for starter surfaces across every supported intent.
79+
80+
### Changed
81+
82+
- Expanded the scaffold audit coverage so every intent now emits a clear primary experience surface instead of only a minimal placeholder.
83+
- Threaded DevForge package metadata through generated outputs so new projects show the creator, package name, and CLI version consistently.
84+
85+
### Fixed
86+
87+
- Corrected stale generated starter metadata by sourcing generator identity from the real CLI package instead of duplicating hardcoded values.
88+
- Tightened the microfrontend host/remote starter content so those apps no longer look like generic workspace frontends.
89+
90+
## [0.2.2] - 2026-03-25
91+
92+
### Changed
93+
94+
- Split the interactive flow into core decisions and optional advanced sections so users can keep recommended defaults for metadata, frontend libraries, backend capabilities, testing, AI rules, and tooling without answering every detail prompt.
95+
- Skipped one-option frontend prompts automatically for constrained flows such as microfrontend scaffolds.
96+
- Expanded default AI rule selection to the full stack-relevant category set when users keep the recommended configuration.
97+
98+
### Fixed
99+
100+
- Reset intent-specific defaults when users switch project type during prompting, preventing stale frontend-app defaults from leaking into landing page, backend API, chrome extension, and other flows.
101+
- Ensured backend and testing defaults remain valid when optional advanced questions are skipped, including a safe default adapter for NestJS.
102+
103+
## [0.2.1] - 2026-03-25
104+
105+
### Fixed
106+
107+
- Made AI rule category prompts stack-aware so frontend-only flows no longer offer backend rules.
108+
- Filtered invalid AI rule categories out of normalized plans for resume, seed, and compatibility-adjusted flows.
109+
- Added regression coverage for rule-category availability across landing page, chrome extension, and other intent-specific paths.
110+
111+
## [0.2.0] - 2026-03-25
112+
113+
### Fixed
114+
115+
- Prevented interactive prompt crashes when switching from default frontend setup to backend-oriented project flows.
116+
- Restricted architecture choices by project intent so incompatible combinations such as backend plus microfrontend are no longer offered.
117+
- Added safer default select handling and regression coverage for backend and non-frontend prompt paths.
118+
- Added the required `packageManager` metadata to generated workspace roots so TurboRepo can resolve workspaces correctly.
119+
- Fixed generated fullstack scripts to honor the selected package manager instead of hardcoding `npm`.
120+
- Fixed workspace and microfrontend scaffolds to generate local app `tsconfig` and test config files where needed.
121+
- Prevented generated output from writing duplicate paths, escaping the target directory, or targeting an existing file path as a directory.
122+
- Fixed CLI version output so `--version` stays aligned with `package.json`.
123+
124+
### Changed
125+
126+
- Renamed the npm package to `@ali-dev11/devforge`.
127+
- Updated user-facing install and CLI examples to use the shorter package name.
128+
- Added release scripts for patch, minor, and major version bumps with pre-release validation.
129+
- Normalized microfrontend scaffolds to the currently supported React (Vite) client-rendered setup and removed the stray default `apps/web` package from microfrontend outputs.
130+
131+
## [0.1.0] - 2026-03-25
132+
133+
### Added
134+
135+
- Initial public-ready DevForge CLI foundation
136+
- Added production repo setup with lint, CI, typecheck, smoke workflow, and package exports
137+
- Expanded repository documentation and generated-project documentation
138+
- Improved generated scaffold setup scripts and baseline project docs
139+
- Added MIT licensing, npm publishing documentation, GitHub Pages docs setup, and repository community health files

docs/development.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ npm run dev -- --help
2424
npm run build
2525
npm run test
2626
npm run lint
27+
npm run docs:changelog
2728
npm run smoke
2829
npm run runtime:matrix -- --scenario backend-hono --scenario cli-tool
2930
```
@@ -34,4 +35,5 @@ npm run runtime:matrix -- --scenario backend-hono --scenario cli-tool
3435
2. Run `npm run check`.
3536
3. Use `npm run smoke` for an end-to-end non-interactive scaffold.
3637
4. Use `npm run runtime:matrix` to verify generated installs, builds, and runtime surfaces for representative stacks.
37-
5. Update docs when command behavior or generated output changes.
38+
5. Run `npm run docs:changelog` after changelog updates so the GitHub Pages release history stays aligned.
39+
6. Update docs when command behavior or generated output changes.

docs/index.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,28 @@ title: DevForge CLI Docs
44

55
# DevForge CLI Docs
66

7-
Welcome to the DevForge CLI documentation site.
7+
DevForge CLI helps teams move from project intent to a production-minded JavaScript or TypeScript repository with architecture guidance, tooling setup, AI rules, and starter surfaces already in place.
88

9-
## Documentation
9+
## Start Here
1010

1111
- [Overview](./overview.md)
1212
- [Architecture](./architecture.md)
13-
- [Development](./development.md)
1413
- [Generated Output](./generated-output.md)
14+
- [Development](./development.md)
1515
- [Contributing](./contributing.md)
1616

17+
## Why Teams Use DevForge
18+
19+
- ship faster without manually assembling the same toolchain on every project
20+
- reduce broken setups by filtering incompatible architecture and framework combinations
21+
- start with docs, metadata, release hygiene, and testing decisions baked into the generated repo
22+
- keep AI assistants aligned with the selected stack through generated rule packs
23+
24+
## Release History
25+
26+
- [Changelog](./changelog.md)
27+
- [GitHub Releases](https://github.com/Ali-dev11/devforge/releases)
28+
1729
## Project Links
1830

1931
- [Repository README](https://github.com/Ali-dev11/devforge#readme)

docs/overview.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@ title: Overview
66

77
DevForge CLI is a production-focused scaffolding tool for JavaScript and TypeScript teams that want more than a one-shot starter template.
88

9+
It is designed for developers who want to move quickly without skipping the decisions that matter in real projects: architecture, tooling, testing, release hygiene, and AI assistant consistency.
10+
11+
## How DevForge Helps
12+
13+
- shortens the path from idea to runnable repository
14+
- enforces compatibility rules before bad stack combinations land in the codebase
15+
- generates starter surfaces that explain the project and its stack on day one
16+
- produces docs, contributor files, and CI setup alongside application code
17+
- makes AI tooling predictable by generating stack-aware rule outputs
18+
919
## Project Flow
1020

1121
1. Inspect the local environment.
@@ -27,3 +37,4 @@ DevForge CLI is a production-focused scaffolding tool for JavaScript and TypeScr
2737
- testing setup prompts and starter configs
2838
- ESLint, Prettier, and Husky profile selection
2939
- GitHub-ready repository structure and contribution files
40+
- GitHub Release and changelog automation for this repository

0 commit comments

Comments
 (0)