WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Releases: gomods/athens

v0.8.0: Quarantini Edition

17 Mar 20:27
939e695

Choose a tag to compare

👋 Hello Athenians! 👋

v0.8.0 is here! With it, we're now building with Go 1.14, we've got a bunch of great new features
in the redis single flight distributed lock, and some other minor updates to documentation

Big changes:

  • #1514: We revamped our end-to-end testing, making it easier to contribute changes and know if something is broken!
  • #1535: We now have documentation on how to deploy Athens with BOSH
  • #1545: You can now specify passwords for Redis single flight setups
  • #1554: Athens now supports using redis-sentinel as a single flight backend

We'd also love to give a shout out to Netlify. We recently switched to their open-source plan for our documentation site, and couldn't be happier!

For a full list of changes, click here

👏 Last, and certainly not least: We've love to give a huge round of applause to our contributors for this release:

v0.7.2

25 Jan 18:27
ba40b8f

Choose a tag to compare

👋 there 🏛s

This release brings a few important bug fixes when it comes to environment variables.

GO_ENV=production

If you were using v0.7.1 and set the following env: GO_ENV=production and saw a build failure, this is now fixed. (#1529)

ATHENS_GO_BINARY_ENV_VARS

The GoBinaryEnvVars can be used to pass environment variables to the go command that Athens uses. This is important for setting things like GOPRIVATE, GOPROXY, GODEBUG and more.

Initially, we used the comma , to separate values as such GOPRIVATE=marwan.io/* , GOPROXY=direct -- However, this broke because sometimes you need the comma itself to be part of the value such as GOPRIVATE=github.com/marwan-at-work/*,marwan.io/*

Therefore, this release changes the separator for this env var from comma , to a semi colon ; as such:

ATHENS_GO_BINARY_ENV_VARS='GOPRIVATE=marwan.io/*,github.com/gomods/*; GOPROXY=direct'

For more information, see #1404

Also, for thorough information on how to use this and other config values please see https://github.com/gomods/athens/blob/release-v0.7.2/config.dev.toml

As always, THANK YOU to all the contributors and users -- if you have any issues or would like any help, don't hesitate to reach out to us on the Gopher Slack (#athens) or open an issue on GitHub.

Thanks!

v0.7.1

15 Jan 22:10
1573339

Choose a tag to compare

👋 Waves to everybody 👋

This release makes pattern matching in the Download File behave the same way as GOPROXY and friends. In other words, you can set a path to *.my_company/go/* to match both a sub domain and a path suffix. For more info see #1408

The GO_ENV=production line was removed from the Dockerfile, this was done because the Env Var always overrode whatever the user has put in the Config TOML file.

If you were relying on the Dockerfile having this set automatically, you must now explicitly pass it either through an Env Var or through the Config TOML file.

There was also a lot of documentation updates since the last release and if you see there's anything missing, don't hesitate to open an issue!

As always, THANK YOU to all of the users and contributors. Athens is purely developed and maintained by the Go community so give it up to yourselves 👏

v0.7.0

17 Oct 01:52

Choose a tag to compare

Hi Athenians!

This release brings 🤞more stability 🤞 to Athens through documentation and bug fixes.

Most notably, the DownloadFile will follow the same exact rules as our NoSumPatterns config which follows the same exact rules for GONOSUMDB and friends: matches will be based on path.Match based on path prefixes.

In other words, having NoSumPatterns=["github.com/org/*"] will match all repositories, sub-packages, and sub-modules such as "github.com/org/repo" and "github.com/org/repo/v2". This is especially important if you run a vanity import server so you can match the whole organization such as NoSumPatterns=mycompany.org

For more info see here

For a list of what has changed since the last release, check out v0.6.1...v0.7.0

As always, thank you to all of the contributors and the users that have reported issues and kept us on our toes to bring fixes and better documentation.

Athens is fully built and maintained by the open source and seeing individuals as well as companies large and small use it is a huge reward for all of us. Speaking of which, if you use Athens feel free to drop a note here: #1323

Thank you!

Fix Sum DB Errors

23 Sep 18:09
298c6cd

Choose a tag to compare

Hi Athenians,
The v0.6.0 had an important bug (#1390) where all private modules that were not already in storage failed to be downloaded.

This release fixes that bug. Please give it a try and let us know!

On a similar note, if you have private import paths make sure you tell Athens that through the NoSumPatterns config. Otherwise, go mod download will fail!

Furthermore, you can now pass any GO* environment variable to go mod download that Athens runs through the GoBinaryEnvVars config such as GOPROXY and GOPRIVATE

For more, see our example config file here: https://github.com/gomods/athens/blob/master/config.dev.toml

v0.6.0

13 Sep 18:03
8db652e

Choose a tag to compare

Hi Athenians!

This release brings better compatibility with the newly released Go 1.13 ✌️

Athens now uses Go 1.13 under the hood to list/download Go Modules. Furthermore, you can specify the GOPROXY option from within Athens when a module is not found in storage.

Athens now also returns 404 on all list/download errors so that comma-separated GOPROXY clients can function correctly.

For all of the changes between v0.5.0 and v0.6.0 please take a look at: v0.5.0...v0.6.0

As always, a huge THANK YOU to everyone who used, contributed to, and improved on Athens and its community :)

Peace,

v0.5.0

01 Jul 19:28

Choose a tag to compare

Hi Athenians!

This release includes an exciting new feature as well as fixes and enhancements to our helm charts. All changes since v0.4.0 can be found here

The biggest part of this release is the addition of the Download Mode and a greatly improved download and filter configuration file. You can now choose from 5 different modes to configure how Athens should treat any module or module glob when that module is missing from local storage. And there are new features hidden inside these modes! For example, Athens can now download modules from upstream code hosts synchronously or asynchronously 🎉.

The new download modes features unlock Go 1.13's new feature of allowing comma-separted URLs in the GOPROXY variable.

For more information on the Download Mode see: https://docs.gomods.io/configuration/download/

As always, THANK YOU to the community members who put their own free time and love into this. We couldn't have done this without you!

If you'd like to contribute or have any questions, reach out to us on the #athens channel at https://gophers.slack.com.

If you find any bugs or difficulties, don't hesitate to open an issue on this repository!

Enjoy!

image

v0.4.0

09 May 20:43

Choose a tag to compare

Hi Athenians!

This release includes new features, patches, and better documentation. All changes since v0.3.1 can be found here

BUT our favorite part of this release is the fact that incredibly awesome people have added translations to some of our docs! Check them out here and here

Here are some more highlights for what v0.4.0 brings:

  1. Added Datadog as one of the supported metrics backends 🐶
  2. Many fixes and enhancements to our Helm charts 💯
  3. Added the ability to proxy a Checksum DB URL, more here
  4. Wrapped our Dockerfile with tini so that zombie processes are properly removed.
  5. Added both GCS and Azure Blobs as a distributed lock mechanism so that concurrent persistence is synchronized.

As always, THANK YOU to the community members who put their own free time and love into this. We couldn't have done this without you!

If you'd like to contribute or have any questions, reach out to us on the #athens channel at https://gophers.slack.com.

If you find any bugs or difficulties, don't hesitate to open an issue on this repository!

Enjoy!

image

v0.3.1

09 Mar 22:52
a4450c1

Choose a tag to compare

Minio Memory Fix

This is a patch release for those who use Minio as their backend storage. Otherwise, feel free to continue using v0.3.0.

The minio-go client allocates ~700Mb of memory when the size of the blob is unknown. This is by design according to this issue and therefore this patch makes it so that we segment the stream into 8Mb sections and upload them to Minio during a module save operation.

This will avoid bloating the heap and so Athens running on smaller containers should work much better.

Thanks again and please give this a try and report back any issues!

Medusa

04 Mar 22:34

Choose a tag to compare

v0.3.0 A.K.A Medusa ✌️ 🎉

This release brings us a lot closer to a stable and mature Go Proxy.

About 104 pull requests were poured in since last release (with nothing but love and probably some hard work).

So, a gigantic THANK YOU to all of the users, contributors, and maintainers that helped make Athens a positive open source project.

Cool Stuff You Can Now do With Go Modules and Athens

Strap in, there's a lot of new stuff here since v0.2.0!!!

  1. You can now run Athens in the background for your day to day workflow. Like literally on your local development machine or on a VM in the cloud. Not just in CI/CD.

  2. You can run go get (and friends) outside of a module context thanks to go 1.12, and Athens can support this seamlessly. Here's an example that illustrates what we're talking about:

    $ cd ~
    $ export GO111MODULE=on
    $ export GOPROXY=http://localhost:3000
    $ go install github.com/gomods/athens/cmd/proxy

    These commands will use Athens to install an Athens binary to your $GOPATH/bin directory.

  3. You can run dynamic versions such as go get github.com/pkg/errors@master where @master gets translated into the latest version in that module's repository. Athens will then store that pseudo version. In other words, you can do @master and Athens will figure it out, and things will "just work". Oh, and you can also do the same thing for dynamic versions like latest and for full commit SHAs.

  4. For most storage drivers, we added a /catalog endpoint that can list the modules in your storage. This endpoint is a handy way to build a simple dashboard on top of Athens.

    Want to build one of these into Athens? Come talk to us!

  5. You can now opt-in to an experimental "distributed single flight" mechanism that lets you run multiple Athens instances at once, and be sure that storage persistence is done without conflict. In other words, you can run a cluster of Athens servers now!

  6. You now don't need a config.toml file to run Athens. We have the defaults equally hard-coded so that new-comers don't have to worry about setting up configuration at all. For example, if you download a new Athens binary, you can just run it anywhere on your laptop with no fuss.

  7. You can now filter modules by versions and not just module paths. We'll add more docs on this shortly after the release. And look for more power in the filtering syntax soon.

Breaking Change In Go Upstream

As you might know, Go 1.11.4 introduced a breaking change that broke checksum calculations. If you've been using Athens v0.2.0 and are about to upgrade to v0.3.0, you might get a "checksum mismatch" error. Here's how to fix it:

  1. Locate the module path that had the checksum mismatch .
  2. Delete the two lines from go.sum so that Go can recalculate the checksums for you later.
  3. Delete the module@version from your Athens Storage Backend (so Go can recalculate the checksum)

To Inifinity! And Beyonnnnd!

Go Modules is still in its experimental phase but it's getting closer to being "on" by default. Until then, things might change and break in ways you don't expect (like the checksum change above!)

We're happy with the stability of Athens (some of us run Athens as a part of our regular builds!), but as always, please proceed with caution while modules is still experimental.

One More Thing

Yup, we had to quote the Apple keynotes.

tim-cook-apple-one-more-thing-e1412867859939-1940x1090

As usual, we want to especially call out the amazing community behind Athens. If you have used Athens, contributed, commented on an issue, talked to us, or anything else, you're part of our community. You are an Athenian! And we can't thank you enough for being with us.

We're excited for the awesomeness to come.

Here's to the future, Athenians and Gophers.

Keep on rockin'

❤️