Skip to content

Commit dddda45

Browse files
committed
release: publish v0.1.0 artifacts
1 parent 16653b0 commit dddda45

36 files changed

Lines changed: 252 additions & 1670 deletions

File tree

.documentation/CHANGELOG.md

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
All notable changes to ReactSparkPortfolio will be documented in this file.
3+
All notable changes to BootstrapSpark will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
@@ -9,18 +9,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12-
- Tag-driven GitHub Release automation that packages the built site together with DevSpark release docs
13-
- World-class README.md with comprehensive documentation
14-
- Complete documentation suite in `/documentation` folder
15-
- Contributing guidelines and project governance
16-
- Architecture documentation with diagrams
17-
- Comprehensive deployment guide for multiple platforms
12+
### Changed
13+
14+
## [0.1.0] - 2026-04-16
15+
16+
### Added
17+
18+
- **BootstrapSpark consolidation** - Merged the JsBootSpark feature surface into the React-based BootstrapSpark application and standardized the project identity.
19+
- **Robust theme switcher** - Expanded theming toward a richer Bootswatch-backed selector model with local catalog ownership and fallback behavior.
20+
- **Release automation path** - Added tag-driven GitHub Release packaging that ships generated release notes with a built site bundle.
1821

1922
### Changed
2023

21-
- `/devspark.release` now relies on the upgraded release context contract in `.documentation/scripts/powershell/release-context.ps1`
22-
- Improved project organization with centralized documentation
23-
- Enhanced copilot instructions for better AI assistance
24+
- **Build artifact handling** - Stopped treating generated deploy output and coverage reports as source-controlled artifacts, leaving CI responsible for production builds.
25+
- **Release workflow** - `/devspark.release` now relies on the upgraded release context contract in `.documentation/scripts/powershell/release-context.ps1`.
26+
27+
### Architectural Decisions
28+
29+
- **ADR-001**: Build artifacts are generated in CI, not stored in git.
30+
- **ADR-002**: Consolidate BootstrapSpark as a single React SPA.
31+
- **ADR-003**: Use a local theme catalog and precompiled theme assets.
32+
33+
### Contributors
34+
35+
- Mark Hazleton
2436

2537
## [2.0.0] - 2025-01-05
2638

.documentation/Guide.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ This is the living orientation document for `.documentation/`. It reflects the *
1717
├── DEPLOYMENT.md ← Deployment guide (Azure Static Web Apps, GitHub Pages)
1818
├── PROMPTSPARK_CHAT.md ← PromptSpark real-time chat feature documentation
1919
├── SECURITY.md ← CSP policy, security headers, allowlist rationale
20-
├── commands/ ← Team-customized DevSpark command overrides
21-
├── copilot/ ← AI-session working documents (currently empty)
2220
├── decisions/ ← Architecture Decision Records (ADRs)
2321
├── memory/
2422
│ └── constitution.md ← Project constitution (non-negotiable principles)
23+
├── releases/ ← Versioned release archives generated by /devspark.release
24+
├── repo-story/ ← Repository history and narrative outputs
2525
├── scripts/ ← Team script overrides for DevSpark
26-
├── specs/ ← Active feature specifications (archive after merge)
26+
├── specs/ ← Active feature specifications and pr-review records
2727
└── templates/ ← DevSpark document templates (operational, do not archive)
2828
```
2929

@@ -39,7 +39,7 @@ This is the living orientation document for `.documentation/`. It reflects the *
3939
| `CACHE_BUSTING.md` | Cache invalidation strategy: build-date-based in prod, timestamp-based in dev |
4040
| `CHANGELOG.md` | Release history following Keep a Changelog / SemVer |
4141
| `CONTRIBUTING.md` | How to contribute, testing strategy, PR requirements |
42-
| `DEPLOYMENT.md` | Dual-target deployment: Azure Static Web Apps + GitHub Pages via `/docs` |
42+
| `DEPLOYMENT.md` | Deployment and release guide for Azure Static Web Apps and tag-driven GitHub Releases |
4343
| `SECURITY.md` | CSP policy, justified allowlist, intentional permissiveness rationale |
4444
| `PROMPTSPARK_CHAT.md` | SignalR-based real-time chat with AI personalities |
4545

@@ -75,6 +75,6 @@ When that release commit is tagged and the tag is pushed, `.github/workflows/git
7575

7676
---
7777

78-
## What Is in `.archive/`
78+
## Release Archives
7979

