Skip to content

Commit 0f7eadc

Browse files
antoinergdependabot[bot]paketo-botjericoppbusko
authored
merge upstream changes from v0.13.0 (#8)
* Bump the go-modules group with 1 update Bumps the go-modules group with 1 update: [github.com/containerd/containerd](https://github.com/containerd/containerd). - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](containerd/containerd@v1.7.8...v1.7.9) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: indirect update-type: version-update:semver-patch dependency-group: go-modules ... Signed-off-by: dependabot[bot] <[email protected]> * Bump golang.org/x/sys from 0.14.0 to 0.15.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.14.0 to 0.15.0. - [Commits](golang/sys@v0.14.0...v0.15.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Bump golang.org/x/crypto from 0.15.0 to 0.16.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.15.0 to 0.16.0. - [Commits](golang/crypto@v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Bump the go-modules group with 4 updates Bumps the go-modules group with 4 updates: [github.com/go-git/go-git/v5](https://github.com/go-git/go-git), [github.com/spf13/afero](https://github.com/spf13/afero), [github.com/spf13/cast](https://github.com/spf13/cast) and [golang.org/x/tools](https://github.com/golang/tools). Updates `github.com/go-git/go-git/v5` from 5.10.0 to 5.10.1 - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](go-git/go-git@v5.10.0...v5.10.1) Updates `github.com/spf13/afero` from 1.10.0 to 1.11.0 - [Release notes](https://github.com/spf13/afero/releases) - [Commits](spf13/afero@v1.10.0...v1.11.0) Updates `github.com/spf13/cast` from 1.5.1 to 1.6.0 - [Release notes](https://github.com/spf13/cast/releases) - [Commits](spf13/cast@v1.5.1...v1.6.0) Updates `golang.org/x/tools` from 0.15.0 to 0.16.0 - [Release notes](https://github.com/golang/tools/releases) - [Commits](golang/tools@v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: indirect update-type: version-update:semver-patch dependency-group: go-modules - dependency-name: github.com/spf13/afero dependency-type: indirect update-type: version-update:semver-minor dependency-group: go-modules - dependency-name: github.com/spf13/cast dependency-type: indirect update-type: version-update:semver-minor dependency-group: go-modules - dependency-name: golang.org/x/tools dependency-type: indirect update-type: version-update:semver-minor dependency-group: go-modules ... Signed-off-by: dependabot[bot] <[email protected]> * Bump the go-modules group with 2 updates Bumps the go-modules group with 2 updates: [github.com/containerd/containerd](https://github.com/containerd/containerd) and [github.com/google/go-containerregistry](https://github.com/google/go-containerregistry). Updates `github.com/containerd/containerd` from 1.7.9 to 1.7.10 - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](containerd/containerd@v1.7.9...v1.7.10) Updates `github.com/google/go-containerregistry` from 0.16.1 to 0.17.0 - [Release notes](https://github.com/google/go-containerregistry/releases) - [Changelog](https://github.com/google/go-containerregistry/blob/main/.goreleaser.yml) - [Commits](google/go-containerregistry@v0.16.1...v0.17.0) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: indirect update-type: version-update:semver-patch dependency-group: go-modules - dependency-name: github.com/google/go-containerregistry dependency-type: indirect update-type: version-update:semver-minor dependency-group: go-modules ... Signed-off-by: dependabot[bot] <[email protected]> * Bump the go-modules group with 1 update Bumps the go-modules group with 1 update: [github.com/klauspost/compress](https://github.com/klauspost/compress). - [Release notes](https://github.com/klauspost/compress/releases) - [Changelog](https://github.com/klauspost/compress/blob/master/.goreleaser.yml) - [Commits](klauspost/compress@v1.17.3...v1.17.4) --- updated-dependencies: - dependency-name: github.com/klauspost/compress dependency-type: indirect update-type: version-update:semver-patch dependency-group: go-modules ... Signed-off-by: dependabot[bot] <[email protected]> * Bump the go-modules group with 1 update Bumps the go-modules group with 1 update: [github.com/paketo-buildpacks/occam](https://github.com/paketo-buildpacks/occam). - [Release notes](https://github.com/paketo-buildpacks/occam/releases) - [Commits](paketo-buildpacks/occam@v0.17.0...v0.18.0) --- updated-dependencies: - dependency-name: github.com/paketo-buildpacks/occam dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-modules ... Signed-off-by: dependabot[bot] <[email protected]> * Bump the go-modules group with 1 update Bumps the go-modules group with 1 update: [github.com/pierrec/lz4/v4](https://github.com/pierrec/lz4). - [Commits](pierrec/lz4@v4.1.18...v4.1.19) --- updated-dependencies: - dependency-name: github.com/pierrec/lz4/v4 dependency-type: indirect update-type: version-update:semver-patch dependency-group: go-modules ... Signed-off-by: dependabot[bot] <[email protected]> * Bump golang.org/x/crypto from 0.14.0 to 0.17.0 in /dependency/retrieval Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0. - [Commits](golang/crypto@v0.14.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Bump golang.org/x/crypto from 0.16.0 to 0.17.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0. - [Commits](golang/crypto@v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Bump github.com/containerd/containerd from 1.7.10 to 1.7.11 Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.10 to 1.7.11. - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](containerd/containerd@v1.7.10...v1.7.11) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Bump github.com/go-git/go-git/v5 from 5.10.1 to 5.11.0 Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.10.1 to 5.11.0. - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](go-git/go-git@v5.10.1...v5.11.0) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Bump github.com/cloudflare/circl in /dependency/retrieval Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.3 to 1.3.7. - [Release notes](https://github.com/cloudflare/circl/releases) - [Commits](cloudflare/circl@v1.3.3...v1.3.7) --- updated-dependencies: - dependency-name: github.com/cloudflare/circl dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Bump github.com/go-git/go-git/v5 in /dependency/retrieval Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.4.2 to 5.11.0. - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](go-git/go-git@v5.4.2...v5.11.0) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Updating buildpack.toml with new versions 3.11.7 * Updating buildpack.toml with new versions 3.12.1 * Updating buildpack.toml with new versions 3.11.8, 3.12.2 * Updating github-config * Updating github-config * Updating github-config * Updating github-config * Updating github-config * Updating github-config * Updating github-config * Updating github-config * Updating github-config * Bump github.com/opencontainers/runc from 1.1.10 to 1.1.12 Bumps [github.com/opencontainers/runc](https://github.com/opencontainers/runc) from 1.1.10 to 1.1.12. - [Release notes](https://github.com/opencontainers/runc/releases) - [Changelog](https://github.com/opencontainers/runc/blob/v1.1.12/CHANGELOG.md) - [Commits](opencontainers/runc@v1.1.10...v1.1.12) --- updated-dependencies: - dependency-name: github.com/opencontainers/runc dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Updating github-config * Updating github-config * Updating github-config * Allow user to remove setuptools by setting BP_CPYTHON_RM_SETUPTOOLS env var * Bump google.golang.org/protobuf from 1.31.0 to 1.33.0 Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> * Updating github-config * Updating buildpack.toml with new versions 3.10.14, 3.8.19, 3.9.19 * Add support for Ubuntu Noble dependencies (paketo-buildpacks#710) * Add Noble dependencies * add dependency test for noble Co-authored-by: Ralf Pannemans <[email protected]> --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: paketo-bot <[email protected]> Co-authored-by: Jerico Pena <[email protected]> Co-authored-by: Pavel Busko <[email protected]> Co-authored-by: Ralf Pannemans <[email protected]>
1 parent 0385f25 commit 0f7eadc

25 files changed

+591
-180
lines changed

.github/workflows/create-draft-release.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,8 @@ jobs:
5353
- name: Checkout
5454
uses: actions/checkout@v3
5555
- name: Run Integration Tests
56-
run: ./scripts/integration.sh --use-token --builder ${{ matrix.builder }}
56+
run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }}
5757
env:
58-
GIT_TOKEN: ${{ github.token }}
5958
TMPDIR: "${{ runner.temp }}"
6059

