Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 3 KB

File metadata and controls

67 lines (47 loc) · 3 KB

简体中文 | English · Back to README

Contributing to Fast.NET

Thank you for helping improve Fast.NET. Follow this guide so changes remain reviewable, releasable, and compatible with every target framework.

Before you start

  • Install a .NET SDK compatible with global.json.
  • Read the architecture guide to understand the affected layer and allowed dependency direction.
  • Search existing issues to avoid duplicate work. Open an issue before implementing a significant design change.

Local development

git clone https://gitee.com/FastDotnet/Fast.NET.git
cd Fast.NET
dotnet restore Fast.NET.sln
dotnet build Fast.NET.sln -c Release --no-restore

The primary modules target .NET 8–10, while Fast.IaaS targets .NET Standard 2.1. Changes to shared build configuration, conditional compilation, or dependency versions should be validated against every affected target. NuGet versions belong in Directory.Packages.props.

Code conventions

  • Follow .editorconfig and existing naming conventions.
  • Keep each module focused and avoid reverse or circular dependencies.
  • Public APIs should have accurate XML documentation.
  • Add Chinese comments that explain the reason behind complex compatibility, concurrency, and security logic.
  • Follow the comment and public API documentation guide; do not retain template wording, dead code, or context-free TODO comments.
  • Avoid unnecessary synchronous blocking in asynchronous APIs and dispose streams, tokens, and other resources correctly.
  • Use target-specific conditional references for framework-specific dependencies.
  • Update README.zh.md, README.md, and relevant architecture documentation when behavior changes.

Validation checklist

Run at least:

dotnet restore Fast.NET.sln
dotnet build Fast.NET.sln -c Release --no-restore

Also verify that:

  • The build introduces no warnings or errors.
  • The Fast.IaaS package contains only lib/netstandard2.1.
  • Other SDK packages contain the supported .NET 8–10 targets.
  • bin/, obj/, nupkgs/, secrets, and local configuration are not committed.
  • Public Chinese and English documentation remains structurally and semantically synchronized.

Pull requests

An effective pull request should:

  1. Address one clear problem without unrelated formatting changes.
  2. Explain motivation, design decisions, compatibility impact, and validation results.
  3. Explain current API behavior and update callers, tests, and documentation.
  4. Link the related issue when one exists.
  5. Use a clear commit message, such as fix: prevent duplicate cache population or feat: add an infrastructure module.

Reporting issues

Never publish API keys, connection strings, tokens, or other sensitive data in issues, logs, or example configuration.