@devilsdev/rag-pipeline-utils 2.1.5 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -674
- package/README.md +395 -179
- package/bin/cli.js +14 -62
- package/contracts/embedder-contract.json +52 -0
- package/contracts/llm-contract.json +36 -0
- package/contracts/loader-contract.json +43 -0
- package/contracts/retriever-contract.json +68 -0
- package/dist/index.cjs +67 -0
- package/dist/index.mjs +51 -0
- package/package.json +108 -22
- package/.codecov.yml +0 -21
- package/.dockerignore +0 -14
- package/.eslintignore +0 -5
- package/.eslintrc.json +0 -28
- package/.github/PROJECT_ROADMAP.md +0 -102
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -8
- package/.github/release-template.md +0 -20
- package/.github/workflows/changelog-auto-commit.yml +0 -37
- package/.github/workflows/ci.yml +0 -53
- package/.github/workflows/docs-ci.yml +0 -46
- package/.github/workflows/docs-deploy.yml +0 -55
- package/.github/workflows/enforce-release-review.yml +0 -47
- package/.github/workflows/publish-release-blog.yml +0 -47
- package/.github/workflows/release-sync.yml +0 -50
- package/.github/workflows/roadmap-label-sync.yml +0 -35
- package/.github/workflows/roadmap-labels.yml +0 -67
- package/.github/workflows/roadmap-sync.yml +0 -44
- package/.github/workflows/sync-roadmap.yml +0 -62
- package/.husky/pre-commit +0 -6
- package/CHANGELOG.md +0 -97
- package/Dockerfile +0 -22
- package/Use-Cases.md +0 -134
- package/__tests__/fixtures/.ragrc.json +0 -8
- package/__tests__/fixtures/invalid-ragrc.json +0 -4
- package/__tests__/fixtures/sample-eval-dataset.json +0 -15
- package/__tests__/fixtures/sample.pdf +0 -1
- package/__tests__/fixtures/src/mocks/openai-embedder.js +0 -16
- package/__tests__/fixtures/src/mocks/openai-llm.js +0 -9
- package/__tests__/fixtures/src/mocks/pdf-loader.js +0 -17
- package/__tests__/fixtures/src/mocks/pinecone-retriever.js +0 -26
- package/__tests__/fixtures/valid-ragrc.json +0 -16
- package/__tests__/integration/cli/config-flow.test.js +0 -98
- package/__tests__/integration/config/load-config.test.js +0 -67
- package/__tests__/scripts/ensure-roadmap-labels.test.js +0 -64
- package/__tests__/unit/config/validate-schema.test.js +0 -121
- package/__tests__/unit/core/plugin-registry.test.js +0 -55
- package/__tests__/unit/reranker/__snapshots__/reranker.snapshot.test.js.snap +0 -15
- package/__tests__/unit/reranker/llm-reranker.test.js +0 -18
- package/__tests__/unit/reranker/reranker.enriched.test.js +0 -19
- package/__tests__/unit/reranker/reranker.fallback.test.js +0 -15
- package/__tests__/unit/reranker/reranker.snapshot.test.js +0 -15
- package/__tests__/unit/reranker/reranker.structured-output.test.js +0 -17
- package/codecov +0 -0
- package/codecov.SHA256SUM +0 -1
- package/codecov.SHA256SUM.sig +0 -16
- package/docs-site/README.md +0 -41
- package/docs-site/blog/2025-04-18-architecture-overview.md +0 -16
- package/docs-site/blog/2025-04-18-release-v2.1.1.md +0 -13
- package/docs-site/blog/2025-04-19-prompt-engineering-best-practices.md +0 -16
- package/docs-site/blog/2025-04-20-image-showcase.md +0 -14
- package/docs-site/blog/2025-04-20-release-2.1.1.md +0 -21
- package/docs-site/blog/2025-04-21-release-v2.1.3.md +0 -13
- package/docs-site/blog/2025-04-21-release-v2.1.4.md +0 -13
- package/docs-site/blog/authors.yml +0 -5
- package/docs-site/blog/tags.yml +0 -60
- package/docs-site/docs/Architecture.md +0 -76
- package/docs-site/docs/CLI.md +0 -69
- package/docs-site/docs/Evaluation.md +0 -61
- package/docs-site/docs/FAQ.md +0 -50
- package/docs-site/docs/Introduction.md +0 -58
- package/docs-site/docs/Plugins.md +0 -61
- package/docs-site/docs/Tutorials.md +0 -106
- package/docs-site/docs/Usage.md +0 -72
- package/docs-site/docs/Use-Cases.md +0 -77
- package/docs-site/docs/intro.mdx +0 -6
- package/docs-site/docusaurus.config.js +0 -88
- package/docs-site/package-lock.json +0 -17914
- package/docs-site/package.json +0 -47
- package/docs-site/sidebars.js +0 -39
- package/docs-site/src/components/HomepageFeatures/index.js +0 -56
- package/docs-site/src/components/HomepageFeatures/index.module.css +0 -57
- package/docs-site/src/components/HomepageHeader/index.js +0 -46
- package/docs-site/src/components/HomepageHeader/index.module.css +0 -77
- package/docs-site/src/css/custom.css +0 -104
- package/docs-site/src/pages/index.js +0 -20
- package/docs-site/src/pages/index.module.css +0 -23
- package/docs-site/src/pages/markdown-page.md +0 -7
- package/docs-site/static/.nojekyll +0 -0
- package/docs-site/static/img/authors/ali.jpg +0 -0
- package/docs-site/static/img/hero.jpg +0 -0
- package/docs-site/static/img/logo.png +0 -0
- package/docs-site/static/img/logo.svg +0 -6
- package/docs-site/static/img/social-card.jpg +0 -0
- package/jest.config.js +0 -24
- package/plugin.config.json +0 -14
- package/public/index.html +0 -0
- package/public/results/sample-eval.json +0 -0
- package/public/src/App.jsx +0 -57
- package/release.config.js +0 -36
- package/scripts/banner-injector.js +0 -102
- package/scripts/ci-runner.js +0 -51
- package/scripts/close-done-roadmap-issues.js +0 -65
- package/scripts/create-roadmap-issues.js +0 -47
- package/scripts/ensure-roadmap-labels.js +0 -73
- package/scripts/fix-mdx-blog-imports.js +0 -50
- package/scripts/fix-mdx-image-imports.js +0 -27
- package/scripts/generate-release-note.js +0 -40
- package/scripts/label-roadmap-issues.js +0 -125
- package/scripts/manual-test-checklist.md +0 -90
- package/scripts/repair-fixtures.js +0 -30
- package/scripts/setup.js +0 -31
- package/scripts/sync-labels.js +0 -71
- package/scripts/sync-roadmap-labels.js +0 -21
- package/scripts/tag-release.js +0 -64
- package/scripts/test-global-setup.js +0 -18
- package/scripts/validate-changelog-version.js +0 -48
- package/scripts/verify-fixture-mocks.js +0 -45
- package/scripts/verify-fixtures.js +0 -36
- package/server.js +0 -31
- package/src/config/load-config.js +0 -33
- package/src/config/load-plugin-config.js +0 -56
- package/src/config/validate-plugin-schema.js +0 -28
- package/src/config/validate-schema.js +0 -107
- package/src/core/create-pipeline.js +0 -96
- package/src/core/plugin-contracts.js +0 -21
- package/src/core/plugin-registry.js +0 -48
- package/src/dag/dag-engine.js +0 -70
- package/src/evaluate/evaluator.js +0 -44
- package/src/evaluate/scoring.js +0 -74
- package/src/loader/csv-loader.js +0 -30
- package/src/loader/directory-loader.js +0 -38
- package/src/loader/html-loader.js +0 -57
- package/src/loader/markdown-loader.js +0 -58
- package/src/mocks/openai-embedder.js +0 -30
- package/src/mocks/openai-llm.js +0 -18
- package/src/mocks/pdf-loader.js +0 -17
- package/src/mocks/pinecone-retriever.js +0 -25
- package/src/reranker/llm-reranker.js +0 -34
- package/src/utils/ci/diagnostic-reporter.js +0 -36
- package/src/utils/logger.js +0 -29
- package/src/utils/retry.js +0 -42
- package/src/utils/validate-plugin-contract.js +0 -36
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# 🛣️ Project Roadmap - RAG Pipeline Utils
|
|
2
|
-
|
|
3
|
-
> Version: 1.2.0
|
|
4
|
-
> Status: In Progress
|
|
5
|
-
> Last Updated: 2025-04-22
|
|
6
|
-
|
|
7
|
-
This roadmap guides the feature evolution, developer tooling, CI/CD automation, and community integration for the `@devilsdev/rag-pipeline-utils` project. Changes here are synchronized to GitHub Issues and CI workflows.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## ✅ Legend
|
|
12
|
-
|
|
13
|
-
| Symbol | Meaning |
|
|
14
|
-
|--------|---------|
|
|
15
|
-
| ✅ | Done |
|
|
16
|
-
| 🚧 | In Progress |
|
|
17
|
-
| 🔜 | Upcoming |
|
|
18
|
-
| 🧪 | Experimental |
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 📦 Phase 1: Foundation & CI/CD
|
|
23
|
-
|
|
24
|
-
| Feature | Status | Target Version | Tags |
|
|
25
|
-
|---------|--------|----------------|------|
|
|
26
|
-
| Automated test coverage with Jest | ✅ Done | v2.0.0 | test, ci |
|
|
27
|
-
| Codecov integration + badge | ✅ Done | v2.0.0 | ci, badge |
|
|
28
|
-
| GitHub Actions CI: lint, test, release | ✅ Done | v2.0.0 | ci |
|
|
29
|
-
| GitHub Pages deploy for Docusaurus | ✅ Done | v2.0.0 | docs, deploy |
|
|
30
|
-
| CHANGELOG auto-generation | ✅ Done | v2.0.0 | release |
|
|
31
|
-
| Blog post sync from changelog | ✅ Done | v2.1.0 | blog, release |
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## 🚀 Phase 2: Community & Docs
|
|
36
|
-
|
|
37
|
-
| Feature | Status | Target Version | Tags |
|
|
38
|
-
|---------|--------|----------------|------|
|
|
39
|
-
| Interactive onboarding via CLI | 🚧 In Progress | v2.2.0 | devx, onboarding |
|
|
40
|
-
| GitHub Discussions integration | 🔜 | v2.2.0 | community |
|
|
41
|
-
| Contributor guide & issue templates | ✅ Done | v2.0.0 | community, docs |
|
|
42
|
-
| Roadmap → GitHub Issues sync | ✅ Done | v2.1.0 | ci, roadmap |
|
|
43
|
-
| Label sync from roadmap | ✅ Done | v2.1.0 | ci, labels |
|
|
44
|
-
| Manual & automated blog generation | ✅ Done | v2.1.1 | blog, release |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## 🧠 Phase 3: Developer Tooling
|
|
49
|
-
|
|
50
|
-
| Feature | Status | Target Version | Tags |
|
|
51
|
-
|---------|--------|----------------|------|
|
|
52
|
-
| CLI for `release:tag` with changelog preview | ✅ Done | v2.1.1 | cli, release |
|
|
53
|
-
| Hydra.js integration for dynamic RAG config | 🚧 In Progress | v2.2.0 | config, hydra |
|
|
54
|
-
| CLI for roadmap issue tagging | ✅ Done | v2.1.1 | cli, roadmap |
|
|
55
|
-
| Status badge: Release Review Passed | ✅ Done | v2.1.1 | badge, ci |
|
|
56
|
-
| Kanban sync for roadmap issues | ✅ Done | v2.1.1 | roadmap, ci |
|
|
57
|
-
| Custom VS Code snippets & workspace | 🔜 | v2.3.0 | devx |
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## 🌐 Phase 4: International & Advanced UX
|
|
62
|
-
|
|
63
|
-
| Feature | Status | Target Version | Tags |
|
|
64
|
-
|---------|--------|----------------|------|
|
|
65
|
-
| Blog subscribe + RSS | ✅ Done | v2.1.1 | blog |
|
|
66
|
-
| i18n translation support | 🔜 | v2.3.0 | i18n |
|
|
67
|
-
| SEO optimization + open graph cards | ✅ Done | v2.1.1 | seo, meta |
|
|
68
|
-
| Comment system on blog posts | 🔜 | v2.3.0 | blog, community |
|
|
69
|
-
| Performance tuning + SSR check | ✅ Done | v2.1.0 | perf, ssr |
|
|
70
|
-
| Multilingual toggle in header | 🔜 | v2.3.0 | i18n, ui |
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## 🧩 Future Enhancements
|
|
75
|
-
|
|
76
|
-
| Feature | Status | Target Version | Tags |
|
|
77
|
-
|---------|--------|----------------|------|
|
|
78
|
-
| Plugin support via CLI | 🔜 | v2.4.0 | cli, plugin |
|
|
79
|
-
| Graph-based pipeline UI | 🔜 | v2.5.0 | ux, devx |
|
|
80
|
-
| Real-world RAG examples + use cases | 🔜 | v2.3.0 | docs, showcase |
|
|
81
|
-
| Prebuilt Docker image | 🔜 | v2.4.0 | infra, deploy |
|
|
82
|
-
| Slack/Discord webhook for releases | 🔜 | v2.3.0 | infra, notify |
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## 📊 Contributor Stats
|
|
87
|
-
|
|
88
|
-
- GitHub Insights Badge: 
|
|
89
|
-
- Roadmap Sync: `scripts/create-roadmap-issues.js`
|
|
90
|
-
- Label Sync: `scripts/ensure-roadmap-labels.js`
|
|
91
|
-
- CLI Integration: `scripts/release-changelog.js`, `scripts/sync-roadmap-cli.js`
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## 📁 Files
|
|
96
|
-
|
|
97
|
-
- `.github/PROJECT_ROADMAP.md` ← source
|
|
98
|
-
- `scripts/ensure-roadmap-labels.js` ← label sync
|
|
99
|
-
- `scripts/create-roadmap-issues.js` ← issue sync
|
|
100
|
-
- `scripts/close-roadmap-done.js` ← close done items
|
|
101
|
-
- `.github/workflows/sync-roadmap.yml` ← automation trigger
|
|
102
|
-
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
## ✅ Release Quality Checklist
|
|
2
|
-
|
|
3
|
-
- [ ] CHANGELOG.md updated
|
|
4
|
-
- [ ] Blog post generated (`docs-site/blog/*release*.md`)
|
|
5
|
-
- [ ] `release:tag` and `release:sync` flows tested
|
|
6
|
-
|
|
7
|
-
<!-- CI Badge -->
|
|
8
|
-

