Thank you for your interest in contributing to the DevWorkspace Generator! This document provides guidelines and instructions for contributing.
Issues are tracked at github.com/eclipse/che/issues. When filing a bug or feature request, please use the appropriate issue template.
-
Fork and clone the repository:
git clone https://github.com/<your-username>/devworkspace-generator.git cd devworkspace-generator
-
Install dependencies:
yarn install
-
Build the project:
yarn build
This runs formatting checks, compilation, linting, and tests.
yarn compile # Compile TypeScript
yarn build # Full build (format + compile + lint + test)
yarn watch # Watch mode for incremental compilationThe project uses Prettier with the following configuration:
- Print width: 120
- Single quotes
- Arrow parens: avoid
yarn format # Check formatting
yarn format:fix # Auto-fix formatting issuesESLint is used for static analysis.
yarn lint # Run linter
yarn lint:fix # Auto-fix lint issuesTests are written with Jest and located in the tests/ directory.
yarn test # Run tests with coverageImportant: This project requires 100% code coverage (branches, functions, lines, and statements). All new code must be fully covered by tests.
-
Create a branch for your changes:
git checkout -b my-feature
-
Make your changes, ensuring:
- Code compiles without errors (
yarn compile) - Formatting passes (
yarn format) - Linting passes (
yarn lint) - All tests pass with 100% coverage (
yarn test)
- Code compiles without errors (
-
Run the full build to verify everything:
yarn build
-
Commit your changes and push to your fork.
-
Open a pull request against the
mainbranch. Fill out the PR template, which asks:- What does this PR do?
- What issues does this PR fix or reference?
- Is it tested? How?
src/
├── api/ # DevfileContext API types
├── bitbucket/ # Bitbucket Cloud URL resolver
├── bitbucket-server/ # Bitbucket Server URL resolver
├── devfile/ # Devfile processing (component finder/inserter)
├── devfile-schema/ # Devfile JSON schemas (2.0.0 – 2.3.0)
├── editor/ # Editor definition resolver
├── fetch/ # URL fetching utilities
├── github/ # GitHub URL resolver
├── inversify/ # Dependency injection bindings
├── resolve/ # Git URL resolution
├── entrypoint.ts # CLI entrypoint
├── generate.ts # DevWorkspace generation logic
├── main.ts # Library main export
└── types.ts # Shared types
tests/ # Test files mirroring src/ structure
This project is licensed under the Apache License 2.0. By contributing, you agree that your contributions will be licensed under the same license.