Skip to content

Commit 32f696c

Browse files
vassilmladenovmeta-codesync[bot]
authored andcommitted
Make if-package return false for softly-deployed packages
Summary: With this change, we will no longer evaluate the `package foo` expression (HH\package_exists) to true for packages that are soft in the deployment. This has consequences for __RequirePackage, which is an invariant over packages. Reviewed By: sinancepel Differential Revision: D87010928 fbshipit-source-id: 2121377c3841899b7c97d8ffb683b08d8c5a266d
1 parent 3ae03d4 commit 32f696c

34 files changed

+114
-19
lines changed

hphp/runtime/base/package.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,9 @@ bool PackageInfo::implPackageExists(const StringData* package) const {
206206
if (!activeDeployment) return packages().contains(package->toCppString());
207207
switch (activeDeployment->getDeployKind(package->toCppString())) {
208208
case DeployKind::Hard:
209-
case DeployKind::Soft:
210209
case DeployKind::HardOrSoft:
211210
return true;
211+
case DeployKind::Soft:
212212
case DeployKind::NotDeployed:
213213
return false;
214214
}

hphp/test/slow/packages-v2/deployment/basic-1.php.expectf-repo

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ f [fromPackages] basic-1.php
22
f [fromPackages] basic-2.php
33
f [fromPackages] basic-3.php
44
f [fromPackages] basic-4.php
5+
f [fromPackages] if-package-2.php
6+
f [fromPackages] if-package-3.php
7+
f [fromPackages] if-package-4.php
8+
f [fromPackages] if-package-5.php
9+
f [fromPackages] if-package.php
510
f [fromPackages] prod/foo.inc.php
611
f [fromPackages] prod/internal_prod/zap.inc.php
712
f [fromPackagesSoft] prod/qux.inc.php

hphp/test/slow/packages-v2/deployment/basic-2.php.expect-repo

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ f [fromPackages] basic-1.php
22
f [fromPackages] basic-2.php
33
f [fromPackages] basic-3.php
44
f [fromPackages] basic-4.php
5+
f [fromPackages] if-package-2.php
6+
f [fromPackages] if-package-3.php
7+
f [fromPackages] if-package-4.php
8+
f [fromPackages] if-package-5.php
9+
f [fromPackages] if-package.php
510
f [fromPackages] prod/foo.inc.php
611
f [fromPackages] prod/intern/bar.inc.php
712
f [fromPackages] prod/internal_prod/zap.inc.php

hphp/test/slow/packages-v2/deployment/basic-3.php.expectf-repo

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ f [fromPackages] basic-1.php
22
f [fromPackages] basic-2.php
33
f [fromPackages] basic-3.php
44
f [fromPackages] basic-4.php
5+
f [fromPackages] if-package-2.php
6+
f [fromPackages] if-package-3.php
7+
f [fromPackages] if-package-4.php
8+
f [fromPackages] if-package-5.php
9+
f [fromPackages] if-package.php
510
f [fromPackages] prod/foo.inc.php
611
f [fromPackages] prod/internal_prod/zap.inc.php
712
f [fromPackagesSoft] prod/qux.inc.php

hphp/test/slow/packages-v2/deployment/basic-4.php.expect-repo

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ f [fromPackages] basic-1.php
22
f [fromPackages] basic-2.php
33
f [fromPackages] basic-3.php
44
f [fromPackages] basic-4.php
5+
f [fromPackages] if-package-2.php
6+
f [fromPackages] if-package-3.php
7+
f [fromPackages] if-package-4.php
8+
f [fromPackages] if-package-5.php
9+
f [fromPackages] if-package.php
510
f [fromPackages] prod/foo.inc.php
611
f [fromPackages] prod/internal_prod/zap.inc.php
712
f [fromPackagesSoft] prod/qux.inc.php
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?hh
2+
3+
<<__EntryPoint>>
4+
function if_package_undef(): void {
5+
var_dump(package undef);
6+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bool(false)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-vRuntime.Eval.ActiveDeployment="my-prod"
2+
--dir=__DIR__
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?hh
2+
3+
<<__EntryPoint>>
4+
function if_package_not_deployed(): void {
5+
var_dump(package intern);
6+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bool(true)

0 commit comments

Comments
 (0)