-
Notifications
You must be signed in to change notification settings - Fork 107
added contributing details #857
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,103 @@ | ||
| # Contributing to SimpleChat | ||
|
|
||
| This repository uses the standard `CONTRIBUTING.md` filename so GitHub can surface the guide automatically. | ||
| The documentation-site copy lives at `docs/contributing.md`, and both files should stay aligned. | ||
|
|
||
| ## Contribution Flow | ||
|
|
||
| SimpleChat contributions should be made through a fork-based workflow. | ||
|
|
||
| 1. Fork the repository. | ||
| 2. Clone your fork locally. | ||
| 3. Add the main SimpleChat repository as `upstream`. | ||
| 4. Create a new branch from the upstream `Development` branch. | ||
| 5. Make your changes in that new branch. | ||
| 6. Push the branch to your fork. | ||
| 7. Open a pull request from your fork branch back to the main SimpleChat repository's `Development` branch. | ||
|
|
||
| Do not open contributor pull requests directly to `Staging` or `main`. The repository uses a staged promotion flow: `Development` -> `Staging` -> `main`. | ||
| Use the branch names exactly as written here. In this repository, `Development` and `Staging` are capitalized. | ||
| After a contribution is merged into `Development`, the SimpleChat team handles promotion forward. | ||
|
|
||
| <!-- Optional image placeholder: | ||
| Add a branch-flow diagram here later if you want a visual version of the process. | ||
|
|
||
| Example: | ||
|  | ||
| --> | ||
|
|
||
| ## Suggested Git Commands | ||
|
|
||
| Use whatever Git workflow you prefer, but this is the expected starting point: | ||
|
|
||
| ```bash | ||
| git clone <your-fork-url> | ||
| cd simplechat | ||
| git remote add upstream <simplechat-upstream-url> | ||
| git fetch upstream | ||
| git switch -c feature/my-change upstream/Development | ||
| ``` | ||
|
|
||
| When you are ready to publish your work: | ||
|
|
||
| ```bash | ||
| git push -u origin feature/my-change | ||
| ``` | ||
|
|
||
| If your branch falls behind, sync it from `upstream/Development` before opening or updating the pull request. | ||
|
|
||
| ## Local Development | ||
|
|
||
| Before contributing, make sure you can run SimpleChat locally. | ||
|
|
||
| Recommended local setup in VS Code uses a repo-local `.venv` with Python 3.12. | ||
|
|
||
| From the repo root in PowerShell: | ||
|
|
||
| ```powershell | ||
| py -3.12 -m venv .venv | ||
| .\.venv\Scripts\Activate.ps1 | ||
| pip install --upgrade pip | ||
| pip install -r application/single_app/requirements.txt | ||
| Set-Location application/single_app | ||
| $env:FLASK_DEBUG = "1" | ||
| python app.py | ||
| ``` | ||
|
|
||
| For the full local workflow, environment guidance, and notes about Docker, WSL2, and Gunicorn validation, see: | ||
|
|
||
| - [README.md](./README.md) | ||
| - [docs/setup_instructions_manual.md](./docs/setup_instructions_manual.md) | ||
| - [docs/explanation/running_simplechat_locally.md](./docs/explanation/running_simplechat_locally.md) | ||
|
|
||
| ## Pull Request Expectations | ||
|
|
||
| Keep pull requests focused and easy to review. | ||
|
|
||
| - Base your work on `Development`, not `main`. | ||
| - Keep unrelated refactors out of the same pull request. | ||
| - Explain what changed, why it changed, and how you tested it. | ||
| - Include screenshots or short recordings for UI changes when helpful. | ||
| - Call out any configuration, schema, security, or deployment impact. | ||
| - Update documentation when user-facing behavior or setup steps change. | ||
|
|
||
| ## Tests and Validation | ||
|
|
||
| Before opening a pull request, run the tests that match your change. | ||
|
|
||
| - Add or update functional tests for bug fixes and new features when appropriate. | ||
| - Run relevant tests from `functional_tests/` and `ui_tests/` when your change affects those areas. | ||
| - If you change Flask routes, keep the existing Swagger route decorator pattern intact. | ||
|
|
||
| Pull requests are reviewed by the SimpleChat team and go through repository validation. Depending on the files changed, that can include Python syntax checks, release-note validation, Swagger route validation, and additional maintainer review. Maintainers may also run additional security or AI-assisted review before merge. | ||
|
|
||
| ## Security and Repo Conventions | ||
|
|
||
| - Never commit secrets, keys, or environment-specific credentials. | ||
| - Review [SECURITY.md](./SECURITY.md) before submitting security-sensitive changes. | ||
| - Follow the repository's existing structure and conventions instead of introducing broad cleanup changes. | ||
| - If you use AI-assisted tooling while contributing, also review [CLAUDE.md](./CLAUDE.md) and [.github/copilot-instructions.md](./.github/copilot-instructions.md) for repo-specific guidance. | ||
|
|
||
| ## Need Help? | ||
|
|
||
| If you are unsure about the right target branch or how to structure a change, open a draft pull request against `Development` and explain the question in the description. That gives the maintainers a concrete starting point for feedback. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| requests==2.32.4 | ||
| requests==2.33.0 | ||
| msal==1.31.0 | ||
| python-dotenv==0.21.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| requests==2.32.4 | ||
| requests==2.33.0 | ||
| msal==1.31.0 | ||
| python-dotenv==0.21.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,110 @@ | ||
| --- | ||
| layout: page | ||
| title: "Contributing" | ||
| description: "How developers should contribute to Simple Chat" | ||
| section: "Overview" | ||
| permalink: /contributing/ | ||
| --- | ||
|
|
||
| # Contributing to Simple Chat | ||
|
|
||
| This page mirrors the repository root contribution guide and should stay aligned with the root `CONTRIBUTING.md` file. | ||
paullizer marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| ## Contribution Flow | ||
|
|
||
| SimpleChat contributions should be made through a fork-based workflow. | ||
|
|
||
| 1. Fork the repository. | ||
| 2. Clone your fork locally. | ||
| 3. Add the main SimpleChat repository as `upstream`. | ||
| 4. Create a new branch from the upstream `Development` branch. | ||
| 5. Make your changes in that new branch. | ||
| 6. Push the branch to your fork. | ||
| 7. Open a pull request from your fork branch back to the main SimpleChat repository's `Development` branch. | ||
|
|
||
| Do not open contributor pull requests directly to `Staging` or `main`. The repository uses a staged promotion flow: `Development` -> `Staging` -> `main`. | ||
| Use the branch names exactly as written here. In this repository, `Development` and `Staging` are capitalized. | ||
| After a contribution is merged into `Development`, the SimpleChat team handles promotion forward. | ||
|
|
||
| <!-- Optional image placeholder: | ||
| Add a branch-flow diagram here later if you want a visual version of the process. | ||
|
|
||
| Example: | ||
|  | ||
| --> | ||
|
|
||
| ## Suggested Git Commands | ||
|
|
||
| Use whatever Git workflow you prefer, but this is the expected starting point: | ||
|
|
||
| ```bash | ||
| git clone <your-fork-url> | ||
| cd simplechat | ||
| git remote add upstream <simplechat-upstream-url> | ||
| git fetch upstream | ||
| git switch -c feature/my-change upstream/Development | ||
| ``` | ||
|
|
||
| When you are ready to publish your work: | ||
|
|
||
| ```bash | ||
| git push -u origin feature/my-change | ||
| ``` | ||
|
|
||
| If your branch falls behind, sync it from `upstream/Development` before opening or updating the pull request. | ||
|
|
||
| ## Local Development | ||
|
|
||
| Before contributing, make sure you can run SimpleChat locally. | ||
|
|
||
| Recommended local setup in VS Code uses a repo-local `.venv` with Python 3.12. | ||
|
|
||
| From the repo root in PowerShell: | ||
|
|
||
| ```powershell | ||
| py -3.12 -m venv .venv | ||
| .\.venv\Scripts\Activate.ps1 | ||
| pip install --upgrade pip | ||
| pip install -r application/single_app/requirements.txt | ||
| Set-Location application/single_app | ||
| $env:FLASK_DEBUG = "1" | ||
| python app.py | ||
| ``` | ||
|
|
||
| For the full local workflow, environment guidance, and notes about Docker, WSL2, and Gunicorn validation, see: | ||
|
|
||
| - [Setup Instructions](./setup_instructions.md) | ||
| - [Manual Setup](./setup_instructions_manual.md) | ||
| - [Running Simple Chat Locally](./explanation/running_simplechat_locally.md) | ||
paullizer marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| ## Pull Request Expectations | ||
|
|
||
| Keep pull requests focused and easy to review. | ||
|
|
||
| - Base your work on `Development`, not `main`. | ||
| - Keep unrelated refactors out of the same pull request. | ||
| - Explain what changed, why it changed, and how you tested it. | ||
| - Include screenshots or short recordings for UI changes when helpful. | ||
| - Call out any configuration, schema, security, or deployment impact. | ||
| - Update documentation when user-facing behavior or setup steps change. | ||
|
|
||
| ## Tests and Validation | ||
|
|
||
| Before opening a pull request, run the tests that match your change. | ||
|
|
||
| - Add or update functional tests for bug fixes and new features when appropriate. | ||
| - Run relevant tests from `functional_tests/` and `ui_tests/` when your change affects those areas. | ||
| - If you change Flask routes, keep the existing Swagger route decorator pattern intact. | ||
|
|
||
| Pull requests are reviewed by the SimpleChat team and go through repository validation. Depending on the files changed, that can include Python syntax checks, release-note validation, Swagger route validation, and additional maintainer review. Maintainers may also run additional security or AI-assisted review before merge. | ||
|
|
||
| ## Security and Repo Conventions | ||
|
|
||
| - Never commit secrets, keys, or environment-specific credentials. | ||
| - Review the repository [SECURITY.md](https://github.com/microsoft/simplechat/blob/main/SECURITY.md) before submitting security-sensitive changes. | ||
| - Follow the repository's existing structure and conventions instead of introducing broad cleanup changes. | ||
| - If you use AI-assisted tooling while contributing, also review the repository guidance in [CLAUDE.md](https://github.com/microsoft/simplechat/blob/main/CLAUDE.md) and [.github/copilot-instructions.md](https://github.com/microsoft/simplechat/blob/main/.github/copilot-instructions.md). | ||
|
|
||
| ## Need Help? | ||
|
|
||
| If you are unsure about the right target branch or how to structure a change, open a draft pull request against `Development` and explain the question in the description. That gives the maintainers a concrete starting point for feedback. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.