Files
steampipe/.ai/docs/bug-workflow.md
2025-11-11 19:03:27 +08:00

2.3 KiB

GitHub Issue Guidelines

Guidelines for creating bug reports and issues.

Bug Issue Format

Title:

BUG: Brief description of the problem

For security issues, use [SECURITY] prefix.

Labels: Add bug label

Body Template:

## Description
[Clear description of the bug]

## Severity
**[HIGH/MEDIUM/LOW]** - [Impact statement]

## Reproduction
1. [Step 1]
2. [Step 2]
3. [Observed result]

## Expected Behavior
[What should happen]

## Current Behavior
[What actually happens]

## Test Reference
See `TestName` in `path/file_test.go:line` (currently skipped)

## Suggested Fix
[Optional: proposed solution]

## Related Code
- `path/file.go:line` - [description]

Example

## Description
The `GetDbClient` function returns a non-nil client even when an error
occurs during connection, causing nil pointer panics when callers
attempt to call `Close()` on the returned client.

## Severity
**HIGH** - Nil pointer panic crashes the application

## Reproduction
1. Call `GetDbClient()` with an invalid connection string
2. Function returns both an error AND a non-nil client
3. Caller attempts to defer `client.Close()` which panics

## Expected Behavior
When an error occurs, `GetDbClient` should return `(nil, error)`
following Go conventions.

## Current Behavior
Returns `(non-nil-but-invalid-client, error)` leading to panics.

## Test Reference
See `TestGetDbClient_WithConnectionString` in
`pkg/initialisation/init_data_test.go:322` (currently skipped)

## Suggested Fix
Ensure all error paths return `nil` for the client value.

## Related Code
- `pkg/initialisation/init_data.go:45-60` - GetDbClient function

When You Find a Bug

  1. Create the GitHub issue using the template above
  2. Skip the test with reference to the issue:
    t.Skip("Demonstrates bug #XXXX - description. Remove skip in bug fix PR.")
    
  3. Continue your work - don't stop to fix immediately

Bug Fix Workflow

See bug-fix-prs.md for the bug fix PR workflow (2-commit pattern).

Best Practices

  • Include specific reproduction steps
  • Reference exact code locations with line numbers
  • Explain the impact clearly
  • Link to the test that demonstrates the bug
  • For security issues: assess severity carefully and consider private disclosure