Skip to content
This repository was archived by the owner on May 20, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
154 changes: 0 additions & 154 deletions .circleci/config.yml

This file was deleted.

6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
95 changes: 95 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: CI

on:
push:
branches: ['master*']
pull_request:
workflow_dispatch:

env:
retention-comment: This comment will be **updated** with the data of the **last successful** build of this PR.

jobs:
compliance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: REUSE compliance check
run: |
pip install reuse
reuse lint

build-and-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: ['22.x', '24.x']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
backend/node_modules
frontend/node_modules
key: ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('backend/package.json', 'frontend/package.json') }}
- name: Install & build frontend
working-directory: frontend
run: npm install && npm run build
- name: Test frontend
working-directory: frontend
run: npm run test
- name: Build backend
working-directory: backend
run: npm run backend
- name: Copy frontend artifact
working-directory: backend
run: npm run frontend:copy
- name: Webpack backend
working-directory: backend
run: npm run webpack-prod
- name: Create .vsix
run: npx vsce package .
working-directory: backend
- name: Test backend
working-directory: backend
run: npm run test
- name: Merge coverage reports
run: |
cp ./frontend/coverage/lcov.info ./backend/reports/coverage/lcov_frontend.info
./backend/node_modules/.bin/lcov-result-merger './backend/reports/coverage/lco*.info' './backend/reports/coverage/lcov_merged.info'
- name: Upload coverage to Coveralls
if: matrix.node-version == '24.x'
uses: coverallsapp/github-action@v2
with:
file: backend/reports/coverage/lcov_merged.info
- name: Lint commit message
if: github.event_name == 'push'
working-directory: backend
run: echo "${{ github.event.head_commit.message }}" | npx commitlint

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24.x'
- name: Install backend dependencies
working-directory: backend
run: npm install
- name: Lint backend
working-directory: backend
run: npm run lint
- name: Install frontend dependencies
working-directory: frontend
run: npm install
- name: Lint frontend
working-directory: frontend
run: npm run lint
53 changes: 53 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Release

on:
push:
tags:
- 'v[0-9]+*'
workflow_dispatch:

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write # required for gh release create
id-token: write # required for npm provenance (OIDC)

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24.x'
registry-url: 'https://registry.npmjs.org'

- name: Install & build frontend
working-directory: frontend
run: npm install && npm run build

- name: Build backend
working-directory: backend
run: npm run backend

- name: Copy types artifact
run: cp -r backend/out guided-development-types/out

- name: Copy frontend artifact
working-directory: backend
run: npm run frontend:copy

- name: Webpack backend
working-directory: backend
run: npm run webpack-prod

- name: Create .vsix
run: npx vsce package .
working-directory: backend

- name: Publish GitHub Release
run: gh release create "${{ github.ref_name }}" backend/guided-development-*.vsix --title "${{ github.ref_name }}" --generate-notes
env:
GH_TOKEN: ${{ github.token }}

- name: Publish npm package
working-directory: guided-development-types
run: npm publish --provenance --access public
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
28 changes: 28 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,31 @@ Due to legal reasons, contributors will be asked to accept a DCO before they sub
As artificial intelligence evolves, AI-generated code is becoming valuable for many software projects, including open-source initiatives. While we recognize the potential benefits of incorporating AI-generated content into our open-source projects there a certain requirements that need to be reflected and adhered to when making contributions.

Please see our [guideline for AI-generated code contributions to SAP Open Source Software Projects](https://github.com/SAP/.github/blob/main/CONTRIBUTING_USING_GENAI.md) for these requirements.

## Release Process

Releases are triggered by pushing a version tag. Only maintainers with push access to the repository can do this.

### Steps to release

1. Bump the version in `backend/package.json` and `guided-development-types/package.json` and commit to `master`.
2. Push a version tag:
```bash
git tag v1.2.3
git push origin v1.2.3
```
3. The [Release workflow](https://github.com/SAP/guided-development/actions/workflows/release.yml) starts automatically. You can follow its progress in the **Actions** tab.
4. Once complete:
- A new [GitHub Release](https://github.com/SAP/guided-development/releases) is created with the `.vsix` file attached and auto-generated release notes.
- The `guided-development-types` package is published to [npmjs.com](https://www.npmjs.com/package/@sap_oss/guided-development-types).

### One-time setup (first release from a new environment)

Before publishing to npm works, a maintainer must register this repository as a Trusted Publisher on npmjs.com — this only needs to be done once:

1. Go to the `@sap_oss/guided-development-types` package page on npmjs.com → **Settings** → **Automated Publishing**.
2. Click **Add a Publisher**, select **GitHub Actions**, and fill in:
- **Owner**: `SAP`
- **Repository**: `guided-development`
- **Workflow filename**: `release.yml`
3. Save. No npm token or secret needs to be added to the GitHub repository.
30 changes: 24 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
[![CircleCI](https://circleci.com/gh/SAP/guided-development.svg?style=svg)](https://circleci.com/gh/SAP/guided-development)
[![CI](https://github.com/SAP/guided-development/actions/workflows/ci.yml/badge.svg)](https://github.com/SAP/guided-development/actions/workflows/ci.yml)
[![Coverage Status](https://coveralls.io/repos/github/SAP/guided-development/badge.svg?branch=master)](https://coveralls.io/github/SAP/guided-development?branch=master)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/SAP/guided-development.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/SAP/guided-development/context:javascript)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
![GitHub license](https://img.shields.io/badge/license-Apache_2.0-blue.svg)
[![REUSE status](https://api.reuse.software/badge/github.com/SAP/guided-development)](https://api.reuse.software/info/github.com/SAP/guided-development)
[![dependentbot](https://api.dependabot.com/badges/status?host=github&repo=SAP/guided-development)](https://dependabot.com/)

# Guided Development

Expand All @@ -15,11 +13,31 @@ This extension allows developers to add generic code pieces to their project and
The repository contains three main packages:
* **Frontend** - The Guided Development as a standalone vue.js application.
* **Backend** - The backend part. Runs as a VSCode extension or node.js application.
* **VSCode Guided Development contributor example** - Example guided-development contibutor to show usage.
* **guided-development-types** - TypeScript type definitions for building your own contributor extensions, published to [npm](https://www.npmjs.com/package/@sap_oss/guided-development-types).

## Sample Contributors

The repository also includes a collection of ready-to-explore sample contributor extensions. They are a great starting point for understanding how to integrate with the Guided Development framework and for building your own contributor.

| Package | What it demonstrates |
|---|---|
| [`vscode-simple-contrib`](vscode-simple-contrib/) | The minimal contributor — a single collection with one item. Start here. |
| [`vscode-contrib1`](vscode-contrib1/) | A richer scenario showing multiple action types and cross-contributor item reuse. |
| [`vscode-contrib2`](vscode-contrib2/) | A platform-oriented collection, and how one contributor can reference items from another. |
| [`vscode-contrib3`](vscode-contrib3/) | A full-featured example covering project setup, snippet actions, and deployment workflows. |
| [`vscode-contrib-cake`](vscode-contrib-cake/) | Dynamic collections — adds or removes guides based on files detected in the workspace. |
| [`vscode-snippet-food-contrib`](vscode-snippet-food-contrib/) | Combining Guided Development with the code-snippet API for questionnaire-driven workflows. |

Each sample is an independent VSCode extension. To build and run one, `cd` into its folder and run:
```bash
npm install
npm run compile
```
Then open the repository in VSCode and launch the extension from the **Run and Debug** panel.

## Requirements
* [node.js](https://www.npmjs.com/package/node) version 10 or higher.
* [VSCode](https://code.visualstudio.com/) 1.39.2 or higher or [Theia](https://www.theia-ide.org/) 0.12 or higher.
* [node.js](https://www.npmjs.com/package/node) version 22 or higher.
* [VSCode](https://code.visualstudio.com/) 1.46.0 or higher.

## Download and Installation
To test run the framework you only need to build and install the backend package, which will automatically build and run the UI.
Expand Down
Loading
Loading