Compare commits
17
Commits
0.1.0
..
e8ed817d85
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8ed817d85 | ||
|
|
bca90c9921 | ||
|
|
7998cda2f7 | ||
|
|
1dbd692a20 | ||
|
|
4afa8ba33e | ||
|
|
a63fe47402 | ||
|
|
471654f24b | ||
|
|
dba81e6e7a | ||
|
|
9d4b046f5d | ||
|
|
cbcb9a4572 | ||
|
|
88991e353e | ||
|
|
63dbbdb971 | ||
|
|
b480ecb268 | ||
|
|
475a6cb634 | ||
|
|
f0c59a9b6f | ||
|
|
61ec0d839e | ||
|
|
382536168b |
@@ -59,8 +59,9 @@ luna-charts/
|
||||
|
||||
### Prerequisites
|
||||
|
||||
* Node.js `>= 22.0.0`
|
||||
* pnpm `11.11.0` (see `devEngines` in `package.json`; pnpm will be downloaded automatically via Corepack if missing)
|
||||
* [Node Version manager](https://github.com/nvm-sh/nvm/blob/master/README.md) `0.40.7`
|
||||
* Node.js `>= 24.0.0`. Use `nvm install 24` for it
|
||||
* pnpm `12.0.0`
|
||||
* Docker (required for running component/browser tests locally, see below)
|
||||
|
||||
### Installation
|
||||
@@ -91,17 +92,7 @@ pnpm install
|
||||
| `pnpm run lint` | Run the linter to check for code style and quality issues |
|
||||
| `pnpm run format` | Run the formatter to automatically fix code style issues |
|
||||
| `pnpm run test:browser` | Run browser tests (only works inside the `packages/luna-charts` directory) |
|
||||
|
||||
### Storybook
|
||||
|
||||
Storybook currently needs to be started from within the library package directly:
|
||||
|
||||
```bash
|
||||
cd packages/luna-charts
|
||||
pnpm run storybook
|
||||
```
|
||||
|
||||
> **Note:** Running Storybook from the repository root isn't set up yet. This is a known gap — contributions to add a root-level `pnpm --filter` script are welcome.
|
||||
| `pnpm run storybook` | Start the storybook documentation |
|
||||
|
||||
Component and browser tests run inside Docker (`docker-compose.test.yaml`), based on the same `Dockerfile.test` used to build the image CI tests against, to guarantee a reproducible browser environment — you don't need Playwright browsers installed locally. Locally this image is built on demand; in CI a prebuilt version of the same image is pulled directly (see [ADR-0002](./docs/src/content/docs/architecture/adr/000200-technology-stack.mdx) and the [Technology Architecture](./docs/src/content/docs/architecture/adm/technology-architecture.mdx#66-test-execution-environment) doc for details).
|
||||
|
||||
|
||||
@@ -19,3 +19,6 @@ pnpm-debug.log*
|
||||
|
||||
# macOS-specific files
|
||||
.DS_Store
|
||||
|
||||
# IDE specific files
|
||||
.vscode
|
||||
|
||||
+2
-2
@@ -10,8 +10,8 @@
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/starlight": "^0.41.3",
|
||||
"astro": "^7.0.2",
|
||||
"@astrojs/starlight": "^0.41.9",
|
||||
"astro": "^7.2.9",
|
||||
"sharp": "^0.34.5"
|
||||
}
|
||||
}
|
||||
Generated
-4323
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
allowBuilds:
|
||||
esbuild: true
|
||||
sharp: true
|
||||
@@ -1,11 +1,11 @@
|
||||
---
|
||||
title: "ADR-0001000: Repository Structure"
|
||||
title: "ADR-000100: Repository Structure"
|
||||
description: "Decision to use a pnpm-based monorepo structure for LUNA Charts."
|
||||
---
|
||||
|
||||
* **Status:** Accepted
|
||||
* **Date:** 2026-07-12
|
||||
* **Last Updated:** 2026-07-17
|
||||
* **Last Updated:** 2026-08-31
|
||||
* **Decision Makers:** LUNA Charts Maintainers
|
||||
|
||||
---
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
---
|
||||
title: "ADR-0002000: Technology Stack"
|
||||
title: "ADR-000200: Technology Stack"
|
||||
description: "Selection of the technology stack for LUNA Charts based on the TOGAF architectural principles."
|
||||
---
|
||||
|
||||
* **Status:** Accepted
|
||||
* **Date:** 2026-07-12
|
||||
* **Last Updated:** 2006-07-17
|
||||
* **Last Updated:** 2026-07-17
|
||||
* **Decision Makers:** LUNA Charts Maintainers
|
||||
|
||||
---
|
||||
@@ -58,7 +58,7 @@ The following factors influenced the decision:
|
||||
| Code Formatting | Manual Formatting, Prettier | **Prettier** |
|
||||
| Static Analysis | TSLint, ESLint | **ESLint** |
|
||||
| Versioning | Manual Versioning, Semantic Release, Changesets | **Changesets** |
|
||||
| Continuous Integration | GitLab CI, Azure Pipelines, GitHub Actions | **GitHub Actions** |
|
||||
| Continuous Integration | GitLab CI, Azure Pipelines, Gitea Actions | **Gitea Actions** |
|
||||
|
||||
The selected technologies best support the project's architectural goals while remaining broadly adopted and well documented.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "ADR-0003000: Web Components as Public API"
|
||||
title: "ADR-000300: Web Components as Public API"
|
||||
description: "Decision to make LUNA Charts' public API available exclusively via Web Components."
|
||||
---
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ luna-charts/
|
||||
│
|
||||
├── examples/
|
||||
│
|
||||
├── .github/
|
||||
├── .gitea/
|
||||
│
|
||||
├── package.json
|
||||
└── pnpm-workspace.yaml
|
||||
|
||||
@@ -11,77 +11,86 @@ Instead of implementing features immediately, the project establishes a solid ar
|
||||
|
||||
---
|
||||
|
||||
## Current Status
|
||||
## Completed Milestones ✅
|
||||
|
||||
**Current Phase:** Groundwork
|
||||
|
||||
The project is currently preparing the technical and organizational foundation for future development.
|
||||
<details>
|
||||
<summary>**Completed:** Groundwork (v0.1.0)</summary>
|
||||
The project is preparing the technical and organizational foundation for future development.
|
||||
|
||||
Completed work includes:
|
||||
|
||||
- Repository structure
|
||||
- Development workflow
|
||||
- Architecture documentation (TOGAF ADM)
|
||||
- Architecture Decision Records (ADRs)
|
||||
- Project governance
|
||||
- Documentation infrastructure
|
||||
- **Repository structure:** Standardized layout for code, configurations, and assets.
|
||||
- **Development workflow: Definition of branching strategies, commit rules, and review processes.
|
||||
- **Architecture documentation (TOGAF ADM):** Architecture framework set up according to the TOGAF standard.
|
||||
- **Architecture Decision Records (ADRs 1-5):** System established for transparent documentation of architectural decisions.
|
||||
- **Project governance:** Defined roles, responsibilities, and decision-making processes.
|
||||
- **Documentation infrastructure:** "Docs-as-Code" setup integrated into the repository.
|
||||
|
||||
At this stage, no production-ready chart components are available.
|
||||
|
||||
---
|
||||
|
||||
## Upcoming Milestones
|
||||
|
||||
### Foundation
|
||||
|
||||
- Create the initial StencilJS library
|
||||
- Establish Storybook for component development
|
||||
- Configure testing infrastructure
|
||||
- Configure CI/CD pipeline
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
### First Proof of Concept
|
||||
## Current Status ⏳
|
||||
|
||||
Deliver the first functional chart implementation to validate the technical architecture.
|
||||
### Foundation v0.2.0
|
||||
|
||||
This milestone focuses on setting up the technical core of the component library. The goal is to build an automated,
|
||||
testable, and documented environment for efficient StencilJS component development.
|
||||
|
||||
- **Create the initial StencilJS library:** Initialize the codebase and core configurations for the web component engine.
|
||||
- **Establish Storybook for component development:** Set up Storybook as the development environment and isolated playground for component creation.
|
||||
- **Configure testing infrastructure:** Configure unit, integration, or visual regression testing frameworks.
|
||||
- **Configure CI/CD pipeline:** Automate linting, testing, and initial build checks on every repository push or pull request.
|
||||
|
||||
---
|
||||
|
||||
## Upcoming Milestones 🚀
|
||||
|
||||
### First Proof of Concept v0.3.0
|
||||
|
||||
This milestone focuses on validating the core technical and accessibility assumptions of the library through a first
|
||||
working implementation. The goal is to prove that the chosen architecture (SVG rendering, Web Components, accessibility-first
|
||||
approach) actually works in practice before committing to a broader component set.
|
||||
Goals include:
|
||||
|
||||
- SVG rendering
|
||||
- Accessibility validation
|
||||
- Framework integration
|
||||
- Community feedback
|
||||
- **SVG rendering:** Implement a first chart component using SVG-based rendering.
|
||||
- **Accessibility validation:** Verify WCAG compliance with automated (axe-core) and manual (screen reader) testing.
|
||||
- **Framework integration:** Confirm the component works correctly when consumed from at
|
||||
least one external framework (e.g. React or Vue).
|
||||
- **Community feedback:** Share the proof of concept for early feedback before scaling to further components.
|
||||
|
||||
---
|
||||
|
||||
### Minimum Viable Product (MVP)
|
||||
|
||||
Provide the first publicly usable version of LUNA Charts.
|
||||
### Minimum Viable Product (MVP) v1.0.0
|
||||
|
||||
This milestone marks the first public-ready release. The goal is a stable, documented,
|
||||
and accessible set of chart components that can be safely adopted by external users.
|
||||
The MVP focuses on delivering value rather than completeness.
|
||||
|
||||
Expected outcomes include:
|
||||
|
||||
- Initial chart collection
|
||||
- Stable public API
|
||||
- Documentation
|
||||
- Example applications
|
||||
- Accessibility support
|
||||
- **Initial chart collection:** Ship a first stable set of chart types built on the validated architecture.
|
||||
- **Stable public API:** Freeze the public component API surface and document breaking-change policy.
|
||||
- **Documentation:** Complete user-facing documentation (usage guides, API reference, accessibility notes).
|
||||
- **Example applications:** Provide working examples for common framework integrations.
|
||||
- **Accessibility support:** Ensure all shipped components meet the project's WCAG target across the full component set.
|
||||
|
||||
---
|
||||
|
||||
### Community Growth
|
||||
|
||||
After the MVP, the project will gradually expand.
|
||||
|
||||
With a stable MVP in place, this milestone shifts focus toward expanding the library's reach,
|
||||
capabilities, and contributor base.
|
||||
Future work may include:
|
||||
|
||||
- Additional chart types
|
||||
- Advanced customization
|
||||
- Performance improvements
|
||||
- Extended framework support
|
||||
- Community contributions
|
||||
- Governance evolution
|
||||
- **Additional chart types:** Expand the component library beyond the initial MVP set.
|
||||
- **Advanced customization:** Add theming, styling, and configuration options requested by users.
|
||||
- **Performance improvements:** Optimize rendering and bundle size based on real-world usage.
|
||||
- **Extended framework support:** Broaden compatibility with additional frameworks and build tools.
|
||||
- **Community contributions:** Establish a smooth path for external contributors (good-first-issue labeling, contributor docs).
|
||||
- **Governance evolution:** Revisit and evolve project governance as the contributor base grows.
|
||||
|
||||
---
|
||||
|
||||
@@ -89,4 +98,4 @@ Future work may include:
|
||||
|
||||
LUNA Charts aims to become an accessible, framework-independent charting library that combines modern Web Components with a transparent architecture and a sustainable open-source development model.
|
||||
|
||||
Every milestone builds upon the architectural foundation established during the Groundwork phase.
|
||||
Every milestone builds upon the architectural foundation established during the Groundwork phase.
|
||||
|
||||
+8
-6
@@ -11,6 +11,7 @@
|
||||
"changeset": "changeset",
|
||||
"version": "changeset version",
|
||||
"release": "changeset publish",
|
||||
"storybook": "pnpm --filter luna-charts run storybook",
|
||||
"test:unit": "pnpm --filter luna-charts test:unit",
|
||||
"test:component": "docker compose -f docker-compose.test.yaml up --build --abort-on-container-exit --exit-code-from test",
|
||||
"test": "pnpm test:unit && pnpm test:component"
|
||||
@@ -19,18 +20,19 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devEngines": {
|
||||
"runtime": {
|
||||
"name": "node",
|
||||
"version": ">=22.0.0"
|
||||
},
|
||||
"packageManager": {
|
||||
"name": "pnpm",
|
||||
"version": "11.11.0",
|
||||
"version": "12.0.0",
|
||||
"onFail": "download"
|
||||
},
|
||||
"runtime": {
|
||||
"name": "node",
|
||||
"version": ">=24.0.0"
|
||||
}
|
||||
},
|
||||
"packageManager": "pnpm@12.0.0",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"devDependencies": {
|
||||
"@changesets/cli": "^2.31.0",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"eslint": "^10.6.0",
|
||||
|
||||
Generated
+1317
-1059
File diff suppressed because it is too large
Load Diff
+7
-6
@@ -3,19 +3,20 @@ packages:
|
||||
- "docs/"
|
||||
|
||||
allowBuilds:
|
||||
esbuild: true
|
||||
sharp: true
|
||||
esbuild: true
|
||||
playwright: true
|
||||
|
||||
onlyBuiltDependencies:
|
||||
- playwright
|
||||
fetchTimeout: 300000
|
||||
fetchRetries: 10
|
||||
|
||||
supportedArchitectures:
|
||||
os:
|
||||
- current
|
||||
- linux
|
||||
cpu:
|
||||
- current
|
||||
- x64
|
||||
libc:
|
||||
- current
|
||||
- glibc
|
||||
|
||||
minimumReleaseAgeExclude:
|
||||
- astro@7.2.9
|
||||
|
||||
Reference in New Issue
Block a user