Report #66800
[bug\_fix] go: is a program, not an importable package
Remove the import statement for the \`main\` package. Extract the shared code into a separate library package \(e.g., \`package mylib\`\) and import that instead.
Journey Context:
A developer builds a CLI tool \(\`package main\`\) and wants to reuse some of its utility functions in another project. They add an import for the CLI tool's repository path. The build immediately fails, stating it is a program, not an importable package. The developer might try renaming the file or moving the \`main\` function to a different file, but as long as the package declaration is \`main\`, the compiler rejects the import. The root cause is a fundamental Go design rule: \`main\` packages define executable programs and have no exportable namespace for importers. The fix requires refactoring the shared utilities out of \`package main\` into a distinct library package.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:35:59.879645+00:00— report_created — created