Skip to content
Merged
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
51 changes: 51 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Bug Report
description: Create a report to help us improve the editor
title: "bug: <title>"
labels: ["bug"]
body:
- type: textarea
id: bug-description
attributes:
label: Describe the Bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Open the editor...
2. Upload workflow file...
3. Click on...
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: input
id: version
attributes:
label: Editor Version
description: What version of the editor/extension are you using?
- type: dropdown
id: platform
attributes:
label: Platform
options:
- Web / Browser
- VS Code Extension
- Chrome Extension
- Other
validations:
required: true
- type: textarea
id: context
attributes:
label: Additional Context
description: Add any other context, screenshots, or .sw.json / .sw.yaml snippets here.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: CNCF Slack (#serverless-workflow)
url: https://slack.cncf.io/
about: Join the CNCF Slack workspace and visit #serverless-workflow for real-time support.
40 changes: 40 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Feature Request
description: Propose a new feature or architectural change for the editor
title: "feat: <title>"
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thank you for suggesting a new feature! Please provide as much detail as possible.
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of the proposed feature.
validations:
required: true
- type: textarea
id: motivation
attributes:
label: Motivation
description: Why is this change necessary? What problem does it solve?
validations:
required: true
- type: textarea
id: implementation
attributes:
label: Proposed Implementation
description: Describe the technical approach or UI changes.
- type: checkboxes
id: dod
attributes:
label: Definition of Done
description: To be considered "Done," this feature must meet the following criteria.
options:
- label: "Implementation: Fully implemented according to the Serverless Workflow spec."
- label: "Unit Tests: Comprehensive unit tests are included and passing."
- label: "Integration Tests: Verified within the monorepo and target environments (Web/VS Code)."
- label: "Documentation: Updated README.md, ADRs, or official docs."
- label: "Performance: No significant regression in editor responsiveness."
- label: "Accessibility: UI changes comply with accessibility standards."
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Question / General
description: Ask a question or share general feedback
title: "question: <title>"
labels: ["question"]
body:
- type: textarea
id: subject
attributes:
label: Subject
description: What would you like to discuss?
validations:
required: true
- type: textarea
id: context
attributes:
label: Context
description: Provide background information to help us provide a better answer.
- type: input
id: outcome
attributes:
label: Desired Outcome
description: Are you looking for a specific answer, a pointer to docs, or just starting a discussion?
3 changes: 3 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Code of Conduct

We follow the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md). Please contact the [CNCF Code of Conduct Committee](mailto:conduct@cncf.io) in order to report violations of the Code of Conduct.
74 changes: 74 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Contributing to Serverless Workflow Editor

Thank you for your interest in contributing to the CNCF Serverless Workflow Editor! We welcome all types of contributions, including bug reports, feature requests, documentation improvements, and code changes.

This project is the official, vendor-neutral visual editor for the [Serverless Workflow Specification](https://github.com/serverlessworkflow/specification).

---

## Prerequisites

To build and run the editor locally, you will need:
- **Node.js** (current LTS version; see https://nodejs.org/)
- **npm** or **pnpm**

## Building the Project

The project is structured as a monorepo to support multiple distribution targets (Web, VS Code, etc.) as defined in our architectural decisions.

```bash
# Clone the repository
git clone https://github.com/serverlessworkflow/editor.git
cd editor

# Install dependencies
npm install

# Build all packages in the monorepo
npm run build
```

## Development Environment

This project uses the following core technology stack:

* **Language**: [TypeScript](https://www.typescriptlang.org/) (for type safety and maintainability)
* **Library**: [React](https://react.dev/) (for building the user interface)

The project aims for the editor to be **embeddable**, with the core logic decoupled from specific platform APIs (like VS Code or Chrome APIs) through an abstraction layer.

## Reporting an Issue

If you find a bug or have a question, please check the [existing issues](https://github.com/serverlessworkflow/editor/issues) first.
1. Open a new issue using the appropriate template.
2. Provide a clear description of the problem.
3. Include steps to reproduce the bug and provide a sample workflow file (`.sw.json` or `.sw.yaml`) if applicable.

## Suggesting a Change

For new features or architectural changes:
1. Open an **Issue** or a **GitHub Discussion** to propose your idea.
2. Ensure the proposal aligns with the goals of being **vendor-neutral** and **specification-first**.
3. Once the approach is agreed upon by maintainers, you may proceed with a Pull Request.

## Coding Standards

* **TypeScript**: Always use strict typing. Avoid `any`.
* **Linting & Formatting**: Follow the existing code style and formatting conventions used in the files you are editing. If the package you are changing defines linting or formatting scripts, run those before submitting code.
* **Testing**: Ensure that logic changes are covered by tests, and run the relevant test commands for the packages you modify (see their documentation or `package.json`).
* **Component Design**: Follow functional component patterns and ensure that UI state is managed predictably within the monorepo structure.
* **New package creation**: If a new package needs to be created, please follow the standards used by the existing packages, including the standard commands `build`, `build-prod`, `test`, `e2e-test`, `lint`

## Pull Request Process

1. **Fork** the repository and create your branch from `main`.
2. **Commit** your changes with clear, descriptive messages.
3. **Verify** your changes by running the appropriate build and/or test commands for the packages you modified.
4. **Submit** a Pull Request (PR).
5. **DCO Sign-off**: As a CNCF project, all commits must be signed off (`git commit -s`) to certify the Developer Certificate of Origin.
6. **Review**: At least one maintainer must review and approve your PR before it is merged.

---

### Community and Communication
Join the conversation on the [CNCF Slack](https://slack.cncf.io/) in the `#serverless-workflow` channel.
14 changes: 14 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Governance

The Serverless Workflow Editor is a sub-project of the [Serverless Workflow Specification](https://github.com/serverlessworkflow/specification).

As a CNCF project, we strictly follow the governance model, roles, and decision-making processes defined in the parent repository.

Please refer to the primary governance document for details on contributor roles, maintainer appointments, and project policies:

👉 **[Serverless Workflow Specification Governance](https://github.com/serverlessworkflow/specification/blob/main/GOVERNANCE.md)**

---

## Community & Support
If you have questions regarding the governance or how to get involved, please join us on the [CNCF Slack](https://slack.cncf.io/) in the `#serverless-workflow` channel.