Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
28 changes: 17 additions & 11 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/cloudfoundry/python-buildpack

go 1.23.4
go 1.24.0

require (
github.com/Dynatrace/libbuildpack-dynatrace v1.8.0
Expand All @@ -9,16 +9,17 @@ require (
github.com/cloudfoundry/switchblade v0.9.4
github.com/golang/mock v1.6.0
github.com/kr/text v0.2.0
github.com/onsi/ginkgo v1.16.5
github.com/onsi/gomega v1.36.2
github.com/onsi/ginkgo/v2 v2.28.1
github.com/onsi/gomega v1.39.0
github.com/sclevine/spec v1.4.0
golang.org/x/crypto v0.32.0
golang.org/x/crypto v0.47.0
gopkg.in/ini.v1 v1.67.0
)

require (
code.cloudfoundry.org/lager v2.0.0+incompatible // indirect
github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/semver/v3 v3.4.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
Expand All @@ -30,18 +31,20 @@ require (
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.8 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/nxadm/tail v1.4.11 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/paketo-buildpacks/packit v1.3.1 // indirect
github.com/paketo-buildpacks/packit/v2 v2.16.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/rogpeppe/go-internal v1.13.1 // indirect
github.com/teris-io/shortid v0.0.0-20220617161101-71ec9f2aa569 // indirect
github.com/tidwall/gjson v1.18.0 // indirect
github.com/tidwall/match v1.1.1 // indirect
Expand All @@ -53,14 +56,17 @@ require (
go.opentelemetry.io/otel/metric v1.32.0 // indirect
go.opentelemetry.io/otel/sdk v1.32.0 // indirect
go.opentelemetry.io/otel/trace v1.32.0 // indirect
golang.org/x/net v0.34.0 // indirect
golang.org/x/sys v0.29.0 // indirect
golang.org/x/text v0.21.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/mod v0.32.0 // indirect
golang.org/x/net v0.49.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.40.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/tools v0.41.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241104194629-dd2ea8efbc28 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

exclude google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd
Expand Down
68 changes: 46 additions & 22 deletions go.sum

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion scripts/.util/tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function util::tools::ginkgo::install() {
pushd /tmp > /dev/null || return
GOBIN="${dir}" \
go install \
github.com/onsi/ginkgo/ginkgo@latest
github.com/onsi/ginkgo/v2/ginkgo@latest
popd > /dev/null || return
fi
}
Expand Down
2 changes: 1 addition & 1 deletion src/python/brats/brats_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/cloudfoundry/libbuildpack/bratshelper"
"github.com/cloudfoundry/libbuildpack/cutlass"

. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

Expand Down
2 changes: 1 addition & 1 deletion src/python/brats/brats_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package brats_test
import (
"github.com/cloudfoundry/libbuildpack/bratshelper"
"github.com/cloudfoundry/libbuildpack/cutlass"
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"golang.org/x/crypto/bcrypt"
)
Expand Down
2 changes: 1 addition & 1 deletion src/python/conda/conda_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package conda_test

import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

"testing"
Expand Down
25 changes: 10 additions & 15 deletions src/python/conda/conda_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
"github.com/cloudfoundry/libbuildpack"
"github.com/cloudfoundry/libbuildpack/ansicleaner"
"github.com/golang/mock/gomock"
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

Expand All @@ -37,10 +37,13 @@ var _ = Describe("Conda", func() {
BeforeEach(func() {
buildDir, err = os.MkdirTemp("", "python-buildpack.build.")
Expect(err).To(BeNil())
DeferCleanup(os.RemoveAll, buildDir)
cacheDir, err = os.MkdirTemp("", "python-buildpack.cache.")
Expect(err).To(BeNil())
DeferCleanup(os.RemoveAll, cacheDir)
depsDir, err = os.MkdirTemp("", "python-buildpack.deps.")
Expect(err).To(BeNil())
DeferCleanup(os.RemoveAll, depsDir)
depsIdx = "13"
depDir = filepath.Join(depsDir, depsIdx)

Expand All @@ -59,13 +62,6 @@ var _ = Describe("Conda", func() {
subject = conda.New(mockInstaller, mockStager, mockCommand, logger)
})

AfterEach(func() {
mockCtrl.Finish()
Expect(os.RemoveAll(buildDir)).To(Succeed())
Expect(os.RemoveAll(cacheDir)).To(Succeed())
Expect(os.RemoveAll(depsDir)).To(Succeed())
})

Describe("Version", func() {
Context("runtime.txt specifies python 3", func() {
BeforeEach(func() {
Expand Down Expand Up @@ -129,13 +125,12 @@ var _ = Describe("Conda", func() {

BeforeEach(func() {
condaPkgs = os.Getenv("CONDA_PKGS_DIRS")
})

AfterEach(func() {
if condaPkgs != "" {
os.Setenv("CONDA_PKGS_DIRS", condaPkgs)
}
os.Unsetenv("BP_DEBUG")
DeferCleanup(func() {
if condaPkgs != "" {
os.Setenv("CONDA_PKGS_DIRS", condaPkgs)
}
os.Unsetenv("BP_DEBUG")
})
})

It("uses staging cache for conda cache", func() {
Expand Down
2 changes: 1 addition & 1 deletion src/python/finalize/cli/cli_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package main_test

import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

"testing"
Expand Down
4 changes: 2 additions & 2 deletions src/python/finalize/finalize.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,15 @@ func (f *Finalizer) HandleCollectstatic() error {
f.Log.Info("Running python %s collectstatic --noinput --traceback", managePyPath)
output := new(bytes.Buffer)
if err = f.Command.Execute(f.Stager.BuildDir(), output, text.NewIndentWriter(os.Stderr, []byte(" ")), "python", managePyPath, "collectstatic", "--noinput", "--traceback"); err != nil {
f.Log.Error(fmt.Sprintf(` ! Error while running '$ python %s collectstatic --noinput'.
f.Log.Error(` ! Error while running '$ python %s collectstatic --noinput'.
See traceback above for details.

You may need to update application code to resolve this error.
Or, you can disable collectstatic for this application:

$ cf set-env <app> DISABLE_COLLECTSTATIC 1

https://devcenter.heroku.com/articles/django-assets`, managePyPath))
https://devcenter.heroku.com/articles/django-assets`, managePyPath)
return err
}

Expand Down
2 changes: 1 addition & 1 deletion src/python/finalize/finalize_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package finalize_test

import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

"testing"
Expand Down
18 changes: 5 additions & 13 deletions src/python/finalize/finalize_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/cloudfoundry/libbuildpack"
"github.com/cloudfoundry/libbuildpack/ansicleaner"
"github.com/golang/mock/gomock"
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

Expand All @@ -38,9 +38,13 @@ var _ = Describe("Finalize", func() {
BeforeEach(func() {
buildDir, err = os.MkdirTemp("", "python-buildpack.build.")
Expect(err).To(BeNil())
DeferCleanup(os.RemoveAll, buildDir)

depsDir, err = os.MkdirTemp("", "python-buildpack.deps.")
Expect(err).To(BeNil())
DeferCleanup(os.RemoveAll, depsDir)

DeferCleanup(os.Setenv, "DISABLE_COLLECTSTATIC", "")

depsIdx = "9"
Expect(os.MkdirAll(filepath.Join(depsDir, depsIdx), 0755)).To(Succeed())
Expand Down Expand Up @@ -68,18 +72,6 @@ var _ = Describe("Finalize", func() {
}
})

AfterEach(func() {
mockCtrl.Finish()

err = os.RemoveAll(buildDir)
Expect(err).To(BeNil())

err = os.RemoveAll(depsDir)
Expect(err).To(BeNil())

os.Setenv("DISABLE_COLLECTSTATIC", "")
})

Describe("HandleCollectStatic", func() {
Context("When DISABLE_COLLECTSTATIC is set", func() {
BeforeEach(func() {
Expand Down
6 changes: 3 additions & 3 deletions src/python/hooks/appdynamics.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func (h AppdynamicsHook) RewriteRequirementsFile(stager *libbuildpack.Stager) er
panic(err)
}
fileContents, _ := os.ReadFile(f.Name())
h.Log.Info(string(fileContents))
h.Log.Info("%s", string(fileContents))

return nil
}
Expand All @@ -138,7 +138,7 @@ func (h AppdynamicsHook) RewriteProcFileWithAppdynamics(stager *libbuildpack.Sta
return err
}
fileContents, _ := os.ReadFile(file)
h.Log.Info(string(fileContents))
h.Log.Info("%s", string(fileContents))
} else {
h.Log.Info("Cannot find Procfile, skipping this step!")
}
Expand All @@ -148,7 +148,7 @@ func (h AppdynamicsHook) RewriteProcFileWithAppdynamics(stager *libbuildpack.Sta
func (h AppdynamicsHook) CreateAppDynamicsEnv(stager *libbuildpack.Stager, environmentVars map[string]string) error {
scriptContents := h.GenerateAppdynamicsScript(environmentVars)
h.Log.BeginStep("Writing Appdynamics Environment")
h.Log.Debug(scriptContents)
h.Log.Debug("%s", scriptContents)
return stager.WriteProfileD("appdynamics.sh", scriptContents)
}

Expand Down
35 changes: 9 additions & 26 deletions src/python/hooks/appdynamics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

"github.com/cloudfoundry/libbuildpack"
"github.com/cloudfoundry/libbuildpack/ansicleaner"
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)

Expand All @@ -31,9 +31,11 @@ var _ = Describe("Appdynamics", func() {
BeforeEach(func() {
buildDir, err = os.MkdirTemp("", "python-buildpack.build.")
Expect(err).NotTo(HaveOccurred())
DeferCleanup(os.RemoveAll, buildDir)

depsDir, err = os.MkdirTemp("", "python-buildpack.deps.")
Expect(err).NotTo(HaveOccurred())
DeferCleanup(os.RemoveAll, depsDir)

buffer = new(bytes.Buffer)
logger := libbuildpack.NewLogger(ansicleaner.New(buffer))
Expand All @@ -49,11 +51,6 @@ var _ = Describe("Appdynamics", func() {
}
})

AfterEach(func() {
Expect(os.RemoveAll(buildDir)).To(Succeed())
Expect(os.RemoveAll(depsDir)).To(Succeed())
})

Context("GenerateStartUpCommand", func() {
It("Returns the command when it is provided in the correct format", func() {
startCommand := "web: python flask.py"
Expand All @@ -77,10 +74,7 @@ var _ = Describe("Appdynamics", func() {
)
BeforeEach(func() {
tempProcDir, err = os.MkdirTemp("", "Procfiles")
})

AfterEach(func() {
Expect(os.RemoveAll(tempProcDir)).To(Succeed())
DeferCleanup(os.RemoveAll, tempProcDir)
})

It("rewrites the procfile with pyagent", func() {
Expand Down Expand Up @@ -129,9 +123,7 @@ var _ = Describe("Appdynamics", func() {
defer f.Close()
_, err = f.WriteString("Flask")
Expect(err).NotTo(HaveOccurred())
})
AfterEach(func() {
Expect(os.Remove(filepath.Join(buildDir, "requirements.txt"))).To(Succeed())
DeferCleanup(os.Remove, filepath.Join(buildDir, "requirements.txt"))
})

It("rewrites requirements.txt", func() {
Expand Down Expand Up @@ -182,10 +174,7 @@ export APPD_KEY_2=APPD_VAL_2`
Expect(os.Getenv("VCAP_SERVICES")).To(Equal(""))
Expect(os.WriteFile(filepath.Join(buildDir, "Procfile"), []byte("web: python app.py"), 0644)).To(Succeed())
Expect(err).NotTo(HaveOccurred())
})

AfterEach(func() {
Expect(os.Remove(filepath.Join(buildDir, "Procfile"))).To(Succeed())
DeferCleanup(os.Remove, filepath.Join(buildDir, "Procfile"))
})

It("VCAP_SERVICES is not present", func() {
Expand All @@ -205,11 +194,8 @@ export APPD_KEY_2=APPD_VAL_2`
os.Setenv("VCAP_SERVICES", `{"service": [{"credentials": {"login": "name"}, "name": "443"}]}`)
Expect(os.WriteFile(filepath.Join(buildDir, "Procfile"), []byte("web: python app.py"), 0644)).To(Succeed())
Expect(err).NotTo(HaveOccurred())
})

AfterEach(func() {
Expect(os.Remove(filepath.Join(buildDir, "Procfile"))).To(Succeed())
os.Unsetenv("VCAP_SERVICES")
DeferCleanup(os.Remove, filepath.Join(buildDir, "Procfile"))
DeferCleanup(os.Unsetenv, "VCAP_SERVICES")
})

It("VCAP_SERVICES has no appdynamics", func() {
Expand All @@ -235,10 +221,7 @@ export APPD_KEY_2=APPD_VAL_2`

Expect(os.WriteFile(filepath.Join(buildDir, "Procfile"), []byte("web: python app.py"), 0644)).To(Succeed())
Expect(err).NotTo(HaveOccurred())
})

AfterEach(func() {
os.Unsetenv("VCAP_SERVICES")
DeferCleanup(os.Unsetenv, "VCAP_SERVICES")
})

It(fmt.Sprintf("VCAP_SERVICES has %s", serviceName), func() {
Expand Down
2 changes: 1 addition & 1 deletion src/python/hooks/hooks_app.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func runHook(scriptName string, compiler *libbuildpack.Stager) error {
if exists, err := libbuildpack.FileExists(path); err != nil {
return err
} else if exists {
compiler.Logger().BeginStep("Running " + scriptName + " hook")
compiler.Logger().BeginStep("Running %s hook", scriptName)
if err := os.Chmod(path, 0755); err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion src/python/hooks/hooks_suite_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package hooks_test

import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"

"testing"
Expand Down
Loading
Loading