chore: improve docs, tooling, tests, and dev environment#9
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s developer experience and documentation around the panic-recovering errgroup implementations (root and x/errgroup), while also modernizing tooling (mise), CI, and expanding test coverage for TryGo and panic behavior.
Changes:
- Document panic recovery and zero-value behavior across packages (GoDoc + READMEs + AGENTS.md).
- Introduce mise-pinned tooling/devcontainer/VSCode setup and update CI workflow to run
make check. - Expand tests for
TryGo(limit behavior, context propagation inx/errgroup, panic paths).
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
errgroup.go |
Adds/clarifies exported doc comments for panic propagation and Wait implementation notes. |
panic.go |
Documents Recovered and Stack fields for panic wrapper types. |
errgroup_test.go |
Fixes an assertion signature and adds TryGo + panic tests. |
README.md |
Adds package table + panic behavior docs + improves example error handling. |
go.mod |
Bumps Go directive and updates golang.org/x/sync. |
go.sum |
Updates checksums for the x/sync bump. |
mise.toml |
Pins tool versions (Go, golangci-lint). |
Makefile |
Simplifies targets and removes asdf/install dependencies from common targets. |
AGENTS.md |
Adds repo conventions for AI agents (tooling/testing/panic behavior). |
x/errgroup/errgroup.go |
Enhances package/type/method docs to clarify context + panic behavior. |
x/errgroup/errgroup_test.go |
Fixes assertion signatures and adds TryGo tests (including context propagation + panic). |
x/errgroup/README.md |
Adds README for the context-aware variant with examples and behavioral notes. |
.github/workflows/pr-check.yml |
Adds PR workflow to run make check. |
.github/workflows/go.yml |
Removes deprecated workflow. |
.tool-versions |
Removes deprecated asdf tool version pinning. |
.devcontainer/devcontainer.json |
Adds devcontainer configuration using mise feature. |
.devcontainer/post_create.sh |
Installs tools and configures shell initialization for mise. |
.vscode/settings.json |
Adds Go + golangci-lint formatting/lint settings. |
.vscode/launch.json |
Adds debug configurations for tests and workspace debugging. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a6e9d54 to
31f9d8b
Compare
- Add GoDoc comments to all exported methods explaining panic behaviour - Add AGENTS.md with development conventions for AI coding agents - Add mise.toml for pinned tool versions (Go 1.24, golangci-lint 2.x) - Add .devcontainer/ for reproducible dev container setup - Add .github/workflows/pr-check.yml CI workflow - Simplify Makefile by removing asdf/install dependencies - Add x/errgroup/README.md documentation - Expand errgroup_test.go and x/errgroup/errgroup_test.go with more test cases - Improve inline comments in Wait() and related methods - Update README.md with usage examples - Remove deprecated .tool-versions and .github/workflows/go.yml
31f9d8b to
2338d87
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This PR improves documentation, developer tooling, tests, and dev environment setup across the repository.
Changes
Documentation
Go,TryGo,Wait,SetLimit) explaining panic recovery behaviourWait()explaining thepanicValuechannel logicREADME.mdwith usage examplesx/errgroup/README.mdAGENTS.mdwith development conventions for AI coding agentsTooling
mise.tomlfor pinned tool versions (Go 1.24.x, golangci-lint 2.x)Makefileby removingasdf/installdependencies.tool-versionsDev Environment
.devcontainer/for reproducible dev container setup.vscode/editor settingsCI
.github/workflows/pr-check.ymlCI workflow.github/workflows/go.ymlTests
errgroup_test.gowith additional test cases (Test_Group_TryGo,Test_Group_TryGo_Panic)x/errgroup/errgroup_test.gowith more test cases (Test_WithContext_ZeroValue,Test_Group_TryGo_ContextPropagation,Test_Group_TryGo_Panic)Verification
All tests pass with the race detector enabled and no lint issues: