Skip to content

Commit d71ef4c

Browse files
Update contribution guide (#843)
1 parent f2d21a0 commit d71ef4c

File tree

1 file changed

+33
-44
lines changed

1 file changed

+33
-44
lines changed

CONTRIBUTING.md

Lines changed: 33 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,71 @@
1-
## Contributing
1+
# Contributing
22

3-
[fork]: https://github.com/github/copilot-sdk/fork
4-
[pr]: https://github.com/github/copilot-sdk/compare
3+
Thanks for your interest in contributing!
54

6-
Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.
5+
This repository contains the Copilot SDK, a set of multi-language SDKs (Node/TypeScript, Python, Go, .NET) for building applications with the GitHub Copilot agent, maintained by the GitHub Copilot team.
76

87
Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE).
98

109
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
1110

12-
## What kinds of contributions we're looking for
11+
## Before You Submit a PR
1312

14-
We'd love your help with:
13+
**Please discuss any feature work with us before writing code.**
1514

16-
* Fixing any bugs in the existing feature set
17-
* Making the SDKs more idiomatic and nice to use for each supported language
18-
* Improving documentation
15+
The team already has a committed product roadmap, and features must be maintained in sync across all supported languages. Pull requests that introduce features not previously aligned with the team are unlikely to be accepted, regardless of their quality or scope.
1916

20-
If you have ideas for entirely new features, please post an issue or start a discussion. We're very open to new features but need to make sure they align with the direction of the underlying Copilot CLI and can be maintained in sync across all our supported languages.
17+
If you submit a PR, **be sure to link to an associated issue describing the bug or agreed feature**. No PRs without context :)
2118

22-
Currently **we are not looking to add SDKs for other languages**. If you want to create a Copilot SDK for another language, we'd love to hear from you, and we may offer to link to your SDK from our repo. However we do not plan to add further language-specific SDKs to this repo in the short term, since we need to retain our maintenance capacity for moving forwards quickly with the existing language set. So, for any other languages, please consider running your own external project.
19+
## What We're Looking For
2320

24-
## Prerequisites for running and testing code
21+
We welcome:
22+
23+
- Bug fixes with clear reproduction steps
24+
- Improvements to documentation
25+
- Making the SDKs more idiomatic and nice to use for each supported language
26+
- Bug reports and feature suggestions on [our issue tracker](https://github.com/github/copilot-sdk/issues) — especially for bugs with repro steps
27+
28+
We are generally **not** looking for:
29+
30+
- New features, capabilities, or UX changes that haven't been discussed and agreed with the team
31+
- Refactors or architectural changes
32+
- Integrations with external tools or services
33+
- Additional documentation
34+
- **SDKs for other languages** — if you want to create a Copilot SDK for another language, we'd love to hear from you and may offer to link to your SDK from our repo. However we do not plan to add further language-specific SDKs to this repo in the short term, since we need to retain our maintenance capacity for moving forwards quickly with the existing language set. For other languages, please consider running your own external project.
35+
36+
## Prerequisites for Running and Testing Code
2537

2638
This is a multi-language SDK repository. Install the tools for the SDK(s) you plan to work on:
2739

2840
### All SDKs
29-
1. (Optional) Install [just](https://github.com/casey/just) command runner for convenience
41+
42+
1. The end-to-end tests across all languages use a shared test harness written in Node.js. Before running tests in any language, `cd test/harness && npm ci`.
3043

3144
### Node.js/TypeScript SDK
45+
3246
1. Install [Node.js](https://nodejs.org/) (v18+)
3347
1. Install dependencies: `cd nodejs && npm ci`
3448

3549
### Python SDK
50+
3651
1. Install [Python 3.8+](https://www.python.org/downloads/)
3752
1. Install [uv](https://github.com/astral-sh/uv)
3853
1. Install dependencies: `cd python && uv pip install -e ".[dev]"`
3954

4055
### Go SDK
56+
4157
1. Install [Go 1.24+](https://go.dev/doc/install)
4258
1. Install [golangci-lint](https://golangci-lint.run/welcome/install/#local-installation)
4359
1. Install dependencies: `cd go && go mod download`
4460

4561
### .NET SDK
62+
4663
1. Install [.NET 8.0+](https://dotnet.microsoft.com/download)
47-
1. Install [Node.js](https://nodejs.org/) (v18+) (the .NET tests depend on a TypeScript-based test harness)
48-
1. Install npm dependencies (from the repository root):
49-
```bash
50-
cd nodejs && npm ci
51-
cd test/harness && npm ci
52-
```
5364
1. Install .NET dependencies: `cd dotnet && dotnet restore`
5465

55-
## Submitting a pull request
66+
## Submitting a Pull Request
5667

57-
1. [Fork][fork] and clone the repository
68+
1. Fork and clone the repository
5869
1. Install dependencies for the SDK(s) you're modifying (see above)
5970
1. Make sure the tests pass on your machine (see commands below)
6071
1. Make sure linter passes on your machine (see commands below)
@@ -63,29 +74,7 @@ This is a multi-language SDK repository. Install the tools for the SDK(s) you pl
6374
1. Push to your fork and [submit a pull request][pr]
6475
1. Pat yourself on the back and wait for your pull request to be reviewed and merged.
6576

66-
### Running tests and linters
67-
68-
If you installed `just`, you can use it to run tests and linters across all SDKs or for specific languages:
69-
70-
```bash
71-
# All SDKs
72-
just test # Run all tests
73-
just lint # Run all linters
74-
just format # Format all code
75-
76-
# Individual SDKs
77-
just test-nodejs # Node.js tests
78-
just test-python # Python tests
79-
just test-go # Go tests
80-
just test-dotnet # .NET tests
81-
82-
just lint-nodejs # Node.js linting
83-
just lint-python # Python linting
84-
just lint-go # Go linting
85-
just lint-dotnet # .NET linting
86-
```
87-
88-
Or run commands directly in each SDK directory:
77+
### Running Tests and Linters
8978

9079
```bash
9180
# Node.js

0 commit comments

Comments
 (0)