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
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions docs/content/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,27 @@ Which currently includes:
- hg
- bzr
- fossil

### When should I use a vendor directory, and when should I use Athens?

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:?


- CI/CD systems don't have access to an Athens (even if it's internal)
- 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


- You have a new project
- Your team requires that you use Athens (i.e. for isolation or dependency auditing)
- Your vendor directory is large and causing slow checkouts and downloading from Athens speeds the build up
- 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!