Compare commits
18
Commits
0.1.0
...
ba7196f412
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba7196f412 | ||
|
|
e8ed817d85 | ||
|
|
bca90c9921 | ||
|
|
7998cda2f7 | ||
|
|
1dbd692a20 | ||
|
|
4afa8ba33e | ||
|
|
a63fe47402 | ||
|
|
471654f24b | ||
|
|
dba81e6e7a | ||
|
|
9d4b046f5d | ||
|
|
cbcb9a4572 | ||
|
|
88991e353e | ||
|
|
63dbbdb971 | ||
|
|
b480ecb268 | ||
|
|
475a6cb634 | ||
|
|
f0c59a9b6f | ||
|
|
61ec0d839e | ||
|
|
382536168b |
@@ -59,8 +59,9 @@ luna-charts/
|
|||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
* Node.js `>= 22.0.0`
|
* [Node Version manager](https://github.com/nvm-sh/nvm/blob/master/README.md) `0.40.7`
|
||||||
* pnpm `11.11.0` (see `devEngines` in `package.json`; pnpm will be downloaded automatically via Corepack if missing)
|
* 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)
|
* Docker (required for running component/browser tests locally, see below)
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
@@ -91,17 +92,7 @@ pnpm install
|
|||||||
| `pnpm run lint` | Run the linter to check for code style and quality issues |
|
| `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 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) |
|
| `pnpm run test:browser` | Run browser tests (only works inside the `packages/luna-charts` directory) |
|
||||||
|
| `pnpm run storybook` | Start the storybook documentation |
|
||||||
### 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.
|
|
||||||
|
|
||||||
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).
|
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
|
# macOS-specific files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
# IDE specific files
|
||||||
|
.vscode
|
||||||
|
|||||||
+2
-2
@@ -10,8 +10,8 @@
|
|||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/starlight": "^0.41.3",
|
"@astrojs/starlight": "^0.41.9",
|
||||||
"astro": "^7.0.2",
|
"astro": "^7.2.9",
|
||||||
"sharp": "^0.34.5"
|
"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."
|
description: "Decision to use a pnpm-based monorepo structure for LUNA Charts."
|
||||||
---
|
---
|
||||||
|
|
||||||
* **Status:** Accepted
|
* **Status:** Accepted
|
||||||
* **Date:** 2026-07-12
|
* **Date:** 2026-07-12
|
||||||
* **Last Updated:** 2026-07-17
|
* **Last Updated:** 2026-08-31
|
||||||
* **Decision Makers:** LUNA Charts Maintainers
|
* **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."
|
description: "Selection of the technology stack for LUNA Charts based on the TOGAF architectural principles."
|
||||||
---
|
---
|
||||||
|
|
||||||
* **Status:** Accepted
|
* **Status:** Accepted
|
||||||
* **Date:** 2026-07-12
|
* **Date:** 2026-07-12
|
||||||
* **Last Updated:** 2006-07-17
|
* **Last Updated:** 2026-07-17
|
||||||
* **Decision Makers:** LUNA Charts Maintainers
|
* **Decision Makers:** LUNA Charts Maintainers
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -58,7 +58,7 @@ The following factors influenced the decision:
|
|||||||
| Code Formatting | Manual Formatting, Prettier | **Prettier** |
|
| Code Formatting | Manual Formatting, Prettier | **Prettier** |
|
||||||
| Static Analysis | TSLint, ESLint | **ESLint** |
|
| Static Analysis | TSLint, ESLint | **ESLint** |
|
||||||
| Versioning | Manual Versioning, Semantic Release, Changesets | **Changesets** |
|
| 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.
|
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."
|
description: "Decision to make LUNA Charts' public API available exclusively via Web Components."
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ luna-charts/
|
|||||||
│
|
│
|
||||||
├── examples/
|
├── examples/
|
||||||
│
|
│
|
||||||
├── .github/
|
├── .gitea/
|
||||||
│
|
│
|
||||||
├── package.json
|
├── package.json
|
||||||
└── pnpm-workspace.yaml
|
└── 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
|
<details>
|
||||||
|
<summary>**Completed:** Groundwork (v0.1.0)</summary>
|
||||||
The project is currently preparing the technical and organizational foundation for future development.
|
The project is preparing the technical and organizational foundation for future development.
|
||||||
|
|
||||||
Completed work includes:
|
Completed work includes:
|
||||||
|
|
||||||
- Repository structure
|
- **Repository structure:** Standardized layout for code, configurations, and assets.
|
||||||
- Development workflow
|
- **Development workflow: Definition of branching strategies, commit rules, and review processes.
|
||||||
- Architecture documentation (TOGAF ADM)
|
- **Architecture documentation (TOGAF ADM):** Architecture framework set up according to the TOGAF standard.
|
||||||
- Architecture Decision Records (ADRs)
|
- **Architecture Decision Records (ADRs 1-5):** System established for transparent documentation of architectural decisions.
|
||||||
- Project governance
|
- **Project governance:** Defined roles, responsibilities, and decision-making processes.
|
||||||
- Documentation infrastructure
|
- **Documentation infrastructure:** "Docs-as-Code" setup integrated into the repository.
|
||||||
|
|
||||||
At this stage, no production-ready chart components are available.
|
At this stage, no production-ready chart components are available.
|
||||||
|
|
||||||
---
|
</details>
|
||||||
|
|
||||||
## Upcoming Milestones
|
|
||||||
|
|
||||||
### Foundation
|
|
||||||
|
|
||||||
- Create the initial StencilJS library
|
|
||||||
- Establish Storybook for component development
|
|
||||||
- Configure testing infrastructure
|
|
||||||
- Configure CI/CD pipeline
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 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:
|
Goals include:
|
||||||
|
|
||||||
- SVG rendering
|
- **SVG rendering:** Implement a first chart component using SVG-based rendering.
|
||||||
- Accessibility validation
|
- **Accessibility validation:** Verify WCAG compliance with automated (axe-core) and manual (screen reader) testing.
|
||||||
- Framework integration
|
- **Framework integration:** Confirm the component works correctly when consumed from at
|
||||||
- Community feedback
|
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)
|
### Minimum Viable Product (MVP) v1.0.0
|
||||||
|
|
||||||
Provide the first publicly usable version of LUNA Charts.
|
|
||||||
|
|
||||||
|
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.
|
The MVP focuses on delivering value rather than completeness.
|
||||||
|
|
||||||
Expected outcomes include:
|
Expected outcomes include:
|
||||||
|
|
||||||
- Initial chart collection
|
- **Initial chart collection:** Ship a first stable set of chart types built on the validated architecture.
|
||||||
- Stable public API
|
- **Stable public API:** Freeze the public component API surface and document breaking-change policy.
|
||||||
- Documentation
|
- **Documentation:** Complete user-facing documentation (usage guides, API reference, accessibility notes).
|
||||||
- Example applications
|
- **Example applications:** Provide working examples for common framework integrations.
|
||||||
- Accessibility support
|
- **Accessibility support:** Ensure all shipped components meet the project's WCAG target across the full component set.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Community Growth
|
### 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:
|
Future work may include:
|
||||||
|
|
||||||
- Additional chart types
|
- **Additional chart types:** Expand the component library beyond the initial MVP set.
|
||||||
- Advanced customization
|
- **Advanced customization:** Add theming, styling, and configuration options requested by users.
|
||||||
- Performance improvements
|
- **Performance improvements:** Optimize rendering and bundle size based on real-world usage.
|
||||||
- Extended framework support
|
- **Extended framework support:** Broaden compatibility with additional frameworks and build tools.
|
||||||
- Community contributions
|
- **Community contributions:** Establish a smooth path for external contributors (good-first-issue labeling, contributor docs).
|
||||||
- Governance evolution
|
- **Governance evolution:** Revisit and evolve project governance as the contributor base grows.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+8
-6
@@ -11,6 +11,7 @@
|
|||||||
"changeset": "changeset",
|
"changeset": "changeset",
|
||||||
"version": "changeset version",
|
"version": "changeset version",
|
||||||
"release": "changeset publish",
|
"release": "changeset publish",
|
||||||
|
"storybook": "pnpm --filter luna-charts run storybook",
|
||||||
"test:unit": "pnpm --filter luna-charts test:unit",
|
"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: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"
|
"test": "pnpm test:unit && pnpm test:component"
|
||||||
@@ -19,18 +20,19 @@
|
|||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"devEngines": {
|
"devEngines": {
|
||||||
"runtime": {
|
|
||||||
"name": "node",
|
|
||||||
"version": ">=22.0.0"
|
|
||||||
},
|
|
||||||
"packageManager": {
|
"packageManager": {
|
||||||
"name": "pnpm",
|
"name": "pnpm",
|
||||||
"version": "11.11.0",
|
"version": "12.0.0",
|
||||||
"onFail": "download"
|
"onFail": "download"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"name": "node",
|
||||||
|
"version": ">=24.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"packageManager": "pnpm@12.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@changesets/cli": "^2.31.0",
|
"@changesets/cli": "^2.31.0",
|
||||||
"@eslint/js": "^10.0.1",
|
"@eslint/js": "^10.0.1",
|
||||||
"eslint": "^10.6.0",
|
"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/"
|
- "docs/"
|
||||||
|
|
||||||
allowBuilds:
|
allowBuilds:
|
||||||
esbuild: true
|
|
||||||
sharp: true
|
sharp: true
|
||||||
|
esbuild: true
|
||||||
|
playwright: true
|
||||||
|
|
||||||
onlyBuiltDependencies:
|
fetchTimeout: 300000
|
||||||
- playwright
|
fetchRetries: 10
|
||||||
|
|
||||||
supportedArchitectures:
|
supportedArchitectures:
|
||||||
os:
|
os:
|
||||||
- current
|
- current
|
||||||
- linux
|
|
||||||
cpu:
|
cpu:
|
||||||
- current
|
- current
|
||||||
- x64
|
|
||||||
libc:
|
libc:
|
||||||
- current
|
- current
|
||||||
- glibc
|
|
||||||
|
minimumReleaseAgeExclude:
|
||||||
|
- astro@7.2.9
|
||||||
|
|||||||
Reference in New Issue
Block a user