Skip to content

Commit f7fa8fb

Browse files
committed
chore: prepare v1.0.0 release
1 parent f68443f commit f7fa8fb

5 files changed

Lines changed: 158 additions & 135 deletions

File tree

.githooks/pre-commit

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@ if [ "$SKIP_TEST_COMPLIANCE" = "1" ]; then
66
exit 0
77
fi
88

9-
echo "Running unit-test compliance checks..."
10-
yarn test:compliance
9+
node ./scripts/precommit-compliance.mjs

README.md

Lines changed: 103 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,66 @@ This application was developed in the context of the CHIST-ERA TRIPLE project.
1414

1515
## Table of Contents
1616

17-
- [Project Overview](#project-overview)
18-
- [Quick Start](#quick-start)
19-
- [Scripts](#scripts)
20-
- [Unit Test Suite](#unit-test-suite)
21-
- [Git Workflow](#git-workflow)
22-
- [Web-App Version Tags](#web-app-version-tags)
23-
- [Deployment](#deployment)
24-
- [Dependency Versions](#dependency-versions)
25-
- [Ways to Get a Solid Pod](#ways-to-get-a-solid-pod)
26-
- [Guides](#guides)
27-
- [Contributing](#contributing)
28-
- [Contact](#contact)
29-
30-
## Project Overview
31-
32-
### Main capabilities
17+
- [Users](#users)
18+
- [Developers](#developers)
19+
20+
## Users
21+
22+
### What Solid Cockpit Does
23+
24+
Main capabilities:
3325

3426
- Solid Pod login and registration flow
3527
- File upload and pod resource operations
3628
- SPARQL querying over Solid Pods and endpoints
3729
- Query caching support
3830
- Privacy/ACL access management
3931

40-
### Tech stack
32+
### Accessing the App
33+
34+
Public deployment:
35+
36+
- <https://knowledgeonwebscale.github.io/solid-cockpit>
37+
38+
If you want to run locally, see [Developers](#developers).
39+
40+
### Ways to Get a Solid Pod
41+
42+
- [Community Solid Server](https://communitysolidserver.github.io/CommunitySolidServer/latest/): host a Pod locally or on your own server
43+
- [Solidcommunity.net](https://solidcommunity.net/): community-hosted Solid Pods
44+
- [Other Solid Pod Hosting Services](https://solidproject.org/for-developers#hosted-pod-services)
45+
46+
### Usage Guides
47+
48+
TRIPLE onboarding guide:
49+
50+
- [TRIPLE-guide.md](./TRIPLE-guide.md)
51+
52+
Solid Pod VoID file generation:
53+
54+
- <https://github.com/JervenBolleman/void-generator/tree/solid-pod-support>
55+
56+
Example:
57+
58+
```bash
59+
mvn package
60+
java -jar target/void-generator-0.7-SNAPSHOT-uber.jar \
61+
--from-solid-pod [URL-to-solid-pod] \
62+
--void-file void.ttl \
63+
-i [URL-to-solid-pod]/void.ttl \
64+
--repository [URL-to-solid-pod]
65+
```
66+
67+
Then upload `void.ttl` to the pod root using the app's `Data Upload` page.
68+
69+
### Contact and Support
70+
71+
- Discussions: <https://github.com/KNowledgeOnWebScale/solid-cockpit/discussions>
72+
- Issues: <https://github.com/KNowledgeOnWebScale/solid-cockpit/issues>
73+
74+
## Developers
75+
76+
### Tech Stack
4177

4278
- Vue 3 + Vite 6
4379
- TypeScript
@@ -46,38 +82,38 @@ This application was developed in the context of the CHIST-ERA TRIPLE project.
4682
- Inrupt Solid client/auth libraries
4783
- Comunica SPARQL engine
4884

49-
## Quick Start
50-
5185
### Prerequisites
5286

5387
- Node.js 20+
5488
- Yarn 1.x (repo currently uses `yarn.lock`)
5589

56-
### Install
90+
### Local Setup
91+
92+
Install dependencies:
5793

5894
```bash
5995
yarn install
6096
```
6197

62-
### Run locally
98+
Run locally:
6399

64100
```bash
65101
yarn dev
66102
```
67103

68-
### Build production assets
104+
Build production assets:
69105

70106
```bash
71107
yarn build
72108
```
73109

74-
### Preview production build
110+
Preview production build:
75111

76112
```bash
77113
yarn serve
78114
```
79115

80-
## Scripts
116+
### Scripts
81117

82118
| Script | Description |
83119
| --- | --- |
@@ -88,71 +124,50 @@ yarn serve
88124
| `yarn test:unit:watch` | Run unit tests in watch mode |
89125
| `yarn test:unit:coverage` | Run unit tests with coverage report generation |
90126
| `yarn test:unit:compliance` | Enforce unit-test + coverage thresholds |
127+
| `yarn test:unit:compliance:quiet` | Enforce unit coverage with concise output |
91128
| `yarn test:component` | Run Vue component tests (`.vue`) via Vitest |
92129
| `yarn test:component:watch` | Run Vue component tests in watch mode |
93130
| `yarn test:component:coverage` | Run Vue component tests with coverage |
94131
| `yarn test:component:compliance` | Enforce Vue component test coverage thresholds |
95-
| `yarn test:compliance` | Run both unit and component compliance checks |
132+
| `yarn test:component:compliance:quiet` | Enforce component coverage with concise output |
133+
| `yarn test:compliance` | Run full (unit + component) compliance checks |
134+
| `yarn test:compliance:quiet` | Run full compliance checks with concise output |
96135
| `yarn hooks:install` | Configure local git hooks path (`.githooks`) |
97136
| `yarn github-post-build` | Create route-compatible `index.html` copies in `dist/` |
98137
| `yarn deploy` | Publish `dist/` to GitHub Pages |
99138

100-
## Unit Test Suite
139+
### Testing and Coverage
101140

102-
The project includes a unit test suite under `tests/unit/`.
141+
Unit test suite:
103142

104-
### Current coverage focus
143+
- Location: `tests/unit/`
144+
- Command: `yarn test:unit`
105145

106-
- Upload helper behavior (`fileUploadUtils.ts`)
107-
- Query utility behavior (`queryPodUtils.ts`)
108-
- COI fetch wrapper behavior (`z3-headers.ts`)
109-
- Auth/session workflow behavior (`login.ts`)
110-
- Data-access error-path behavior (`getData.ts`)
111-
- Privacy utility/error-path behavior (`privacyEdit.ts`)
146+
Component test suite:
112147

113-
### Run tests
148+
- Location: `tests/components/`
149+
- Command: `yarn test:component`
150+
- Includes focused `ThemeSwitch` + `TheFooter` tests and full `.vue` smoke mounts in `tests/components/AllComponentsSmoke.test.ts`
114151

115-
```bash
116-
yarn test:unit
117-
```
118-
119-
### Run Vue component tests
120-
121-
```bash
122-
yarn test:component
123-
```
124-
125-
Component suite includes:
126-
127-
- focused behavior tests for `ThemeSwitch` and `TheFooter` inside `tests/components/AllComponentsSmoke.test.ts`
128-
- an all-components smoke suite in the same file that mounts every `.vue` file under `src/components/**`
129-
130-
### Coverage tracker
152+
Coverage tracker:
131153

132154
```bash
133155
yarn test:unit:coverage
134156
```
135157

136158
This command:
137159

138-
- runs the full unit-test suite with Node coverage enabled
160+
- runs the unit test suite with Node coverage enabled
139161
- writes machine-readable output to `coverage/unit-coverage-summary.json`
140162
- writes a readable summary to `coverage/unit-coverage-summary.txt`
141163

142-
### Compliance thresholds
143-
144-
```bash
145-
yarn test:unit:compliance
146-
yarn test:component:compliance
147-
```
148-
149-
Default enforced thresholds for tracked files:
164+
Compliance thresholds (gating):
150165

151166
- line coverage: `98%`
152167
- branch coverage: `90%`
153168
- function coverage: `100%`
154169

155-
Tracked (gating) files:
170+
Tracked files:
156171

157172
- `src/components/fileUploadUtils.ts`
158173
- `src/components/mime_types.js`
@@ -165,60 +180,51 @@ Advisory (non-gating) coverage is also reported for:
165180
- `src/components/getData.ts`
166181
- `src/components/privacyEdit.ts`
167182

168-
You can override thresholds with env vars:
183+
Override thresholds with env vars:
169184

170185
- `UNIT_COVERAGE_LINES`
171186
- `UNIT_COVERAGE_BRANCHES`
172187
- `UNIT_COVERAGE_FUNCS`
173188

174-
## Git Workflow
175-
176-
### Commit-time compliance check
189+
### Git Workflow
177190

178-
A pre-commit hook is defined at `.githooks/pre-commit` and runs:
191+
Commit-time compliance check:
179192

180-
```bash
181-
yarn test:compliance
182-
```
193+
- Hook file: `.githooks/pre-commit`
194+
- Command run by hook: `node ./scripts/precommit-compliance.mjs`
195+
- Hook output is intentionally concise on pass and detailed on failure.
183196

184197
Install hooks locally:
185198

186199
```bash
187200
yarn hooks:install
188201
```
189202

190-
If automatic hook setup is blocked in your environment, run:
203+
If automatic hook setup is blocked in your environment:
191204

192205
```bash
193206
git config --local core.hooksPath .githooks
194207
```
195208

196-
### CI compliance check
209+
CI compliance check:
197210

198-
GitHub Actions workflow `.github/workflows/unit-test-compliance.yml` also enforces:
211+
- Workflow: `.github/workflows/unit-test-compliance.yml`
212+
- Enforces unit tests, component tests, and coverage thresholds.
199213

200-
- unit tests passing
201-
- component tests passing
202-
- coverage thresholds passing
214+
### Web-App Version Tags
203215

204-
## Web-App Version Tags
205-
206-
### Current app version
216+
Current app version:
207217

208218
- `package.json` version: `1.0.0`
209219
- web-app release tag convention: `web-app-v<version>`
210220
- current computed web-app tag: `web-app-v1.0.0`
211221

212-
### In-app visibility
213-
214-
The footer displays both:
215-
216-
- semantic app version (`vX.Y.Z`)
217-
- computed web-app release tag (`web-app-vX.Y.Z`)
222+
In-app visibility:
218223

219-
Both values are injected at build time from `package.json` via Vite defines.
224+
- Footer displays semantic version (`vX.Y.Z`) and computed release tag (`web-app-vX.Y.Z`)
225+
- Values are injected at build time from `package.json` via Vite defines
220226

221-
### Recommended release workflow
227+
Recommended release workflow:
222228

223229
1. Update version:
224230

@@ -241,19 +247,19 @@ git tag web-app-vX.Y.Z
241247
git push origin vX.Y.Z web-app-vX.Y.Z
242248
```
243249

244-
## Deployment
250+
### Deployment
245251

246-
The project is configured for GitHub Pages deployment.
252+
GitHub Pages deployment setup:
247253

248254
- `vite.config.js` uses `/solid-cockpit/` base path for production
249255
- `yarn github-post-build` prepares route folders in `dist/`
250256
- `yarn deploy` publishes `dist/` via `gh-pages`
251257

252-
## Dependency Versions
258+
### Dependency Versions
253259

254-
Below are the direct dependency versions currently declared in `package.json`.
260+
Direct dependency versions currently declared in `package.json`.
255261

256-
### Runtime dependencies
262+
Runtime dependencies:
257263

258264
| Package | Version |
259265
| --- | --- |
@@ -280,59 +286,27 @@ Below are the direct dependency versions currently declared in `package.json`.
280286
| `vuetify` | `^3.5.14` |
281287
| `z3-solver` | `^4.15.3` |
282288

283-
### Development dependencies
289+
Development dependencies:
284290

285291
| Package | Version |
286292
| --- | --- |
287293
| `@tsconfig/node20` | `^20.1.5` |
288294
| `@typescript-eslint/eslint-plugin` | `^5.4.0` |
289295
| `@typescript-eslint/parser` | `^5.4.0` |
296+
| `@vitest/coverage-v8` | `2.1.9` |
297+
| `@vue/test-utils` | `2.4.6` |
290298
| `eslint` | `^7.32.0` |
291299
| `eslint-config-prettier` | `^8.3.0` |
292300
| `eslint-plugin-prettier` | `^4.0.0` |
293301
| `eslint-plugin-vue` | `^8.0.3` |
294302
| `gh-pages` | `^5.0.0` |
303+
| `jsdom` | `24.1.3` |
295304
| `prettier` | `^2.4.1` |
296305
| `typescript` | `^5.0.0` |
306+
| `vitest` | `2.1.9` |
297307

298-
## Ways to Get a Solid Pod
299-
300-
- [Community Solid Server](https://communitysolidserver.github.io/CommunitySolidServer/latest/): host a Pod locally or on your own server
301-
- [Solidcommunity.net](https://solidcommunity.net/): community-hosted Solid Pods
302-
- [Other Solid Pod Hosting Services](https://solidproject.org/for-developers#hosted-pod-services)
303-
304-
## Guides
305-
306-
### TRIPLE guide
307-
308-
See [TRIPLE-guide.md](./TRIPLE-guide.md).
309-
310-
### Solid Pod VoID file generation
311-
312-
Tool reference:
313-
314-
- <https://github.com/JervenBolleman/void-generator/tree/solid-pod-support>
315-
316-
Example:
317-
318-
```bash
319-
mvn package
320-
java -jar target/void-generator-0.7-SNAPSHOT-uber.jar \
321-
--from-solid-pod [URL-to-solid-pod] \
322-
--void-file void.ttl \
323-
-i [URL-to-solid-pod]/void.ttl \
324-
--repository [URL-to-solid-pod]
325-
```
326-
327-
Then upload `void.ttl` to the pod root using the app's `Data Upload` page.
328-
329-
## Contributing
308+
### Contributing
330309

331310
- Open pull requests against the `main` branch
332311
- Use GitHub Issues for bug reports
333312
- Use GitHub Discussions for broader questions and ideas
334-
335-
## Contact
336-
337-
- Discussions: <https://github.com/KNowledgeOnWebScale/solid-cockpit/discussions>
338-
- Issues: <https://github.com/KNowledgeOnWebScale/solid-cockpit/issues>

0 commit comments

Comments
 (0)