Skip to content

Commit fc665df

Browse files
joshuatcaseyrobdimsdale
authored andcommitted
Use draft.Planner from packit directly
See paketo-buildpacks/cpython#327 for context
1 parent 72cca88 commit fc665df

4 files changed

Lines changed: 11 additions & 58 deletions

File tree

build.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,17 @@ import (
77

88
"github.com/paketo-buildpacks/packit/v2"
99
"github.com/paketo-buildpacks/packit/v2/chronos"
10+
"github.com/paketo-buildpacks/packit/v2/draft"
1011
"github.com/paketo-buildpacks/packit/v2/fs"
1112
"github.com/paketo-buildpacks/packit/v2/sbom"
1213
"github.com/paketo-buildpacks/packit/v2/scribe"
1314
)
1415

15-
//go:generate faux --interface EntryResolver --output fakes/entry_resolver.go
1616
//go:generate faux --interface InstallProcess --output fakes/install_process.go
1717
//go:generate faux --interface SitePackagesProcess --output fakes/site_packages_process.go
1818
//go:generate faux --interface VenvDirLocator --output fakes/venv_dir_locator.go
1919
//go:generate faux --interface SBOMGenerator --output fakes/sbom_generator.go
2020

21-
// EntryResolver defines the interface for picking the most relevant entry from
22-
// the Buildpack Plan entries.
23-
type EntryResolver interface {
24-
MergeLayerTypes(name string, entries []packit.BuildpackPlanEntry) (launch, build bool)
25-
}
26-
2721
// SitePackagesProcess defines the interface for determining the site-packages path.
2822
type SitePackagesProcess interface {
2923
Execute(layerPath string) (sitePackagesPath string, err error)
@@ -51,7 +45,6 @@ type SBOMGenerator interface {
5145
// packages layer. It also makes use of a cache layer to reuse the pipenv
5246
// cache.
5347
func Build(
54-
entryResolver EntryResolver,
5548
installProcess InstallProcess,
5649
siteProcess SitePackagesProcess,
5750
venvDirLocator VenvDirLocator,
@@ -72,7 +65,8 @@ func Build(
7265
return packit.BuildResult{}, err
7366
}
7467

75-
packagesLayer.Launch, packagesLayer.Build = entryResolver.MergeLayerTypes(SitePackages, context.Plan.Entries)
68+
planner := draft.NewPlanner()
69+
packagesLayer.Launch, packagesLayer.Build = planner.MergeLayerTypes(SitePackages, context.Plan.Entries)
7670
packagesLayer.Cache = packagesLayer.Launch || packagesLayer.Build
7771
cacheLayer.Cache = true
7872

build_test.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
3030
buffer *bytes.Buffer
3131
logEmitter scribe.Emitter
3232

33-
entryResolver *fakes.EntryResolver
3433
installProcess *fakes.InstallProcess
3534
sitePackagesProcess *fakes.SitePackagesProcess
3635
venvDirLocator *fakes.VenvDirLocator
@@ -51,7 +50,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
5150
cnbDir, err = os.MkdirTemp("", "cnb")
5251
Expect(err).NotTo(HaveOccurred())
5352

54-
entryResolver = &fakes.EntryResolver{}
5553
installProcess = &fakes.InstallProcess{}
5654
sitePackagesProcess = &fakes.SitePackagesProcess{}
5755
venvDirLocator = &fakes.VenvDirLocator{}
@@ -65,7 +63,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
6563
logEmitter = scribe.NewEmitter(buffer)
6664

6765
build = pipenvinstall.Build(
68-
entryResolver,
6966
installProcess,
7067
sitePackagesProcess,
7168
venvDirLocator,
@@ -139,11 +136,6 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
139136
Expect(installProcess.ExecuteCall.Receives.TargetLayer.Path).To(Equal(filepath.Join(layersDir, "packages")))
140137
Expect(installProcess.ExecuteCall.Receives.CacheLayer.Path).To(Equal(filepath.Join(layersDir, "cache")))
141138

142-
Expect(entryResolver.MergeLayerTypesCall.Receives.Name).To(Equal("site-packages"))
143-
Expect(entryResolver.MergeLayerTypesCall.Receives.Entries).To(Equal([]packit.BuildpackPlanEntry{
144-
{Name: "site-packages"},
145-
}))
146-
147139
Expect(buffer.String()).To(ContainSubstring("Some Buildpack some-version"))
148140
Expect(buffer.String()).To(ContainSubstring("Executing build process"))
149141

@@ -152,8 +144,10 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
152144

153145
context("site-packages required at build and launch", func() {
154146
it.Before(func() {
155-
entryResolver.MergeLayerTypesCall.Returns.Launch = true
156-
entryResolver.MergeLayerTypesCall.Returns.Build = true
147+
buildContext.Plan.Entries[0].Metadata = map[string]interface{}{
148+
"launch": true,
149+
"build": true,
150+
}
157151
})
158152

159153
it("layer's build, launch, cache flags must be set", func() {
@@ -181,8 +175,10 @@ func testBuild(t *testing.T, context spec.G, it spec.S) {
181175
}
182176
return nil
183177
}
184-
entryResolver.MergeLayerTypesCall.Returns.Launch = true
185-
entryResolver.MergeLayerTypesCall.Returns.Build = true
178+
buildContext.Plan.Entries[0].Metadata = map[string]interface{}{
179+
"launch": true,
180+
"build": true,
181+
}
186182
})
187183

188184
it("result should include a cache layer", func() {

fakes/entry_resolver.go

Lines changed: 0 additions & 35 deletions
This file was deleted.

run/main.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55

66
"github.com/paketo-buildpacks/packit/v2"
77
"github.com/paketo-buildpacks/packit/v2/chronos"
8-
"github.com/paketo-buildpacks/packit/v2/draft"
98
"github.com/paketo-buildpacks/packit/v2/pexec"
109
"github.com/paketo-buildpacks/packit/v2/sbom"
1110
"github.com/paketo-buildpacks/packit/v2/scribe"
@@ -27,7 +26,6 @@ func main() {
2726
pipenvinstall.NewPipfileLockParser(),
2827
),
2928
pipenvinstall.Build(
30-
draft.NewPlanner(),
3129
pipenvinstall.NewPipenvInstallProcess(pexec.NewExecutable("pipenv"), logger),
3230
pipenvinstall.NewSiteProcess(pexec.NewExecutable("python")),
3331
pipenvinstall.NewVenvLocator(),

0 commit comments

Comments
 (0)