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

proposal: cmd/go: doc -http should start a pkgsite instance and open a browser #68106

Open
adonovan opened this issue Jun 21, 2024 · 3 comments
Assignees
Labels
FeatureRequest GoCommand cmd/go pkgsite/cmd Issues related to x/pkgsite/cmd/pkgsite Proposal
Milestone

Comments

@adonovan
Copy link
Member

The go doc command displays documentation to stdout, which is handy for quick forays for a single package or symbol, but for extended reading a browser is more convenient, as it has better typography and linked cross-references. We propose that go doc -http should start a pkgsite instance in the background (if one is not running already) and open a web browser to the correct URL for the package or symbol.

The pkgsite program is currently rather large and slow to start as it was designed as a long-lived server for a large corpus on Google Cloud. Issue #61399 tracks the work so slim it down and reduce dependencies.

Open questions:

  • How should successive go doc processes communicate the port or pid of the running instance, and deal with server crashes?
  • The server would necessarily outlive the go command. Is an explicit "stop" operation necessary?
  • Should the -http flag be a boolean, or an integer port? I think boolean (picking any unused port) would be more friendly.

@rsc @matloob

@gopherbot gopherbot added this to the Proposal milestone Jun 21, 2024
@adonovan adonovan added FeatureRequest GoCommand cmd/go pkgsite/cmd Issues related to x/pkgsite/cmd/pkgsite and removed Proposal labels Jun 21, 2024
@gabyhelp
Copy link

Similar Issues

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

@qiulaidongfeng
Copy link
Member

I would like know to run go doc -http, which starts a pkgsite process and opens a browser, then waits for the syscall.SIGINT signal, and when it receives the signal, first close the pkgsite process and then exit itself ,how?

@adonovan
Copy link
Member Author

We could certainly make go doc -http block until interrupted before terminating the server. And perhaps that's the least surprising interface, as many Go commands that take an -http flag block indefinitely.

@matloob matloob self-assigned this Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FeatureRequest GoCommand cmd/go pkgsite/cmd Issues related to x/pkgsite/cmd/pkgsite Proposal
Projects
Status: Incoming
Development

No branches or pull requests

6 participants