Skip to content

Commit 80b2d44

Browse files
committed
fix(composer): handling vendor version constrain
1 parent 8f27a8c commit 80b2d44

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

module/composer/composer.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ func (Inspector) InspectProject(ctx context.Context) error {
6161
}
6262
pkgs = append(pkgs, vendorScan(ctx, filepath.Join(dir, "vendor"))...)
6363
for _, it := range pkgs {
64+
if isVersionConstrain(it.Version) {
65+
if v := lockfilePkgs[it.Name]; v.Version != "" && !isVersionConstrain(it.Version) {
66+
continue
67+
}
68+
}
6469
lockfilePkgs[it.Name] = it
6570
}
6671
}
@@ -78,6 +83,19 @@ func (Inspector) InspectProject(ctx context.Context) error {
7883
return nil
7984
}
8085

86+
func isVersionConstrain(v string) bool {
87+
if v == "" {
88+
return false
89+
}
90+
if v[0] == '^' || v[0] == '~' || v[0] == '>' || v[0] == '<' || v[0] == '=' {
91+
return true
92+
}
93+
if strings.Contains(v, "||") || strings.Contains(v, ",") {
94+
return true
95+
}
96+
return false
97+
}
98+
8199
func _buildDepTree(lockfile map[string]Package, visitedDep map[string]struct{}, targetName string, versionConstraint string) *model.DependencyItem {
82100
if _, ok := visitedDep[targetName]; ok || len(visitedDep) > 3 {
83101
return nil

0 commit comments

Comments
 (0)