80-
Completed and historical docs moved here by archive runs. **Do not read from here during normal operations.** Files are preserved for audit and traceability only. See `.archive/README.md` for the index of archive batches.
80+
Versioned release artifacts live under `.documentation/releases/vX.Y.Z/`. Each release folder contains release notes, metrics, and archived feature specs for that release cut.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# ADR-001: Build Artifacts Are Generated in CI, Not Stored in Git
2+
3+
## Status
4+
5+
Accepted
6+
7+
## Context
8+
9+
BootstrapSpark builds to `docs/`, producing hashed filenames on every production build. Keeping `docs/` and coverage reports under git tracking created persistent diff noise that obscured meaningful source changes. The Azure Static Web Apps workflow already builds from source during CI, so committed build output was redundant.
10+
11+
## Decision
12+
13+
Treat `docs/` and `coverage/` as build artifacts only. They are generated locally or in CI when needed, ignored by git, and no longer treated as source-controlled release content.
14+
15+
## Consequences
16+
17+
### Positive
18+
19+
- Git history and pull requests stay focused on source changes.
20+
- CI remains the source of truth for production build output.
21+
22+
### Negative
23+
24+
- Contributors must run a build locally before previewing production output.
25+
26+
## Source
27+
28+
- **Spec**: 001-build-artifact-separation
29+
- **Release**: v0.1.0
30+
- **Date**: 2026-04-16
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# ADR-002: Consolidate BootstrapSpark as a Single React SPA
2+
3+
## Status
4+
5+
Accepted
6+
7+
## Context
8+
9+
Two separate Bootstrap-focused showcase repositories overlapped in purpose: one built with React/Vite/TypeScript and one built with vanilla JavaScript, Express, and EJS. Maintaining both created duplicate effort, fragmented feature discovery, and weakened the consistency of the Spark portfolio family.
10+
11+
## Decision
12+
13+
Consolidate the unique JsBootSpark features into the React-based application and standardize the project identity as BootstrapSpark. The merged application keeps a single frontend architecture built on React, Vite, TypeScript, Bootstrap, and a service/model/component structure.
14+
15+
## Consequences
16+
17+
### Positive
18+
19+
- One repository now owns the Bootstrap showcase experience.
20+
- Feature growth stays aligned with the existing TypeScript and React architecture.
21+
22+
### Negative
23+
24+
- The consolidated app inherits a larger routing and component surface that requires stronger regression testing.
25+
26+
## Source
27+
28+
- **Spec**: 001-merge-jsbootspark
29+
- **Release**: v0.1.0
30+
- **Date**: 2026-04-16
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# ADR-003: Use a Local Theme Catalog and Precompiled Theme Assets
2+
3+
## Status
4+
5+
Accepted
6+
7+
## Context
8+
9+
BootstrapSpark needed a robust theme-switching experience that supports the BootstrapSpark default theme plus the Bootswatch catalog while remaining usable when external metadata is unavailable. A runtime dependency on live external theme data would reduce resilience and complicate CSP and fallback behavior.
10+
11+
## Decision
12+
13+
Use a locally maintained supported-theme catalog as the source of truth and apply curated themes by swapping precompiled static stylesheet assets. External Bootswatch metadata may enrich the catalog, but runtime correctness must not depend on it.
14+
15+
## Consequences
16+
17+
### Positive
18+
19+
- Theme selection remains reliable even when external metadata is unavailable.
20+
- Theme switching stays simple and fast because assets are precompiled.
21+
22+
### Negative
23+
24+
- The local catalog and static assets must be maintained as Bootswatch evolves.
25+
26+
## Source
27+
28+
- **Spec**: 001-robust-theme-switcher
29+
- **Release**: v0.1.0
30+
- **Date**: 2026-04-16
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"version": "0.1.0",
3+
"releaseDate": "2026-04-16",
4+
"release": {
5+
"from": "project-start",
6+
"to": "2026-04-16"
7+
},
8+
"previousVersion": "",
9+
"features": {
10+
"completed": 3,
11+
"deferred": 0
12+
},
13+
"quickfixes": 0,
14+
"pullRequests": {
15+
"merged": 7,
16+
"numbers": [16, 29, 38, 39, 40, 41, 42],
17+
"filesChanged": 0,
18+
"testsAdded": 0,
19+
"breakingChanges": 0,
20+
"resolvedHighFindings": 0
21+
},
22+
"adrs": 3,
23+
"commits": 152,
24+
"contributors": 1,
25+
"specs": [
26+
"001-build-artifact-separation",
27+
"001-merge-jsbootspark",
28+
"001-robust-theme-switcher"
29+
],
30+
"timestamp": "2026-04-16T00:00:00Z"
31+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Release Notes: v0.1.0
2+
3+
## Release Metadata
4+
5+
- **Version**: v0.1.0
6+
- **Release Date**: 2026-04-16
7+
- **Release Window**: project start → 2026-04-16
8+
- **Previous Version**: none
9+
- **Commits**: 152
10+
- **Contributors**: 1
11+
- **Merged PRs**: 7
12+
13+
## Highlights
14+
15+
BootstrapSpark v0.1.0 establishes the first formal release artifact set for the consolidated project. This release turns a set of completed feature specs into a documented, archiveable release with versioned notes, ADRs, and a reproducible GitHub release packaging path.
16+
17+
Functionally, the release captures three meaningful product and engineering milestones: the repo was consolidated and renamed to BootstrapSpark, the theme system was expanded into a richer Bootswatch-backed selector model, and the build/deployment workflow was cleaned up so generated output stops polluting normal source-control review.
18+
19+
## New Features
20+
21+
### Merge JsBootSpark Into BootstrapSpark
22+
23+
BootstrapSpark now acts as the single React-based Bootstrap showcase application, absorbing the distinct JsBootSpark feature surface into a unified SPA architecture and branding model.
24+
25+
**Spec**: [View archived spec](specs/001-merge-jsbootspark/spec.md)
26+
27+
### Robust Theme Switcher
28+
29+
The theming system evolved from a light/dark toggle into a resilient theme-selection experience centered on a BootstrapSpark default theme plus Bootswatch-backed options, local catalog ownership, and explicit fallback behavior.
30+
31+
**Spec**: [View archived spec](specs/001-robust-theme-switcher/spec.md)
32+
33+
### Build Artifact Separation
34+
35+
Build output and coverage reporting were formally separated from committed source so CI remains responsible for generated deployable output and local builds stop flooding git history with hashed asset churn.
36+
37+
**Spec**: [View archived spec](specs/001-build-artifact-separation/spec.md)
38+
39+
## Bug Fixes
40+
41+
No standalone quickfix records were included in this release.
42+
43+
## Breaking Changes
44+
45+
No breaking runtime changes were documented for this release.
46+
47+
## Deprecations
48+
49+
No deprecations were recorded for this release.
50+
51+
## Architectural Decisions
52+
53+
- **ADR-001**: Build artifacts are generated in CI, not stored in git - [View](../../decisions/ADR-001-build-artifacts-in-ci.md)
54+
- **ADR-002**: Consolidate BootstrapSpark as a single React SPA - [View](../../decisions/ADR-002-bootstrapspark-react-consolidation.md)
55+
- **ADR-003**: Use a local theme catalog and precompiled theme assets - [View](../../decisions/ADR-003-local-theme-catalog-and-precompiled-assets.md)
56+
57+
## Deferred Features
58+
59+
No active specs were deferred from this release window.
60+
61+
## Upgrade Guide
62+
63+
1. Pull the release commit and install dependencies as usual.
64+
2. Run `npm run build` before local production preview workflows that rely on generated `docs/` output.
65+
3. Push the matching git tag `v0.1.0` after the release commit if you want GitHub to publish the packaged release assets.
66+
67+
## Metrics
68+
69+
| Metric | Value |
70+
|--------|-------|
71+
| Features Delivered | 3 |
72+
| Bugs Fixed | 0 |
73+
| PRs Merged | 7 |
74+
| Files Changed | 0 |
75+
| Tests Added | 0 |
76+
| Breaking Changes | 0 |
77+
| ADRs Created | 3 |
78+
| Contributors | 1 |
79+
| Commits | 152 |
80+
81+
---
82+
83+
_Release documentation generated by /devspark.release v2.0.0_

