diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..c92d1a789 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,33 @@ +{ + "name": "OpenFeature .NET SDK", + "image": "mcr.microsoft.com/devcontainers/dotnet:9.0-bookworm", + "features": { + "ghcr.io/devcontainers/features/dotnet:latest": { + "version": "9.0", + "additionalVersions": "8.0" + }, + "ghcr.io/devcontainers/features/github-cli:latest": {}, + "ghcr.io/devcontainers/features/docker-in-docker": {} + }, + "customizations": { + "vscode": { + "extensions": [ + "EditorConfig.EditorConfig", + "GitHub.copilot", + "GitHub.copilot-chat", + "GitHub.vscode-github-actions", + "GitHub.vscode-pull-request-github", + "ms-dotnettools.csharp", + "esbenp.prettier-vscode", + "redhat.vscode-yaml", + "cucumberopen.cucumber-official", + "ms-dotnettools.csdevkit" + ] + } + }, + "remoteUser": "vscode", + "hostRequirements": { + "memory": "8gb" + }, + "postCreateCommand": "git submodule update --init --recursive" +} diff --git a/.gitignore b/.gitignore index 055ffe50f..c77e4f530 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,6 @@ *.user *.userosscache *.sln.docstates -.devcontainer/ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e8415daff..e3c6300b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,6 +18,26 @@ On all platforms, the minimum requirements are: - JetBrains Rider 2022.2+ or Visual Studio 2022+ or Visual Studio Code - .NET Framework 4.6.2+ +### Development Containers + +This repository includes support for [Development Containers](https://containers.dev/) (devcontainers), which provide a consistent, containerized development environment. The devcontainer configuration includes all necessary dependencies and tools pre-configured. + +To use the devcontainer: + +1. **Prerequisites**: Install [Docker](https://www.docker.com/) and either: + - [Visual Studio Code](https://code.visualstudio.com/) with the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) + - [GitHub Codespaces](https://github.com/features/codespaces) + +2. **Using with VS Code**: + - Open the repository in VS Code + - When prompted, click "Reopen in Container" or use the Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`) and select "Dev Containers: Reopen in Container" + +3. **Using with GitHub Codespaces**: + - Navigate to the repository on GitHub + - Click the "Code" button and select "Create codespace on [branch-name]" + +The devcontainer provides a pre-configured environment with the .NET SDK and all necessary tools for development and testing. + ## Pull Request All contributions to the OpenFeature project are welcome via GitHub pull requests.