6160
release:

.github/workflows/test-pull-request.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,8 @@ jobs:
5555
uses: actions/checkout@v3
5656

5757
- name: Run Integration Tests
58-
run: ./scripts/integration.sh --use-token --builder ${{ matrix.builder }}
58+
run: ./scripts/integration.sh --builder ${{ matrix.builder }} --token ${{ github.token }}
5959
env:
60-
GIT_TOKEN: ${{ github.token }}
6160
TMPDIR: "${{ runner.temp }}"
6261

6362
roundup:

build.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717

1818
//go:generate faux --interface DependencyManager --output fakes/dependency_manager.go
1919
//go:generate faux --interface PythonInstaller --output fakes/installer.go
20+
//go:generate faux --interface PythonPipCleanup --output fakes/pip_cleanup.go
2021
//go:generate faux --interface SBOMGenerator --output fakes/sbom_generator.go
2122

2223
// DependencyManager defines the interface for picking the best matching
@@ -38,6 +39,11 @@ type PythonInstaller interface {
3839
) error
3940
}
4041

42+
// PythonPipCleanup defines the interface for cleaning up pip after a python installation
43+
type PythonPipCleanup interface {
44+
Cleanup(packages []string, targetLayer string) error
45+
}
46+
4147
type SBOMGenerator interface {
4248
GenerateFromDependency(dependency postal.Dependency, dir string) (sbom.SBOM, error)
4349
}
@@ -51,6 +57,7 @@ type SBOMGenerator interface {
5157
func Build(
5258
dependencies DependencyManager,
5359
pythonInstaller PythonInstaller,
60+
pipCleanup PythonPipCleanup,
5461
sbomGenerator SBOMGenerator,
5562
logger scribe.Emitter,
5663
clock chronos.Clock,
@@ -181,6 +188,17 @@ func Build(
181188
duration = downloadDuration
182189
}
183190

191+
pipCleanupDuration, err := clock.Measure(func() error {
192+
if _, ok := os.LookupEnv("BP_CPYTHON_RM_SETUPTOOLS"); ok {
193+
return pipCleanup.Cleanup(pipPackagesToBeUninstalled(), cpythonLayer.Path)
194+
}
195+
return nil
196+
})
197+
if err != nil {
198+
return packit.BuildResult{}, err
199+
}
200+
duration += pipCleanupDuration
201+
184202
logger.Action("Completed in %s", duration.Round(time.Millisecond))
185203
logger.Break()
186204

build_test.go

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
3131
clock chronos.Clock
3232
dependencyManager *fakes.DependencyManager
3333
pythonInstaller *fakes.PythonInstaller
34+
pipCleanup *fakes.PythonPipCleanup
3435
sbomGenerator *fakes.SBOMGenerator
3536
buffer *bytes.Buffer
3637
logEmitter scribe.Emitter
@@ -108,7 +109,9 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
108109

109110
pythonInstaller = &fakes.PythonInstaller{}
110111

111-
build = cpython.Build(dependencyManager, pythonInstaller, sbomGenerator, logEmitter, clock)
112+
pipCleanup = &fakes.PythonPipCleanup{}
113+
114+
build = cpython.Build(dependencyManager, pythonInstaller, pipCleanup, sbomGenerator, logEmitter, clock)
112115

113116
})
114117

