How to Report a Bug in Macro: A Complete Guide to the Official Workflow
Report bugs in Macro by opening a GitHub issue with a clear reproduction case, using the bug(<component>): description title format, and escalating security vulnerabilities privately to security@macro.com.
The Macro project maintains structured contribution guidelines to ensure bugs are triaged and resolved efficiently. Whether you've encountered a crash in the email service or unexpected behavior in the chat component, following the established workflow in CONTRIBUTING.md helps maintainers reproduce and fix issues faster. This guide walks through the complete bug reporting process using the official Macro source code practices.
Start with a GitHub Issue
Never submit code changes without first creating an issue. The maintainers need to confirm that a problem is valid, understand its scope, and prioritize it against other work. As documented in CONTRIBUTING.md under "Start with an issue," this step prevents wasted effort on fixes that may not align with project direction.
To create an issue:
- Navigate to the macro-inc/macro repository on GitHub
- Click Issues → New issue
- Select the appropriate issue template if available
Format Your Bug Report Correctly
Macro uses Conventional Commits formatting for issue titles. This standardization enables automated changelog generation and clear component identification.
Issue Title Format
bug(<component>): short description
Valid components include email, chat, or other subsystem names found in the codebase. For example:
bug(email): crash when opening Gmail attachment
Required Body Sections
Your issue description must include:
- Summary – One-paragraph overview of the bug
- Steps to Reproduce – Numbered sequence including environment, commands, and configuration
- Expected Behavior – What should happen
- Actual Behavior – What actually happens
- Environment Details – OS, Macro version, database version
- Logs or Stack Traces – Redacted of any secrets or credentials
Complete Example Issue
# Issue Body
**Summary**
The email service crashes when an attachment with a `.msg` extension is opened.
**Steps to Reproduce**
1. Open Macro and navigate to an email with a `.msg` attachment.
2. Click the attachment preview button.
3. Observe the panic in the logs.
**Expected**
Attachment preview renders the content.
**Actual**
Service panics with `unwrap()` error.
**Environment**
- OS: macOS 14.2
- Macro version: `v2.3.1`
- Docker compose DB version: PostgreSQL 15
**Logs**
thread 'main' panicked at src/services/email_service/...: panic!("Failed to parse attachment")
Apply Appropriate Labels
Labels help the triage team route issues efficiently. Apply any relevant tags from Macro's existing label set:
bug– General bug classificationhigh priority– Critical impact issues- Component-specific labels –
email,chat, or other subsystem tags
Label selection happens after issue creation through GitHub's interface.
Report Security Vulnerabilities Privately
Public GitHub issues are inappropriate for bugs that could expose data, bypass authentication, or otherwise compromise security. The README.md Security section specifies a dedicated channel for these reports.
Contact: security@macro.com
Include in your security report:
- Detailed vulnerability description
- Proof of concept or reproduction steps
- Potential impact assessment
- Suggested remediation if available
The security team will acknowledge receipt and coordinate disclosure timelines.
Engage with Maintainers
Active collaboration accelerates resolution. After submitting your issue:
- Respond promptly to clarifying questions
- Provide additional logs when requested
- Test suggested fixes or workarounds
- Update the issue with new findings
Maintainers may request environment details, specific file contents from src/services/, or verification against the latest main branch.
Submit a Pull Request (Optional)
Once maintainers confirm the bug and agree on a fix approach, you may contribute a patch. The CONTRIBUTING.md "Before you push" section mandates several checks:
- Follow the style guide and formatting conventions
- Include appropriate test coverage
- Run
just prepare_dbif your changes touch SQL schemas or queries - Reference the original issue number in your PR description
PRs without preceding issues risk rejection regardless of code quality.
Summary
- Always start with an issue – No exceptions per
CONTRIBUTING.md - Use conventional commit titles –
bug(component): descriptionformat - Include complete reproductive details – Environment, steps, logs, expected vs. actual
- Escalate security bugs privately – Email security@macro.com, never public issues
- Collaborate actively – Maintainer follow-up speeds resolution
- Prepare PRs properly – Style guide, tests, and
just prepare_dbfor SQL changes
Frequently Asked Questions
What if I'm not sure whether something is a bug?
Open an issue anyway. The maintainers will triage and reclassify if needed. The CONTRIBUTING.md workflow prefers early communication over assumptions about bug status.
How quickly do maintainers respond to bug reports?
Response time varies by issue complexity and maintainer availability. High-quality reports with clear reproduction steps typically receive faster attention. Security reports to security@macro.com are prioritized.
Can I report a bug without a fix?
Yes. Issue-only contributions are valid and encouraged. The workflow explicitly separates issue creation from PR submission to ensure problems are validated before engineering effort is invested.
What database version should I specify in environment details?
Include your Docker compose PostgreSQL version as shown in docker-compose.yml or your running container. Macro targets PostgreSQL 15 as indicated in standard environment configurations.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →