Releases: gomods/athens
v0.13.0
What's Changed
- feat: Publish multi-arch docker image (amd64 and arm64) by @project0 in #1862
- Support Unix domain sockets for proxy server listener by @LINKIWI in #1865
- Fixing pacmod command by @arschles in #1583
- docs: update hugo-theme-learn version to latest master by @ngshiheng in #1871
- chore: switch from
interface{}
toany
by @nrwiersma in #1837 - fix(proxy): don't check TLS file permission by @uhthomas in #1880
- fix(pkg/stash): don't check status of all etcd endpoints on start by @uhthomas in #1889
- fix(pkg/stash): close etcd sessions by @uhthomas in #1887
- test: unit test for testing KindUnexpected case in Mongo query function by @yatesliang in #1883
- Updated link and format on the experimental public proxy by @ColumbiaMancera in #1864
- Bump golang.org/x/net from 0.8.0 to 0.17.0 by @dependabot in #1898
- Bump google.golang.org/grpc from 1.44.0 to 1.56.3 by @dependabot in #1900
New Contributors
- @project0 made their first contribution in #1862
- @LINKIWI made their first contribution in #1865
- @uhthomas made their first contribution in #1880
- @yatesliang made their first contribution in #1883
- @ColumbiaMancera made their first contribution in #1864
Full Changelog: v0.12.1...v0.13.0
v0.12.1
v0.12.0-rc1
What's Changed
- pkg/requestid: add Request ID to Athens requests and logs by @marwan-at-work in #1655
- Allow Athens to Propagate Authentication to Mod Download by @marwan-at-work in #1650
- Support IRSA for S3 bucket by @bnrjee in #1673
- Add Content-Length to .zip requests by @marwan-at-work in #1681
- Fix permissions for /config/config.toml so Athens can run as non-root by @tzvetkoff in #1699
- Removing the known limitations file by @arschles in #1710
- Skip content length when it is not available in headers by @linzhp in #1719
- Enable Athens to work in offline mode by @marwan-at-work in #1717
- Using directory as prefix for S3 by @linzhp in #1720
- Update mongo client to address CVE by @marwan-at-work in #1728
- Fixing panic with S3 storage by @arschles in #1730
- Deprecate bzr as it is unmaintained. by @manugupt1 in #1742
- a new way to pre-fill disk storage by @alex-user-go in #1747
- fix flake on redis-sentinel by depending on redis container / step. by @manugupt1 in #1748
- Remove deprecated GOPROXY in favor of GoBinaryEnvVars by @manugupt1 in #1759
- Resolve memory leaks when using Minio storage by @jorng in #1777
- build releases for x86_64 by @JefMasereel in #1779
- remove checked in main binary by @rski in #1782
- Passing http client to S3 client by @linzhp in #1786
- copy context before starting stash operations to prevent ctx cancellations by @r-ashish in #1790
- fix s3 credentials set to anonymous by default by @r-ashish in #1789
- Register HTTP client views for stats by @linzhp in #1787
- read redis lock options from config to support custom TTL & timeout by @r-ashish in #1791
- Update s3 checker to iterate through all objects pages by @ngshiheng in #1802
- Adding new fields to RevInfo by @linzhp in #1812
- Make shutdown timeout configurable by @jorng in #1806
- Handle SIGTERM on unix-like OS by @jorng in #1805
- Pass Athens's logger to the Redis package by @mikesep in #1817
- Handle duplicate keys returned by S3 ListObject by @linzhp in #1793
- Update lib/pq to fix cert permissions issues by @jorng in #1804
- Moved helm chart to new repo by @DrPsychick in #1820
- Calling HeadObjectWithContext() concurrently to check the existence of a module by @linzhp in #1844
- Removing Exists() check from S3 getters by @linzhp in #1842
- feat: add non-root user to docker image by @nrwiersma in #1843
- Refactoring: Use errors.AsErr by @linzhp in #1849
- chore: Bump Go to 1.20 by @nrwiersma in #1838
- Update alpine to 3.17 and build smaller binary. by @manugupt1 in #1850
New Contributors
- @qbit made their first contribution in #1660
- @arothste-blk made their first contribution in #1623
- @trenton42 made their first contribution in #1674
- @owenhaynes made their first contribution in #1672
- @bnrjee made their first contribution in #1673
- @iamnande made their first contribution in #1708
- @tzvetkoff made their first contribution in #1699
- @guoshimin made their first contribution in #1732
- @jason-liew made their first contribution in #1741
- @abhay-krishna made their first contribution in #1739
- @rbrtl made their first contribution in #1744
- @alex-user-go made their first contribution in #1747
- @StevenACoffman made their first contribution in #1751
- @dependabot made their first contribution in #1753
- @qiuyuzhou made their first contribution in #1769
- @JefMasereel made their first contribution in #1779
- @rski made their first contribution in #1782
- @r-ashish made their first contribution in #1790
- @ngshiheng made their first contribution in #1802
- @nrwiersma made their first contribution in #1816
- @mikesep made their first contribution in #1817
- @Juneezee made their first contribution in #1821
- @DrPsychick made their first contribution in #1820
Full Changelog: v0.11.0...v0.12.0-rc1
v0.12.0
What's Changed
- pkg/requestid: add Request ID to Athens requests and logs by @marwan-at-work in #1655
- Allow Athens to Propagate Authentication to Mod Download by @marwan-at-work in #1650
- Support IRSA for S3 bucket by @bnrjee in #1673
- Add Content-Length to .zip requests by @marwan-at-work in #1681
- Fix permissions for /config/config.toml so Athens can run as non-root by @tzvetkoff in #1699
- Removing the known limitations file by @arschles in #1710
- Skip content length when it is not available in headers by @linzhp in #1719
- Enable Athens to work in offline mode by @marwan-at-work in #1717
- Using directory as prefix for S3 by @linzhp in #1720
- Update mongo client to address CVE by @marwan-at-work in #1728
- Fixing panic with S3 storage by @arschles in #1730
- Deprecate bzr as it is unmaintained. by @manugupt1 in #1742
- a new way to pre-fill disk storage by @alex-user-go in #1747
- fix flake on redis-sentinel by depending on redis container / step. by @manugupt1 in #1748
- Remove deprecated GOPROXY in favor of GoBinaryEnvVars by @manugupt1 in #1759
- Resolve memory leaks when using Minio storage by @jorng in #1777
- build releases for x86_64 by @JefMasereel in #1779
- remove checked in main binary by @rski in #1782
- Passing http client to S3 client by @linzhp in #1786
- copy context before starting stash operations to prevent ctx cancellations by @r-ashish in #1790
- fix s3 credentials set to anonymous by default by @r-ashish in #1789
- Register HTTP client views for stats by @linzhp in #1787
- read redis lock options from config to support custom TTL & timeout by @r-ashish in #1791
- Update s3 checker to iterate through all objects pages by @ngshiheng in #1802
- Adding new fields to RevInfo by @linzhp in #1812
- Make shutdown timeout configurable by @jorng in #1806
- Handle SIGTERM on unix-like OS by @jorng in #1805
- Pass Athens's logger to the Redis package by @mikesep in #1817
- Handle duplicate keys returned by S3 ListObject by @linzhp in #1793
- Update lib/pq to fix cert permissions issues by @jorng in #1804
- Moved helm chart to new repo by @DrPsychick in #1820
- Calling HeadObjectWithContext() concurrently to check the existence of a module by @linzhp in #1844
- Removing Exists() check from S3 getters by @linzhp in #1842
- feat: add non-root user to docker image by @nrwiersma in #1843
- Refactoring: Use errors.AsErr by @linzhp in #1849
- chore: Bump Go to 1.20 by @nrwiersma in #1838
- Update alpine to 3.17 and build smaller binary. by @manugupt1 in #1850
New Contributors
- @qbit made their first contribution in #1660
- @arothste-blk made their first contribution in #1623
- @trenton42 made their first contribution in #1674
- @owenhaynes made their first contribution in #1672
- @bnrjee made their first contribution in #1673
- @iamnande made their first contribution in #1708
- @tzvetkoff made their first contribution in #1699
- @guoshimin made their first contribution in #1732
- @jason-liew made their first contribution in #1741
- @abhay-krishna made their first contribution in #1739
- @rbrtl made their first contribution in #1744
- @alex-user-go made their first contribution in #1747
- @StevenACoffman made their first contribution in #1751
- @dependabot made their first contribution in #1753
- @qiuyuzhou made their first contribution in #1769
- @JefMasereel made their first contribution in #1779
- @rski made their first contribution in #1782
- @r-ashish made their first contribution in #1790
- @ngshiheng made their first contribution in #1802
- @nrwiersma made their first contribution in #1816
- @mikesep made their first contribution in #1817
- @Juneezee made their first contribution in #1821
- @DrPsychick made their first contribution in #1820
Full Changelog: v0.11.0...v0.12.0
v0.11.0
Welcome Athenians! v0.11.0 has a few features and several internal & infrastructural changes to improve stability and robustness:
- In #1656, #1652, and #1655, we improved tests and log output. These changes should make it slighty easier for Athens developers and operators
- In #1659, #1672, and #1677, we upgraded the Helm charts:
- In #1673, we added configuration to support IAM Roles for Service Accounts for Athens configured with S3. This means that Athens can now use the default credentials for an S3 bucket when it's running in AWS, rather than having to hard-code them in configuration
- In #1681, we added the
Content-Length
header to.zip
requests, which means that Athens can now integrate with pkgsite - And last, but not least in #1623, we started using goreleaser to publish Athens binaries to each release page (starting with this one!). We only publish amd64 bit binaries for Linux and (Intel) Mac machines. Please submit an issue to request other builds/architectures if you would like them
Thanks to all of the contributors for the above PRs and everything else in this release!
Much ❤️ from the Athens maintainers 😄
v0.10.0: Goodbye master, hello main.
Hi Athenians 👋
This release brings about a few exciting changes. For the full list of commits see v0.9.0...v0.10.0
-
We changed our main branch from
master
tomain
🎉 -
Athens support for the
/index
endpoint 🗂️. This makes Athens behave not only similarly toproxy.golang.org
but also toindex.golang.org
. To turn it on and configure a backend for storing indexes, check out our configuration. This makes Athens integrate well with the newly open source Package Discovery Site. We will write more documentation on how to set everything up once things get more stable 🎉 (but feel free to reach out on GitHub Discussions or Slack if you want help setting it up) -
Fixed a bug where users running Athens behind a path prefix were not able to proxy to the checksum db correctly: #1620
-
Fixed a bug where the Download File was not redirecting to URLs that had a path suffix: #1640
As always THANK YOU to our first time and recurring contributors. Athens is developed fully freely by the open source community so hope you like this release!
Don't hesitate to file issues or reach out to us at #athens on the Gohper Slack.
Open source contributors since v0.9.0:
v0.9.0: Crete Edition
Hi there, Athenians! Lately our releases have had bugfixes and medium sized features. Not today! This release has a big new feature. We've heard you want more storage backends, so we added an HTTP-based way you can build your own storage backends, without forking or recompiling Athens
We're calling it External Storage 😄 🚀 🎉
If you're interested in building your own external storage drivers, see the docs for details.
Other Changes 🔬
A lot of work went into external storage, but we still had a chance to fix bugs and add other features.
- If you're hacking on a built-in storage driver, you no longer have to implement
storage.Checker
- the storage system figures it out for you (0bb95c7) - You can now set the Kubernetes deployment strategy right from the Helm chart
values.yaml
file (cb286fb) - If you build your own Athens Docker images, you can specify the version of the base Alpine image (a846766)
- Athens is now built with Go version 1.14 by default (af0e699)
For the full list of changes, see here
Thanks To The Community 💚
As always, we couldn't have done this release without all the bug reports, feature requests, PRs, questions, and discussion from everyone in the community. This project exists because of you all
Thanks especially to @BradErz, @xytan0056, and @bclermont for their contributions in this release. Thanks folks!
Finally, if you'd like to contribute and see your GitHub name here next release, please talk to us in the #athens
channel on Gophers Slack. We would love to have you join us, and absolutely everybody is welcome.
v0.8.1: Saganaki edition
In this release, we fixed a bug that the v0.8.0 release introduced. Looking back to our last release, we added redis-sentinel
support for single-flight, but we introduced a bug in the config.dev.toml
file. In this release, we have fixed that bug by cherry-picking b2b384b (merged from #1581) into the release-v0.8.0
and creating a new tag.
Thanks @twexler for finding the bug and fixing it!
v0.8.0: Quarantini Edition
👋 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
👋 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!