Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow - #45

Merged
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits into
mainfrom
copilot/design-auto-release-workflow

Conversation

CopilotAI commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md # Copilot guide (Chinese)
├── VERSIONING.md # Version management rules
├── RELEASE_GUIDE.md # Complete release guide
├── QUICK_REFERENCE.md # Quick reference card
├── RELEASE_CHECKLIST.md # Release checklist
├── DELIVERY_SUMMARY.md # Project delivery summary
└── workflows/
└── release.yml # Automated release workflow
RELEASE_AUTOMATION.md # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj# 2. Update release notes in README.md and README_EN.md# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main
# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3
# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

CopilotAIand others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
CopilotAI changed the title [WIP] Design automated NuGet and GitHub Release processAdd comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflowOct 11, 2025
CopilotAI requested a review from chswordOctober 11, 2025 12:29
@chsword
chsword marked this pull request as ready for review October 11, 2025 13:16
CopilotAI review requested due to automatic review settings October 11, 2025 13:16
@chsword
chsword merged commit 5e01a63 into mainOct 11, 2025
9 of 10 checks passed

CopilotAI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
RELEASE_AUTOMATION.mdSystem overview and documentation index providing comprehensive project delivery summary
README_EN.mdAdded "Development and Release" section with links to new documentation
README.mdAdded "开发和发布" section with links to new documentation
.github/workflows/release.ymlComplete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.mdComprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.mdBilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.mdDetailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.mdComprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.mdBilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.mdComplete project delivery summary documenting all requirements and implementations

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@chsword