|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<!-- .github/release-template.md -->
|
|
2
|
-
|
|
3
|
-
# 🔖 Release v{{VERSION}}
|
|
4
|
-
|
|
5
|
-
**Published:** `{{DATE}}`
|
|
6
|
-
**Compare changes:** [View diff](https://github.com/DevilsDev/rag-pipeline-utils/compare/{{PREVIOUS_TAG}}...v{{VERSION}})
|
|
7
|
-
**Contributors:** `{{CONTRIBUTORS}}`
|
|
8
|
-
**Commits:** `{{COMMITS}}`
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## 📦 What's New
|
|
13
|
-
|
|
14
|
-
- Placeholder for changelog details or highlights.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 📘 Changelog
|
|
19
|
-
|
|
20
|
-
See full details in [CHANGELOG.md](../../CHANGELOG.md)
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Version: 1.0.0
|
|
2
|
-
# Description: Auto-commits CHANGELOG updates generated by tag-release CLI
|
|
3
|
-
# Author: Ali Kahwaji
|
|
4
|
-
|
|
5
|
-
name: 📘 Sync Changelog from CLI Tags
|
|
6
|
-
|
|
7
|
-
on:
|
|
8
|
-
push:
|
|
9
|
-
tags:
|
|
10
|
-
- 'v*'
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
commit-changelog:
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- name: ⬇️ Checkout repo
|
|
17
|
-
uses: actions/checkout@v4
|
|
18
|
-
|
|
19
|
-
- name: 🧰 Setup Node.js
|
|
20
|
-
uses: actions/setup-node@v4
|
|
21
|
-
with:
|
|
22
|
-
node-version: 20
|
|
23
|
-
|
|
24
|
-
- name: 📦 Install
|
|
25
|
-
run: npm ci
|
|
26
|
-
|
|
27
|
-
- name: 📝 Append Changelog Entry
|
|
28
|
-
run: |
|
|
29
|
-
VERSION=${GITHUB_REF#refs/tags/v}
|
|
30
|
-
node scripts/tag-release.js $VERSION
|
|
31
|
-
cat scripts/.cache/v$VERSION.log >> CHANGELOG.md
|
|
32
|
-
|
|
33
|
-
- name: 🔐 Commit changelog
|
|
34
|
-
uses: stefanzweifel/git-auto-commit-action@v5
|
|
35
|
-
with:
|
|
36
|
-
commit_message: "docs(changelog): update for v${{ github.ref_name }}"
|
|
37
|
-
file_pattern: "CHANGELOG.md"
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# .github/workflows/ci.yml
|
|
2
|
-
# Version: 1.0.0
|
|
3
|
-
# Description: Clean CI pipeline with lint, test, fixtures, coverage, and release
|
|
4
|
-
# Author: Ali Kahwaji
|
|
5
|
-
|
|
6
|
-
name: CI & Release
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
push:
|
|
10
|
-
branches: [main]
|
|
11
|
-
pull_request:
|
|
12
|
-
branches: [main]
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
build-test-release:
|
|
16
|
-
name: Lint, Test, and Release
|
|
17
|
-
runs-on: ubuntu-latest
|
|
18
|
-
|
|
19
|
-
steps:
|
|
20
|
-
- name: ⬇️ Checkout code
|
|
21
|
-
uses: actions/checkout@v4
|
|
22
|
-
|
|
23
|
-
- name: 🟢 Setup Node.js
|
|
24
|
-
uses: actions/setup-node@v4
|
|
25
|
-
with:
|
|
26
|
-
node-version: 20
|
|
27
|
-
cache: 'npm'
|
|
28
|
-
registry-url: 'https://registry.npmjs.org/'
|
|
29
|
-
|
|
30
|
-
- name: 📦 Install dependencies
|
|
31
|
-
run: npm ci
|
|
32
|
-
|
|
33
|
-
- name: 🧹 Lint
|
|
34
|
-
run: npm run lint
|
|
35
|
-
|
|
36
|
-
- name: ✅ Run tests with coverage
|
|
37
|
-
run: npm test
|
|
38
|
-
|
|
39
|
-
- name: 🧪 Validate Fixtures
|
|
40
|
-
run: npm run validate-fixtures
|
|
41
|
-
|
|
42
|
-
- name: 📊 Upload coverage to Codecov
|
|
43
|
-
uses: codecov/codecov-action@v5
|
|
44
|
-
with:
|
|
45
|
-
token: ${{ secrets.CODECOV_TOKEN }}
|
|
46
|
-
slug: DevilsDev/rag-pipeline-utils
|
|
47
|
-
|
|
48
|
-
- name: 🚀 Semantic Release
|
|
49
|
-
env:
|
|
50
|
-
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
|
|
51
|
-
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
52
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
53
|
-
run: npx semantic-release
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# .github/workflows/docs-ci.yml
|
|
2
|
-
# Version: 1.1.0
|
|
3
|
-
# Description: CI pipeline for linting, testing, and building docs
|
|
4
|
-
# Author: Ali Kahwaji
|
|
5
|
-
|
|
6
|
-
name: Docs CI
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
push:
|
|
10
|
-
branches: [main]
|
|
11
|
-
pull_request:
|
|
12
|
-
branches: [main]
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
build:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
|
|
18
|
-
steps:
|
|
19
|
-
- name: ⬇️ Checkout repository
|
|
20
|
-
uses: actions/checkout@v4
|
|
21
|
-
|
|
22
|
-
- name: 🟢 Setup Node.js
|
|
23
|
-
uses: actions/setup-node@v4
|
|
24
|
-
with:
|
|
25
|
-
node-version: '18'
|
|
26
|
-
cache: 'npm'
|
|
27
|
-
cache-dependency-path: 'package-lock.json'
|
|
28
|
-
|
|
29
|
-
- name: 📦 Install dependencies
|
|
30
|
-
run: npm ci
|
|
31
|
-
|
|
32
|
-
- name: 🧹 Lint codebase
|
|
33
|
-
run: npm run lint
|
|
34
|
-
|
|
35
|
-
- name: 🛠 Build documentation
|
|
36
|
-
run: npm run docs:build
|
|
37
|
-
|
|
38
|
-
- name: ✅ Run tests (optional)
|
|
39
|
-
run: npm test
|
|
40
|
-
if: ${{ always() }}
|
|
41
|
-
|
|
42
|
-
- name: 📦 Upload docs build (optional)
|
|
43
|
-
uses: actions/upload-artifact@v4
|
|
44
|
-
with:
|
|
45
|
-
name: docusaurus-build
|
|
46
|
-
path: docs-site/build
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
# .github/workflows/docs-deploy.yml
|
|
2
|
-
# Version: 1.1.0
|
|
3
|
-
# Description: Deploys Docusaurus docs site to GitHub Pages
|
|
4
|
-
# Author: Ali Kahwaji
|
|
5
|
-
|
|
6
|
-
name: 📚 Deploy Docusaurus Docs
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
push:
|
|
10
|
-
branches: [main]
|
|
11
|
-
paths:
|
|
12
|
-
- 'docs-site/**'
|
|
13
|
-
- 'docs/**'
|
|
14
|
-
- 'blog/**'
|
|
15
|
-
- 'sidebars.js'
|
|
16
|
-
- 'docusaurus.config.js'
|
|
17
|
-
- 'package.json'
|
|
18
|
-
|
|
19
|
-
permissions:
|
|
20
|
-
contents: write # Required for GitHub Pages deployment
|
|
21
|
-
|
|
22
|
-
jobs:
|
|
23
|
-
deploy:
|
|
24
|
-
name: Deploy to GitHub Pages
|
|
25
|
-
runs-on: ubuntu-latest
|
|
26
|
-
|
|
27
|
-
steps:
|
|
28
|
-
- name: Checkout repository
|
|
29
|
-
uses: actions/checkout@v4
|
|
30
|
-
|
|
31
|
-
- name: Setup Node.js
|
|
32
|
-
uses: actions/setup-node@v4
|
|
33
|
-
with:
|
|
34
|
-
node-version: '18'
|
|
35
|
-
cache: 'npm'
|
|
36
|
-
|
|
37
|
-
- name: Install dependencies
|
|
38
|
-
run: npm ci
|
|
39
|
-
|
|
40
|
-
- name: Build docs
|
|
41
|
-
run: npm run docs:build
|
|
42
|
-
|
|
43
|
-
- name: Configure Git user
|
|
44
|
-
run: |
|
|
45
|
-
git config --global user.name "GitHub Actions"
|
|
46
|
-
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
47
|
-
|
|
48
|
-
- name: Deploy to GitHub Pages
|
|
49
|
-
uses: peaceiris/actions-gh-pages@v4
|
|
50
|
-
with:
|
|
51
|
-
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
52
|
-
publish_dir: docs-site/build
|
|
53
|
-
publish_branch: gh-pages
|
|
54
|
-
user_name: github-actions[bot]
|
|
55
|
-
user_email: github-actions[bot]@users.noreply.github.com
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# .github/workflows/enforce-release-review.yml
|
|
2
|
-
# Version: 1.0.1
|
|
3
|
-
# Description: Prevents merge if changelog/blog updates not reviewed. Supports badge + manual trigger.
|
|
4
|
-
# Author: Ali Kahwaji
|
|
5
|
-
|
|
6
|
-
name: 🛡 Release Review Enforcement
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
pull_request:
|
|
10
|
-
branches: [main]
|
|
11
|
-
workflow_dispatch: # ✅ Manual trigger from Actions tab
|
|
12
|
-
|
|
13
|
-
permissions:
|
|
14
|
-
contents: read
|
|
15
|
-
pull-requests: write
|
|
16
|
-
|
|
17
|
-
jobs:
|
|
18
|
-
review-check:
|
|
19
|
-
name: Validate Changelog & Blog Updates
|
|
20
|
-
runs-on: ubuntu-latest
|
|
21
|
-
|
|
22
|
-
steps:
|
|
23
|
-
- name: 📥 Checkout repo
|
|
24
|
-
uses: actions/checkout@v4
|
|
25
|
-
|
|
26
|
-
- name: 🔍 Scan for changelog/blog edits
|
|
27
|
-
id: check
|
|
28
|
-
run: |
|
|
29
|
-
git fetch origin main --depth=1
|
|
30
|
-
CHANGED_FILES=$(git diff --name-only origin/main...HEAD)
|
|
31
|
-
|
|
32
|
-
echo "Changed files:"
|
|
33
|
-
echo "$CHANGED_FILES"
|
|
34
|
-
|
|
35
|
-
if echo "$CHANGED_FILES" | grep -qE 'CHANGELOG\.md|docs-site/blog/'; then
|
|
36
|
-
echo "✅ Changelog or blog post updated."
|
|
37
|
-
echo "result=pass" >> "$GITHUB_OUTPUT"
|
|
38
|
-
else
|
|
39
|
-
echo "❌ No changelog or blog edits found."
|
|
40
|
-
echo "result=fail" >> "$GITHUB_OUTPUT"
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
- name: 🚫 Fail if missing changelog or blog updates
|
|
44
|
-
if: steps.check.outputs.result == 'fail'
|
|
45
|
-
run: |
|
|
46
|
-
echo "Missing required changelog or blog post for release."
|
|
47
|
-
exit 1
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
name: Publish Release Blog Post
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
release:
|
|
5
|
-
types: [published]
|
|
6
|
-
|
|
7
|
-
jobs:
|
|
8
|
-
publish-blog-post:
|
|
9
|
-
runs-on: ubuntu-latest
|
|
10
|
-
|
|
11
|
-
steps:
|
|
12
|
-
- name: ⬇️ Checkout main branch
|
|
13
|
-
uses: actions/checkout@v4
|
|
14
|
-
with:
|
|
15
|
-
ref: main
|
|
16
|
-
fetch-depth: 0
|
|
17
|
-
|
|
18
|
-
- name: 🔧 Set up Node.js
|
|
19
|
-
uses: actions/setup-node@v4
|
|
20
|
-
with:
|
|
21
|
-
node-version: 18
|
|
22
|
-
|
|
23
|
-
- name: ✏️ Generate blog post
|
|
24
|
-
run: |
|
|
25
|
-
VERSION=${GITHUB_REF#refs/tags/}
|
|
26
|
-
DATE=$(date +'%Y-%m-%d')
|
|
27
|
-
FILE="docs-site/blog/${DATE}-release-${VERSION}.md"
|
|
28
|
-
|
|
29
|
-
echo "---" > $FILE
|
|
30
|
-
echo "slug: release-${VERSION}" >> $FILE
|
|
31
|
-
echo "title: ✨ Version ${VERSION} Released" >> $FILE
|
|
32
|
-
echo "authors: [ali]" >> $FILE
|
|
33
|
-
echo "tags: [release, changelog]" >> $FILE
|
|
34
|
-
echo "---" >> $FILE
|
|
35
|
-
echo >> $FILE
|
|
36
|
-
echo "RAG Pipeline Utils v${VERSION} is now available on NPM!" >> $FILE
|
|
37
|
-
echo >> $FILE
|
|
38
|
-
echo "#### Highlights" >> $FILE
|
|
39
|
-
echo "- 🚀 Auto-published blog from GitHub Release" >> $FILE
|
|
40
|
-
echo "- 📦 Version bump: ${VERSION}" >> $FILE
|
|
41
|
-
echo "- 📘 See CHANGELOG.md for full details" >> $FILE
|
|
42
|
-
|
|
43
|
-
- name: 📋 Commit blog post
|
|
44
|
-
uses: stefanzweifel/git-auto-commit-action@v5
|
|
45
|
-
with:
|
|
46
|
-
commit_message: "docs(blog): add release post for ${{ github.ref_name }}"
|
|
47
|
-
file_pattern: "docs-site/blog/*.md"
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# .github/workflows/release-sync.yml
|
|
2
|
-
# Version: 1.0.0
|
|
3
|
-
# Description: Syncs changelog/tag to blog post
|
|
4
|
-
# Author: Ali Kahwaji
|
|
5
|
-
|
|
6
|
-
name: 🔄 Release Sync
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
push:
|
|
10
|
-
tags:
|
|
11
|
-
- 'v*' # any pushed Git tag
|
|
12
|
-
paths:
|
|
13
|
-
- 'CHANGELOG.md'
|
|
14
|
-
- 'scripts/**'
|
|
15
|
-
- '.github/workflows/release-sync.yml'
|
|
16
|
-
|
|
17
|
-
permissions:
|
|
18
|
-
contents: write
|
|
19
|
-
id-token: write
|
|
20
|
-
|
|
21
|
-
jobs:
|
|
22
|
-
publish-release-blog:
|
|
23
|
-
name: 📝 Create Blog Post from CHANGELOG + Tag
|
|
24
|
-
runs-on: ubuntu-latest
|
|
25
|
-
|
|
26
|
-
steps:
|
|
27
|
-
- name: 🧾 Checkout Repo
|
|
28
|
-
uses: actions/checkout@v4
|
|
29
|
-
with:
|
|
30
|
-
fetch-depth: 0 # get full commit history for changelog diff
|
|
31
|
-
|
|
32
|
-
- name: 🧰 Setup Node
|
|
33
|
-
uses: actions/setup-node@v4
|
|
34
|
-
with:
|
|
35
|
-
node-version: 20
|
|
36
|
-
|
|
37
|
-
- name: 📦 Install deps
|
|
38
|
-
run: npm ci
|
|
39
|
-
|
|
40
|
-
- name: 🔁 Generate blog post
|
|
41
|
-
run: |
|
|
42
|
-
VERSION=${GITHUB_REF#refs/tags/}
|
|
43
|
-
PREV=$(git tag --sort=committerdate | grep -B1 $VERSION | head -n1)
|
|
44
|
-
node scripts/generate-release-note.js $VERSION $PREV
|
|
45
|
-
|
|
46
|
-
- name: 💬 Commit release blog
|
|
47
|
-
uses: stefanzweifel/git-auto-commit-action@v5
|
|
48
|
-
with:
|
|
49
|
-
commit_message: "docs(blog): auto-publish release notes for ${{ github.ref_name }}"
|
|
50
|
-
file_pattern: "docs-site/blog/*.md"
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
name: 🔖 Sync Roadmap Labels
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
paths:
|
|
6
|
-
- '.github/roadmap-labels.yml'
|
|
7
|
-
- 'scripts/sync-roadmap-labels.js'
|
|
8
|
-
workflow_dispatch:
|
|
9
|
-
|
|
10
|
-
permissions:
|
|
11
|
-
issues: write
|
|
12
|
-
contents: read
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
sync-labels:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
name: Sync Labels from Roadmap Config
|
|
18
|
-
|
|
19
|
-
steps:
|
|
20
|
-
- name: 📥 Checkout repo
|
|
21
|
-
uses: actions/checkout@v4
|
|
22
|
-
|
|
23
|
-
- name: 🛠 Setup Node.js
|
|
24
|
-
uses: actions/setup-node@v4
|
|
25
|
-
with:
|
|
26
|
-
node-version: 20
|
|
27
|
-
cache: 'npm'
|
|
28
|
-
|
|
29
|
-
- name: 📦 Install dependencies
|
|
30
|
-
run: npm ci
|
|
31
|
-
|
|
32
|
-
- name: 🔖 Run label sync script
|
|
33
|
-
run: node scripts/sync-roadmap-labels.js
|
|
34
|
-
env:
|
|
35
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# Version: 1.0.0
|
|
2
|
-
# Description: Ensures roadmap labels (priority, group) exist in the repo
|
|
3
|
-
# Author: Ali Kahwaji
|
|
4
|
-
|
|
5
|
-
name: 🔖 Sync Roadmap Labels
|
|
6
|
-
|
|
7
|
-
on:
|
|
8
|
-
workflow_dispatch:
|
|
9
|
-
push:
|
|
10
|
-
paths:
|
|
11
|
-
- '.github/workflows/roadmap-labels.yml'
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
sync-labels:
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- name: ⬇️ Checkout repository
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: 🟢 Setup Node.js
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: 20
|
|
25
|
-
|
|
26
|
-
- name: 📦 Install octokit
|
|
27
|
-
run: npm install octokit
|
|
28
|
-
|
|
29
|
-
- name: 🔖 Run label sync
|
|
30
|
-
env:
|
|
31
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
32
|
-
GITHUB_REPO: ${{ github.repository }}
|
|
33
|
-
run: |
|
|
34
|
-
node <<EOF
|
|
35
|
-
const { Octokit } = require("octokit");
|
|
36
|
-
|
|
37
|
-
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });
|
|
38
|
-
const [owner, repo] = process.env.GITHUB_REPO.split("/");
|
|
39
|
-
|
|
40
|
-
const labels = [
|
|
41
|
-
{ name: "priority: high", color: "e11d48", description: "High priority roadmap item" },
|
|
42
|
-
{ name: "priority: medium", color: "f59e0b", description: "Medium priority roadmap item" },
|
|
43
|
-
{ name: "priority: low", color: "10b981", description: "Low priority roadmap item" },
|
|
44
|
-
{ name: "group: docs", color: "6366f1", description: "Documentation features" },
|
|
45
|
-
{ name: "group: devx", color: "06b6d4", description: "Developer experience improvements" },
|
|
46
|
-
{ name: "group: community", color: "ec4899", description: "Community tools & engagement" },
|
|
47
|
-
{ name: "group: blog", color: "f97316", description: "Blog & SEO enhancements" },
|
|
48
|
-
{ name: "group: infra", color: "64748b", description: "Infrastructure & deployment features" }
|
|
49
|
-
];
|
|
50
|
-
|
|
51
|
-
(async () => {
|
|
52
|
-
const existing = await octokit.rest.issues.listLabelsForRepo({ owner, repo });
|
|
53
|
-
const existingNames = new Set(existing.data.map(l => l.name));
|
|
54
|
-
|
|
55
|
-
for (const label of labels) {
|
|
56
|
-
if (!existingNames.has(label.name)) {
|
|
57
|
-
console.log(`➕ Creating label: ${label.name}`);
|
|
58
|
-
await octokit.rest.issues.createLabel({ owner, repo, ...label });
|
|
59
|
-
} else {
|
|
60
|
-
console.log(`✅ Label already exists: ${label.name}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
})().catch(err => {
|
|
64
|
-
console.error("Label sync failed:", err);
|
|
65
|
-
process.exit(1);
|
|
66
|
-
});
|
|
67
|
-
EOF
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
name: 🚀 Roadmap Sync (Labels + Issues)
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
paths:
|
|
7
|
-
- '.github/roadmap-labels.yml'
|
|
8
|
-
- '.github/PROJECT_ROADMAP.md'
|
|
9
|
-
- 'scripts/create-roadmap-issues.js'
|
|
10
|
-
- 'scripts/ensure-roadmap-labels.js'
|
|
11
|
-
|
|
12
|
-
workflow_dispatch:
|
|
13
|
-
|
|
14
|
-
permissions:
|
|
15
|
-
issues: write
|
|
16
|
-
contents: read
|
|
17
|
-
|
|
18
|
-
jobs:
|
|
19
|
-
roadmap-sync:
|
|
20
|
-
name: 🔁 Sync Labels + Issues from Roadmap
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
|
|
23
|
-
steps:
|
|
24
|
-
- name: 📥 Checkout repository
|
|
25
|
-
uses: actions/checkout@v4
|
|
26
|
-
|
|
27
|
-
- name: 🛠 Setup Node.js
|
|
28
|
-
uses: actions/setup-node@v4
|
|
29
|
-
with:
|
|
30
|
-
node-version: 20
|
|
31
|
-
cache: 'npm'
|
|
32
|
-
|
|
33
|
-
- name: 📦 Install dependencies
|
|
34
|
-
run: npm ci
|
|
35
|
-
|
|
36
|
-
- name: 🔖 Sync GitHub labels from roadmap-labels.yml
|
|
37
|
-
run: node scripts/ensure-roadmap-labels.js
|
|
38
|
-
env:
|
|
39
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
40
|
-
|
|
41
|
-
- name: 📝 Create or update roadmap issues
|
|
42
|
-
run: node scripts/create-roadmap-issues.js
|
|
43
|
-
env:
|
|
44
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# .github/workflows/sync-roadmap.yml
|
|
2
|
-
# Version: 2.1.0
|
|
3
|
-
# Description: Unified workflow to sync roadmap issues, labels, and states
|
|
4
|
-
# Author: Ali Kahwaji
|
|
5
|
-
|
|
6
|
-
name: 🚀 Sync Roadmap to GitHub Issues
|
|
7
|
-
|
|
8
|
-
on:
|
|
9
|
-
workflow_dispatch:
|
|
10
|
-
push:
|
|
11
|
-
branches: [main]
|
|
12
|
-
paths:
|
|
13
|
-
- '.github/PROJECT_ROADMAP.md'
|
|
14
|
-
- '.github/workflows/sync-roadmap.yml'
|
|
15
|
-
- 'scripts/**.js'
|
|
16
|
-
|
|
17
|
-
permissions:
|
|
18
|
-
contents: write
|
|
19
|
-
issues: write
|
|
20
|
-
|
|
21
|
-
jobs:
|
|
22
|
-
sync:
|
|
23
|
-
name: 📌 Roadmap Sync
|
|
24
|
-
runs-on: ubuntu-latest
|
|
25
|
-
|
|
26
|
-
steps:
|
|
27
|
-
- name: ⬇️ Checkout
|
|
28
|
-
uses: actions/checkout@v4
|
|
29
|
-
|
|
30
|
-
- name: 🛠 Setup Node.js
|
|
31
|
-
uses: actions/setup-node@v4
|
|
32
|
-
with:
|
|
33
|
-
node-version: 20
|
|
34
|
-
|
|
35
|
-
- name: 📦 Install roadmap dependencies
|
|
36
|
-
run: npm install
|
|
37
|
-
env:
|
|
38
|
-
NODE_ENV: development
|
|
39
|
-
|
|
40
|
-
- name: 🔖 Ensure roadmap labels exist
|
|
41
|
-
run: node scripts/ensure-roadmap-labels.js
|
|
42
|
-
env:
|
|
43
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
44
|
-
GITHUB_REPO: ${{ github.repository }}
|
|
45
|
-
|
|
46
|
-
- name: 🗂 Sync roadmap issues
|
|
47
|
-
run: node scripts/create-roadmap-issues.js
|
|
48
|
-
env:
|
|
49
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
50
|
-
GITHUB_REPO: ${{ github.repository }}
|
|
51
|
-
|
|
52
|
-
- name: 🏷 Apply labels to roadmap issues
|
|
53
|
-
run: node scripts/label-roadmap-issues.js
|
|
54
|
-
env:
|
|
55
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
56
|
-
GITHUB_REPO: ${{ github.repository }}
|
|
57
|
-
|
|
58
|
-
- name: ✅ Close completed issues
|
|
59
|
-
run: node scripts/close-done-roadmap-issues.js
|
|
60
|
-
env:
|
|
61
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
62
|
-
GITHUB_REPO: ${{ github.repository }}
|