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
76 changes: 2 additions & 74 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,75 +1,3 @@
# Contributing to vscode-chef
# Contributing to a Progress Chef Workstation Project

Thank you for your interest in contributing to the Progress Chef VS Code extension!

## General Contribution Guidelines

For general Chef contribution guidelines, including DCO requirements, PR process, and code review standards, see:
https://github.com/chef/chef/blob/master/CONTRIBUTING.md

## Development Setup

Complete build and development instructions are available in the README:
**[Building and releasing the extension](README.md#building-and-releasing-the-extension)**

### Quick Reference

```bash
# Install dependencies (always use npm ci, not npm install)
npm ci

# Build the extension
npm run vscode:prepublish

# Package for local testing
npm run package

# Test locally
code --install-extension ./chef-<version>.vsix
```

### Key Requirements

- **Always use `npm ci`** for builds (never `npm install` unless updating dependencies)
- **Commit `package-lock.json`** with any dependency changes
- **Sign-off all commits**: Use `git commit -s` (DCO requirement)
- **Exact versions only**: No `^` or `~` in `package.json`
- All packages install from Harness Artifact Registry (HAR)

### Team Policy

- ✅ Always use `npm ci` for builds
- ✅ Commit `package-lock.json` with any dependency changes
- ✅ CI/CD uses `npm ci` (frozen lockfile enforced)
- ❌ Never commit `node_modules/`
- ❌ Never use `npm install` unless updating dependencies

### Build Verification

To verify your build matches the frozen lockfile:

```bash
rm -rf node_modules
npm ci
npm run vscode:prepublish
npm run package
```

### Pull Request Checklist

Before submitting your PR, ensure:

- [ ] Code builds successfully (`npm run vscode:prepublish`)
- [ ] Extension packages successfully (`npm run package`)
- [ ] Tested locally by installing the `.vsix` file
- [ ] All commits are signed-off (DCO)
- [ ] `package-lock.json` updated if dependencies changed
- [ ] No unrelated changes included

### Need Help?

- **Issues**: [GitHub Issues](https://github.com/chef/vscode-chef/issues)
- **Detailed build instructions**: [README.md](README.md#building-and-releasing-the-extension)
- **Chef Community**: [Community Slack](https://community-slack.chef.io/)

For detailed explanations of dependency management, team policies, and security requirements, see the README.
Thank you for your interest in contributing to this project! It is part of the larger Progress Chef Workstation project. Contribution guidelines can be found at [Contributing to Progress Chef Workstation](https://chef.github.io/chef-oss-practices/projects/workstation/contributing/).
54 changes: 46 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,57 @@ The Progress Chef Infra Extension for Visual Studio Code offers rich language su

Contributions are welcomed, please file issues and pull requests via the [project homepage](https://github.com/chef/vscode-chef).

- **Community Slack**: [Chef Community](https://community-slack.chef.io/)

## Building and releasing the extension

This project contains development launch settings. A recent Node.js LTS build is required.

### Install dependencies
### Quick Reference

Dependencies for development work of this extension are maintained in the `package.json` file under the `devDependencies` key and can be installed via NPM:
```bash
# Install dependencies (always use npm ci, not npm install)
npm ci

```shell
npm ci # Recommended: installs from frozen lockfile
npm install # Only when updating dependencies
# Build the extension
npm run vscode:prepublish

# Package for local testing
npm run package

# Test locally
code --install-extension ./chef-<version>.vsix
```

**Note:** Always commit `package-lock.json` when updating dependencies.

### Build Verification

To verify your build matches the frozen lockfile:

```bash
rm -rf node_modules
npm ci
npm run vscode:prepublish
npm run package
```

**Note:** For team development, always use `npm ci` to ensure reproducible builds. See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
### Pull Request Checklist

Before submitting your PR, ensure:

- [ ] Code builds successfully (`npm run vscode:prepublish`)
- [ ] Extension packages successfully (`npm run package`)
- [ ] Tested locally by installing the `.vsix` file
- [ ] All commits are signed-off (DCO): Use `git commit -s`
- [ ] `package-lock.json` updated if dependencies changed
- [ ] No unrelated changes included

### Need Help?

- **Issues**: [GitHub Issues](https://github.com/chef/vscode-chef/issues)
- **Detailed build instructions**: See sections above
- **Chef Community**: [Community Slack](https://community-slack.chef.io/)

### Updating Snippets

Expand Down Expand Up @@ -139,7 +176,7 @@ To test the extension locally:
code --install-extension C:\projects\chef\vscode-chef\chef-1.4.0.vsix
```

To release requires a PAT token for the relevant publisher on the Visual Studio Marketplace.
To release requires a PAT token for the relevant publisher on the Visual Studio Marketplace:

```plain
vsce publish
Expand Down Expand Up @@ -179,5 +216,6 @@ This extension is licensed under an [Apache 2](LICENSE) license.
limitations under the License.
```

# Copyright
## Copyright

See [COPYRIGHT.md](./COPYRIGHT.md).
Loading