.documentation/specs/001-build-artifact-separation/plan.md renamed to .documentation/releases/v0.1.0/specs/001-build-artifact-separation/plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,4 +161,4 @@ All gates pass. Ready for `/devspark.tasks`.
161161

162162
## Complexity Tracking
163163

164-
No constitution violations. Table not needed.
164+
No constitution violations. Table not needed.

.documentation/specs/001-build-artifact-separation/research.md renamed to .documentation/releases/v0.1.0/specs/001-build-artifact-separation/research.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@
2727

2828
**Decision**: Leave as-is (no action in this feature).
2929
**Rationale**: This plugin writes `docs/.nojekyll` for GitHub Pages compatibility. The project now uses Azure SWA, so it's unnecessary but harmless. Removing it is a separate cleanup concern.
30-
**Alternatives considered**: Remove the plugin — deferred to avoid scope creep.
30+
**Alternatives considered**: Remove the plugin — deferred to avoid scope creep.

.documentation/specs/001-build-artifact-separation/spec.md renamed to .documentation/releases/v0.1.0/specs/001-build-artifact-separation/spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,4 @@ This change will establish a clean boundary: **source files are committed, build
101101
- **SC-001**: [Measurable metric, e.g., "Users can complete account creation in under 2 minutes"]
102102
- **SC-002**: [Measurable metric, e.g., "System handles 1000 concurrent users without degradation"]
103103
- **SC-003**: [User satisfaction metric, e.g., "90% of users successfully complete primary task on first attempt"]
104-
- **SC-004**: [Business metric, e.g., "Reduce support tickets related to [X] by 50%"]
104+
- **SC-004**: [Business metric, e.g., "Reduce support tickets related to [X] by 50%"]

0 commit comments

Comments
 (0)