Skip to content

Commit fa62131

Browse files
committed
Release v2.4.0
1 parent 52bef92 commit fa62131

3 files changed

Lines changed: 60 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,38 @@
11
# CHANGELOG
22

3-
## v2.4.0-dev
3+
## v2.4.0 (2026-03-14)
44

5-
## v2.3.0
5+
### Enhancements
6+
7+
* Replace password based authentication with OAuth device flow
8+
* Add 2FA support for API write operations
9+
* Use OAuth tokens for hexpm and custom repositories
10+
* Add `--print-url` flag to `mix hex.search`
11+
* Include stdlib packages by default in `mix hex.search`
12+
* Change private docs URLs from *.hexdocs.pm to *.hexorgs.pm
13+
* Improve authentication error handling for package fetching
14+
15+
### Bug fixes
16+
17+
* Fix `--within-requirements` option in `mix hex.outdated`
18+
19+
### Security fixes
20+
21+
* Use safe deserialization for parsing package manifests
22+
23+
## v2.3.2 (2026-02-27)
24+
25+
### Security fixes
26+
27+
* Fix unsafe deserialization of Erlang terms in API responses (CVE-2026-21619)
28+
29+
## v2.3.1 (2025-10-26)
30+
31+
### Bug fixes
32+
33+
* Fix repository name verification for organizations and custom repositories
34+
35+
## v2.3.0 (2025-10-26)
636

737
### Enhancements
838

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
defmodule Hex.MixProject do
22
use Mix.Project
33

4-
@version "2.4.0-dev"
4+
@version "2.4.0"
55

66
def project do
77
[

scripts/release_hex.sh

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,29 @@
77
# HEX_FASTLY_BUILDS_SERVICE_ID=... \
88
# release_hex.sh HEX_VERSION
99
#
10-
# Unless ELIXIR_PEM is set, nothing is uploaded. After running, can be locally tested:
10+
# Pass --dry-run to build archives without uploading:
11+
#
12+
# $ release_hex.sh --dry-run HEX_VERSION
13+
#
14+
# After running, can be locally tested:
1115
#
1216
# $ (cd tmp && erl -S httpd)
1317
# $ HEX_BUILDS_URL=http://localhost:8000 mix local.hex --force
1418

1519
set -e -u -o pipefail
1620

1721
function main {
18-
hex_version=$1
22+
dry_run=false
23+
local args=()
24+
for arg in "$@"; do
25+
if [ "$arg" = "--dry-run" ]; then
26+
dry_run=true
27+
else
28+
args+=("$arg")
29+
fi
30+
done
31+
32+
hex_version=${args[0]}
1933
installs_dir="$PWD/tmp/installs"
2034
hex_csv="${installs_dir}/hex.csv"
2135
hex_1x_csv="${installs_dir}/hex-1.x.csv"
@@ -46,15 +60,22 @@ function main {
4660
build ${hex_version} 27.3.3 1.17.3 1.17.0 noble-20250404
4761

4862
# Elixir v1.18
49-
build ${hex_version} 25.3.2.20 1.18.0 1.18.0 noble-20250404 # need to use exactly 1.18.0 and that requires older otp & ubuntu
50-
build ${hex_version} 26.2.5.11 1.18.0 1.18.0 noble-20250404 # ditto
51-
build ${hex_version} 27.3.3 1.18.0 1.18.0 noble-20250404 # ditto
63+
build ${hex_version} 25.3.2.18 1.18.0 1.18.0 noble-20260210.1 # need to use exactly 1.18.0
64+
build ${hex_version} 26.2.5.18 1.18.0 1.18.0 noble-20260210.1 # ditto
65+
build ${hex_version} 27.3.4.9 1.18.0 1.18.0 noble-20260210.1 # ditto
66+
67+
# Elixir v1.19
68+
build ${hex_version} 26.2.5.18 1.19.5 1.19.0 noble-20260210.1
69+
build ${hex_version} 27.3.4.9 1.19.5 1.19.0 noble-20260210.1
70+
build ${hex_version} 28.4.1 1.19.5 1.19.0 noble-20260210.1
5271

5372
rm -rf _build
5473
rm "${hex_csv}.bak"
5574
rm "${hex_1x_csv}.bak"
5675

57-
if [ -n "${ELIXIR_PEM}" ]; then
76+
if [ "${dry_run}" = true ]; then
77+
echo "Dry run complete, archives in ${installs_dir}"
78+
elif [ -n "${ELIXIR_PEM}" ]; then
5879
openssl dgst -sha512 -sign "${ELIXIR_PEM}" "${hex_csv}" | openssl base64 > "${hex_csv}.signed"
5980
openssl dgst -sha512 -sign "${ELIXIR_PEM}" "${hex_1x_csv}" | openssl base64 > "${hex_1x_csv}.signed"
6081

0 commit comments

Comments
 (0)