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

Explain vendor vs proxy #1403

Merged
merged 15 commits into from
Oct 16, 2019
Merged

Conversation

schafer14
Copy link
Contributor

What is the problem I am trying to address?

There have been a few questions in the recent past about when/why to use a
vendor directory instead of (or along with) Athens or another proxy.

How is the fix applied?

I added a section to the FAQ that explains some pros and cons for when to use
vendor and when to use a proxy server like Athens.

Mention the issue number it fixes or add the details of the changes if it doesn't have a specific issue.

Fixes #1338

This is following up on PR #1340

@schafer14 schafer14 requested a review from a team as a code owner September 28, 2019 00:57
Copy link
Member

@arschles arschles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@schafer14 so awesome. Thanks for this, it's looking great 💚 . I made a few comments


The Go community has used vendor directories for a long time before module proxies like Athens came along, so naturally each group collaborating on code should decide for themselves whether they want to use a vendor directory, use Athens, or do both!

Vendor (without a proxy) are valuable when:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you write this as Using a vendor directory (without a proxy) is valuable when:?

- When the vendor directory is so small that it is still faster to check it out from a repo than it is to pull zip files from the server
- If you're coming from glide/dep or another dependency management system that leveraged the vendor directory

Athens valuable when:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you write this as Athens (without a vendor directory) is valuable when:? I want the docs to be clear that we're talking about just a proxy, and deleting the entire vendor directory

- For developers slow checkouts will not be as much of a problem as for ci tools which frequently need to checkout fresh copies of the project
- You do not want to pollute your project with the vendor directory
- Extra noise in pull requests
- Extra difficulty doing fuzzy file searching in your project
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate on this and the previous bullet point? It sounds like Athens will be valuable in reducing these two things. Is that right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is awkward phrasing. Is this easier to follow?

- You want to remove the vendor directory from your project to:
  - Reduce noise in pull requests
  - Reduce difficulty doing fuzzy file searching in your project

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most definitely, that's easier to follow!

Copy link
Member

@arschles arschles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@schafer14 this looks great. Thanks for your patience & making the changes. 🚀 :shipit: 🎉

I am going to hold off on merging this until one more person looks at it. @chriscoffee @marwan-at-work @robjloranger would any of you like to take a look?

Copy link
Member

@arschles arschles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm merging this now 🎉 🚀 😄

@arschles arschles merged commit 81102aa into gomods:master Oct 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

docs: make it easy to compare vendoring and athens
2 participants