Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Go source cataloger #3452

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Go source cataloger #3452

wants to merge 2 commits into from

Conversation

spiffcs
Copy link
Contributor

@spiffcs spiffcs commented Nov 18, 2024

Description

This PR adds a new directory source cataloger that goes beyond reading declarations from the go.mod file.

The go-module-source-file-cataloger uses the golang.org/x/tools/go/packages library to read the "main" module from detected go.mod files. It then uses this main module information to load all the root packages for a given main module. The tool chain then visits all the packages in the import graph whose roots are packages in the discovered root packages.

This PR is currently WIP and needs further discussion around the following sections:

  • The first draft of what relationships we want to surface from this cataloger should be included as none are implemented at the moment.

  • License inclusion needs to be added. There is a good example in the go-licenses open source program at how to do this.

  • Fixes cataloger: golang source cataloger #3451

Type of change

  • New feature (non-breaking change which adds functionality)

Checklist:

  • I have added unit tests that cover changed behavior
  • I have tested my code in common scenarios and confirmed there are no regressions
  • I have added comments to my code, particularly in hard-to-understand sections

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

cataloger: golang source cataloger
1 participant