@@ -203,6 +206,7 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
203206

204207
// Pre-compiled binary installation does not call pythonInstaller.Install
205208
Expect(pythonInstaller.InstallCall.CallCount).To(Equal(0))
209+
Expect(pipCleanup.CleanupCall.CallCount).To(Equal(0))
206210
})
207211

208212
it("returns a result that compiles and installs python from source", func() {
@@ -222,6 +226,7 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
222226
Expect(err).NotTo(HaveOccurred())
223227

224228
Expect(pythonInstaller.InstallCall.CallCount).To(Equal(1))
229+
Expect(pipCleanup.CleanupCall.CallCount).To(Equal(0))
225230

226231
Expect(result.Layers).To(HaveLen(1))
227232
layer := result.Layers[0]
@@ -441,6 +446,26 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
441446
})
442447
})
443448

449+
context("when the BP_CPYTHON_RM_SETUPTOOLS env var is set", func() {
450+
it.Before(func() {
451+
t.Setenv("BP_CPYTHON_RM_SETUPTOOLS", "value-is-ignored")
452+
})
453+
454+
it("pip cleanup is called", func() {
455+
_, err := build(buildContext)
456+
Expect(err).NotTo(HaveOccurred())
457+
Expect(pipCleanup.CleanupCall.CallCount).To(Equal(1))
458+
})
459+
})
460+
461+
context("when the BP_CPYTHON_RM_SETUPTOOLS env var is not set", func() {
462+
it("pip cleanup is not called", func() {
463+
_, err := build(buildContext)
464+
Expect(err).NotTo(HaveOccurred())
465+
Expect(pipCleanup.CleanupCall.CallCount).To(Equal(0))
466+
})
467+
})
468+
444469
context("failure cases", func() {
445470
context("when the dependency cannot be resolved", func() {
446471
it.Before(func() {
@@ -515,6 +540,24 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
515540
})
516541
})
517542

543+
context("when the BP_CPYTHON_RM_SETUPTOOLS env var is set", func() {
544+
it.Before(func() {
545+
t.Setenv("BP_CPYTHON_RM_SETUPTOOLS", "value-is-ignored")
546+
})
547+
548+
context("pip cleanup call fails with error", func() {
549+
it.Before(func() {
550+
pipCleanup.CleanupCall.Returns.Error = errors.New("failed to uninstall pip package")
551+
})
552+
553+
it("returns an error", func() {
554+
_, err := build(buildContext)
555+
Expect(pipCleanup.CleanupCall.CallCount).To(Equal(1))
556+
Expect(err).To(MatchError("failed to uninstall pip package"))
557+
})
558+
})
559+
})
560+
518561
context("installing python from source", func() {
519562
it.Before(func() {
520563
dependencyManager.ResolveCall.Returns.Dependency.Source = dependencyManager.ResolveCall.Returns.Dependency.URI

buildpack.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -278,14 +278,14 @@ api = "0.7"
278278
version = "3.11.3"
279279

280280
[[metadata.dependencies]]
281-
checksum = "sha256:b87a3ef940234b0010b310d537a8bce351dc391fdc67f66873a2ef3ec0d4a840"
282-
cpe = "cpe:2.3:a:python:python:3.12.0:*:*:*:*:*:*:*"
281+
checksum = "sha256:b1b60a0153ce4fb9558ac63c88cb302c28e81e16659c2926dac1d568783b0fff"
282+
cpe = "cpe:2.3:a:python:python:3.11.8:*:*:*:*:*:*:*"
283283
id = "python"
284284
licenses = ["0BSD", "CNRI-Python-GPL-Compatible", "PSF-2.0"]
285285
name = "Python"
286-
purl = "pkg:generic/python@3.12.0?checksum=51412956d24a1ef7c97f1cb5f70e185c13e3de1f50d131c0aac6338080687afb&download_url=https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz"
287-
source = "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz"
288-
source-checksum = "sha256:51412956d24a1ef7c97f1cb5f70e185c13e3de1f50d131c0aac6338080687afb"
286+
purl = "pkg:generic/python@3.11.8?checksum=d3019a613b9e8761d260d9ebe3bd4df63976de30464e5c0189566e1ae3f61889&download_url=https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz"
287+
source = "https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz"
288+
source-checksum = "sha256:d3019a613b9e8761d260d9ebe3bd4df63976de30464e5c0189566e1ae3f61889"
289289
stacks = ["io.buildpacks.stacks.bionic"]
290290
uri = "http://dash-app-resources.plotly-system.svc.cluster.local/packages/kpack-offline-files/python_3.12.0_linux_x64_bionic_b87a3ef9.tgz"
291291
version = "3.12.0"

dependency/actions/compile/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Running compilation locally:
44
```shell
55
docker build --tag compilation-<target> --file <target>.Dockerfile .
66

7+
# Noble example
8+
docker build --tag compilation-noble --file noble.Dockerfile .
9+
710
# Jammy example
811
docker build --tag compilation-jammy --file jammy.Dockerfile .
912

@@ -20,6 +23,9 @@ output_dir=$(mktemp -d)
2023
```shell
2124
$ docker run --volume $output_dir:/tmp/compilation compilation-<target> --outputDir /tmp/compilation --target <target> --version <version>
2225

26+
# Noble example
27+
$ docker run --volume $output_dir:/tmp/compilation compilation-noble --outputDir /tmp/compilation --target noble --version 3.10.7
28+
2329
# Jammy example
2430
$ docker run --volume $output_dir:/tmp/compilation compilation-jammy --outputDir /tmp/compilation --target jammy --version 3.10.7
2531

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM ubuntu:noble
2+
3+
ENV DEBIAN_FRONTEND noninteractive
4+
5+
RUN apt-get update && \
6+
apt-get -y install --no-install-recommends \
7+
apt-utils \
8+
build-essential \
9+
ca-certificates \
10+
curl \
11+
dialog \
12+
libbz2-dev \
13+
libdb-dev \
14+
libffi-dev \
15+
libgdbm-dev \
16+
liblzma-dev \
17+
libreadline-dev \
18+
libsqlite3-dev \
19+
libssl-dev \
20+
ncurses-dev \
21+
tk8.6-dev \
22+
tzdata \
23+
xz-utils \
24+
&& apt-get -y --force-yes -d install --no-install-recommends --reinstall libtcl8.6 libtk8.6 libxss1
25+
26+
COPY entrypoint.sh /entrypoint.sh
27+
28+
ENTRYPOINT ["/entrypoint.sh"]

dependency/retrieval/go.mod

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,40 +13,42 @@ require (
1313
)
1414

1515
require (
16+
dario.cat/mergo v1.0.0 // indirect
1617
github.com/BurntSushi/toml v1.2.0 // indirect
1718
github.com/Masterminds/semver/v3 v3.1.1 // indirect
18-
github.com/Microsoft/go-winio v0.6.0 // indirect
19-
github.com/ProtonMail/go-crypto v0.0.0-20220930113650-c6815a8c17ad // indirect
20-
github.com/acomagu/bufpipe v1.0.3 // indirect
19+
github.com/Microsoft/go-winio v0.6.1 // indirect
20+
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
2121
github.com/anchore/packageurl-go v0.1.1-0.20220428202044-a072fa3cb6d7 // indirect
22-
github.com/cloudflare/circl v1.3.3 // indirect
22+
github.com/cloudflare/circl v1.3.7 // indirect
23+
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
2324
github.com/dgryski/go-minhash v0.0.0-20190315135803-ad340ca03076 // indirect
2425
github.com/ekzhu/minhash-lsh v0.0.0-20190924033628-faac2c6342f8 // indirect
2526
github.com/emirpasic/gods v1.18.1 // indirect
2627
github.com/gabriel-vasile/mimetype v1.4.1 // indirect
2728
github.com/go-enry/go-license-detector/v4 v4.3.0 // indirect
28-
github.com/go-git/gcfg v1.5.0 // indirect
29-
github.com/go-git/go-billy/v5 v5.3.1 // indirect
30-
github.com/go-git/go-git/v5 v5.4.2 // indirect
29+
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
30+
github.com/go-git/go-billy/v5 v5.5.0 // indirect
31+
github.com/go-git/go-git/v5 v5.11.0 // indirect
32+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
3133
github.com/hhatto/gorst v0.0.0-20181029133204-ca9f730cac5b // indirect
32-
github.com/imdario/mergo v0.3.13 // indirect
3334
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
3435
github.com/jdkato/prose v1.2.1 // indirect
3536
github.com/kevinburke/ssh_config v1.2.0 // indirect
36-
github.com/mitchellh/go-homedir v1.1.0 // indirect
3737
github.com/montanaflynn/stats v0.6.6 // indirect
38+
github.com/pjbgf/sha1cd v0.3.0 // indirect
3839
github.com/pkg/errors v0.9.1 // indirect
3940
github.com/russross/blackfriday/v2 v2.1.0 // indirect
4041
github.com/sergi/go-diff v1.2.0 // indirect
4142
github.com/shogo82148/go-shuffle v1.0.1 // indirect
43+
github.com/skeema/knownhosts v1.2.1 // indirect
4244
github.com/ulikunitz/xz v0.5.10 // indirect
43-
github.com/xanzy/ssh-agent v0.3.2 // indirect
44-
golang.org/x/crypto v0.14.0 // indirect
45-
golang.org/x/mod v0.8.0 // indirect
46-
golang.org/x/net v0.17.0 // indirect
47-
golang.org/x/sys v0.13.0 // indirect
48-
golang.org/x/text v0.13.0 // indirect
49-
golang.org/x/tools v0.6.0 // indirect
45+
github.com/xanzy/ssh-agent v0.3.3 // indirect
46+
golang.org/x/crypto v0.17.0 // indirect
47+
golang.org/x/mod v0.12.0 // indirect
48+
golang.org/x/net v0.19.0 // indirect
49+
golang.org/x/sys v0.15.0 // indirect
50+
golang.org/x/text v0.14.0 // indirect
51+
golang.org/x/tools v0.13.0 // indirect
5052
gonum.org/v1/gonum v0.12.0 // indirect
5153
gopkg.in/neurosnap/sentences.v1 v1.0.7 // indirect
5254
gopkg.in/warnings.v0 v0.1.2 // indirect

0 commit comments

Comments
 (0)