Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
eec08ca
Remove partially-unpacked directory if the unpack failed.
mitchell-as May 13, 2026
eb7a9ad
Merge pull request #3807 from ActiveState/mitchell/eng-1044
mitchell-as May 15, 2026
5694346
Updated to Go 1.26.4.
mitchell-as Jun 15, 2026
ba4300d
Fixed build errors on Windows.
mitchell-as Jun 15, 2026
492b063
Merge pull request #3810 from ActiveState/mitchell/eng-1672
mitchell-as Jun 15, 2026
38ad97a
Forward platform JWT and version User-Agent on the build-log-streamer…
antoine-activestate Jun 1, 2026
f7a6c8b
Merge pull request #3811 from ActiveState/bring-in-build-log-streamer…
mitchell-as Jun 15, 2026
11cab39
Remediate CVEs.
mitchell-as Jun 15, 2026
97a37bd
Merge pull request #3812 from ActiveState/mitchell/eng-1672-2
mitchell-as Jun 15, 2026
4b0e691
Add artifactcrypto package: chunked AES-256-GCM content encryption (E…
mitchell-as Jun 22, 2026
6e657e7
Add org key custody backend: client-hosted HTTPS key service (ENG-1632)
mitchell-as Jun 22, 2026
a1c0267
Merge pull request #3813 from ActiveState/mitchell/eng-1631
mitchell-as Jun 22, 2026
6779777
Confine untrusted archive extraction under the destination root (ENG-…
mitchell-as Jun 22, 2026
c93560f
Decrypt and install encrypted private artifacts in the runtime setup …
mitchell-as Jun 23, 2026
d30489d
Surface skipped private ingredients to the user
mitchell-as Jun 23, 2026
3f26320
Address review feedback on the org key custody backend
mitchell-as Jun 23, 2026
b506230
Implement pure-Python wheel packer for local source trees
mitchell-as Jun 23, 2026
771f733
Fail the determinism test on unreadable wheels
mitchell-as Jun 23, 2026
6112d13
Detect absolute symlink targets cross-platform
mitchell-as Jun 23, 2026
ab9ef79
Merge pull request #3814 from ActiveState/mitchell/eng-1632
mitchell-as Jun 23, 2026
71e0cea
Merge pull request #3815 from ActiveState/mitchell/eng-1640
mitchell-as Jun 23, 2026
9e91521
Improve messaging around private packages not being installed due to …
mitchell-as Jun 23, 2026
334c832
Improve another org key message.
mitchell-as Jun 23, 2026
b22cf4d
Merge pull request #3816 from ActiveState/mitchell/eng-1635
mitchell-as Jun 23, 2026
edb4a30
Add --build to state publish: build, encrypt, wrap, upload
mitchell-as Jun 24, 2026
4090ca1
Enforce the project org namespace on --build publishes
mitchell-as Jun 24, 2026
31474f2
Verify downloaded artifact checksums.
mitchell-as Jun 24, 2026
4c0e4d8
Merge pull request #3817 from ActiveState/mitchell/eng-1633
mitchell-as Jun 25, 2026
2f47bf7
Add e2e integration test for encrypted publish and install (ENG-1643)
mitchell-as Jun 25, 2026
0551730
Inline the decryption check and broaden the depot search (ENG-1643)
mitchell-as Jun 25, 2026
0a8e9bc
Temporarily induce a failure to try and get terminal output and logs.
mitchell-as Jun 25, 2026
5b5f35d
Build private ingredients with the private-builder (ENG-1643)
mitchell-as Jun 25, 2026
0b1c200
Revert "Temporarily induce a failure to try and get terminal output a…
mitchell-as Jun 25, 2026
3f9da02
Decrypt private payloads nested under the install dir (ENG-1643)
mitchell-as Jun 25, 2026
4b8fdb7
Address review feedback on the decryption-check helpers (ENG-1643)
mitchell-as Jun 26, 2026
e2f2a73
Merge pull request #3818 from ActiveState/mitchell/eng-1634
mitchell-as Jun 26, 2026
e83d481
Merge pull request #3819 from ActiveState/mitchell/eng-1638
mitchell-as Jun 26, 2026
593c33b
Install decrypted private-ingredient wheels at consume time (ENG-1793)
mitchell-as Jun 29, 2026
7c84594
Match the runtime's PYTHONPATH directives when exposing site-packages…
mitchell-as Jun 29, 2026
2cf9b04
Use multilog.Error instead of logging.Error
mitchell-as Jun 29, 2026
5883842
Merge pull request #3821 from ActiveState/mitchell/eng-1643
mitchell-as Jun 30, 2026
4bedb00
Merge pull request #3822 from ActiveState/mitchell/eng-1793
mitchell-as Jul 6, 2026
d376fb5
Updated changelog.
mitchell-as Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
strategy:
matrix:
go-version:
- 1.24.11
- 1.26.4
sys:
- { os: ubuntu-latest }
- { os: macos-15-intel, shell: zsh }
Expand Down Expand Up @@ -442,7 +442,7 @@ jobs:
name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.24.x
go-version: 1.26.x

- # === Install State Tool ===
name: Install State Tool
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
name: Install Go
uses: actions/setup-go@v5
with:
go-version: '1.24.x'
go-version: '1.26.x'

- # === Install State Tool ===
name: Install State Tool
Expand Down
6 changes: 3 additions & 3 deletions activestate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,15 @@ scripts:
fi
if { [[ "$GOOS" == "windows" ]] || [[ "$OS" == "Windows_NT" ]]; } && ! type "goversioninfo" &> /dev/null; then
echo "goversioninfo was not found on your PATH. Installing .."
GOFLAGS="" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.4.0
GOFLAGS="" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.7.0
fi
- name: install-deps-ci
language: bash
standalone: true
value: |
if { [[ "$GOOS" == "windows" ]] || [[ "$OS" == "Windows_NT" ]]; } && ! type "goversioninfo" &> /dev/null; then
echo "goversioninfo was not found on your PATH. Installing .."
GOFLAGS="" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.4.0
GOFLAGS="" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.7.0
fi
- name: preprocess
language: bash
Expand Down Expand Up @@ -187,7 +187,7 @@ scripts:
if [[ "$GOOS" == "windows" || "$OS" == "Windows_NT" ]]; then
TARGET="${constants.BUILD_REMOTE_INSTALLER_TARGET}.exe"
fi
GOFLAGS="" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.4.0
GOFLAGS="" go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@v1.7.0
cd cmd/state-remote-installer
go generate
go build -tags "$GO_BUILD_TAGS" -o ../../$BUILD_TARGET_DIR/$TARGET .
Expand Down
21 changes: 19 additions & 2 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,32 @@ and this project adheres to

## 0.48.1

### Security
### Added

- Addressed all known, fixable CVEs.
- Added `state publish --build <path>`, which builds, encrypts, and publishes a private ingredient directly from a local
source directory. The ingredient's name, version, and namespace remain visible to the ActiveState Platform, but its
source contents do not — only the encrypted artifact is uploaded. (At this time, this feature only builds pure Python
wheels from a given source directory.)
- Private ingredients are now automatically decrypted and installed into your runtime on `state install`, `state pull`,
and `state checkout`, using the encryption key served by your organization's key service.
- Connecting to the key service is configured with new `state config` keys:
- `privateingredient.key_service_url`: the HTTPS URL of the key service.
- `privateingredient.key_service_ca`: path to a CA bundle or pinned certificate for verifying the service's TLS certificate.
- `privateingredient.mtls_cert`: path to a client certificate for mTLS authentication to the service.
- `privateingredient.mtls_key`: path to the client private key for mTLS authentication.
- `privateingredient.bearer_token_env`: name of an environment variable to read a bearer token from.
- `privateingredient.bearer_token_file`: path to a file to read a bearer token from.
- `privateingredient.cache_key_on_disk`: whether to cache the fetched key on disk for headless or offline reuse.

### Fixed

- Fixed occasional panic due to a concurrent map read/write during runtime setup.
- Fixed `state clean cache` from accidentally deleting State Tool binaries on Windows.

### Security

- Addressed all known, fixable CVEs.

## 0.48.0

### Added
Expand Down
5 changes: 5 additions & 0 deletions cmd/state/internal/cmdtree/publish.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@ func newPublish(prime *primer.Values) *captain.Command {
Description: locale.Tl("author_upload_metafile_description", "A yaml file expressing the ingredient meta information. Use --editor to review the file format."),
Value: &params.MetaFilepath,
},
{
Name: "build",
Description: locale.Tl("author_upload_build_description", "Build, encrypt, and publish a private ingredient from a local source directory. The ingredient name, version, and namespace remain visible to the platform; the source contents do not."),
Value: &params.Build,
},
},
[]*captain.Argument{
{
Expand Down
63 changes: 32 additions & 31 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/ActiveState/cli

go 1.24.11
go 1.26.4

require (
github.com/99designs/gqlgen v0.17.54
Expand Down Expand Up @@ -47,32 +47,32 @@ require (
github.com/spf13/cast v1.9.2
github.com/spf13/cobra v1.1.1
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.10.0
github.com/stretchr/testify v1.11.1
github.com/thoas/go-funk v0.8.0
github.com/vbauerster/mpb/v7 v7.1.5
github.com/vektah/gqlparser/v2 v2.5.16
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/net v0.47.0
golang.org/x/sys v0.38.0
golang.org/x/term v0.37.0
golang.org/x/text v0.31.0
golang.org/x/crypto v0.50.0 // indirect
golang.org/x/net v0.53.0
golang.org/x/sys v0.43.0
golang.org/x/term v0.42.0
golang.org/x/text v0.36.0
gopkg.in/AlecAivazis/survey.v1 v1.8.8
gopkg.in/toast.v1 v1.0.0-20180812000517-0a84660828b2
gopkg.in/yaml.v2 v2.4.0
modernc.org/sqlite v1.11.2
)

require (
github.com/aws/aws-sdk-go-v2 v1.36.6
github.com/aws/aws-sdk-go-v2 v1.41.5
github.com/aws/aws-sdk-go-v2/config v1.29.18
github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1
github.com/aws/aws-sdk-go-v2/service/s3 v1.97.3
github.com/bmatcuk/doublestar/v4 v4.7.1
github.com/brunoga/deep v1.2.4
github.com/cespare/xxhash v1.1.0
github.com/charmbracelet/bubbles v0.18.0
github.com/charmbracelet/bubbletea v0.25.0
github.com/charmbracelet/lipgloss v0.9.1
github.com/go-git/go-git/v5 v5.13.1
github.com/go-git/go-git/v5 v5.19.1
github.com/gowebpki/jcs v1.0.1
github.com/mark3labs/mcp-go v0.33.0
github.com/mholt/archives v0.1.5
Expand All @@ -82,38 +82,39 @@ require (
require (
dario.cat/mergo v1.0.0 // indirect
github.com/ActiveState/pty v0.0.0-20230628221854-6fb90eb08a14 // indirect
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/ProtonMail/go-crypto v1.1.3 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/ProtonMail/go-crypto v1.1.6 // indirect
github.com/STARRY-S/zip v0.2.3 // indirect
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.8 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.71 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.21 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.22 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.7 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.13 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.21 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.21 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.25.6 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.34.1 // indirect
github.com/aws/smithy-go v1.22.4 // indirect
github.com/aws/smithy-go v1.24.2 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/bodgit/plumbing v1.3.0 // indirect
github.com/bodgit/sevenzip v1.6.1 // indirect
github.com/bodgit/windows v1.0.1 // indirect
github.com/cloudflare/circl v1.6.1 // indirect
github.com/cloudflare/circl v1.6.3 // indirect
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
github.com/cyphar/filepath-securejoin v0.3.6 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.6.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/go-git/go-billy/v5 v5.9.0 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/klauspost/pgzip v1.2.6 // indirect
github.com/kr/pty v1.1.8 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
Expand All @@ -127,19 +128,19 @@ require (
github.com/muesli/termenv v0.15.2 // indirect
github.com/nwaples/rardecode/v2 v2.2.0 // indirect
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/pjbgf/sha1cd v0.6.0 // indirect
github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/skeema/knownhosts v1.3.0 // indirect
github.com/skeema/knownhosts v1.3.1 // indirect
github.com/sorairolake/lzip-go v0.3.8 // indirect
github.com/sosodev/duration v1.3.1 // indirect
github.com/spf13/afero v1.15.0 // indirect
github.com/yosida95/uritemplate/v3 v3.0.2 // indirect
go4.org v0.0.0-20230225012048-214862532bf5 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sync v0.20.0 // indirect
)

require (
github.com/BurntSushi/toml v1.3.2 // indirect
github.com/BurntSushi/toml v1.3.2
github.com/Netflix/go-expect v0.0.0-20201125194554-85d881c3777e // indirect
github.com/PuerkitoBio/purell v1.1.1 // indirect
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
Expand Down Expand Up @@ -189,9 +190,9 @@ require (
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.mongodb.org/mongo-driver v1.5.3 // indirect
golang.org/x/mod v0.29.0
golang.org/x/mod v0.34.0
golang.org/x/time v0.12.0 // indirect
golang.org/x/tools v0.38.0 // indirect
golang.org/x/tools v0.43.0 // indirect
gopkg.in/fsnotify.v1 v1.4.7 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
Expand Down
Loading
Loading