cumulusci-plus 5.0.18__py3-none-any.whl → 5.0.20__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cumulusci-plus might be problematic. Click here for more details.
- cumulusci/__about__.py +1 -1
- cumulusci/core/dependencies/base.py +77 -33
- cumulusci/core/dependencies/dependencies.py +27 -17
- cumulusci/core/dependencies/tests/test_dependencies.py +12 -6
- cumulusci/core/dependencies/tests/test_resolvers.py +61 -27
- cumulusci/cumulusci.yml +0 -4
- cumulusci/tasks/salesforce/SfDataCommands.py +234 -0
- cumulusci/tasks/salesforce/profiles.py +40 -7
- cumulusci/tasks/salesforce/tests/test_profiles.py +165 -1
- cumulusci/tasks/salesforce/tests/test_update_dependencies.py +1 -1
- cumulusci/tasks/salesforce/update_dependencies.py +9 -3
- {cumulusci_plus-5.0.18.dist-info → cumulusci_plus-5.0.20.dist-info}/METADATA +4 -4
- {cumulusci_plus-5.0.18.dist-info → cumulusci_plus-5.0.20.dist-info}/RECORD +17 -19
- cumulusci/tasks/utility/data_management.py +0 -16
- cumulusci/tasks/utility/tests/test_data_management.py +0 -43
- {cumulusci_plus-5.0.18.dist-info → cumulusci_plus-5.0.20.dist-info}/WHEEL +0 -0
- {cumulusci_plus-5.0.18.dist-info → cumulusci_plus-5.0.20.dist-info}/entry_points.txt +0 -0
- {cumulusci_plus-5.0.18.dist-info → cumulusci_plus-5.0.20.dist-info}/licenses/AUTHORS.rst +0 -0
- {cumulusci_plus-5.0.18.dist-info → cumulusci_plus-5.0.20.dist-info}/licenses/LICENSE +0 -0
cumulusci/__about__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "5.0.
|
|
1
|
+
__version__ = "5.0.20"
|
|
@@ -255,7 +255,9 @@ class UnmanagedDependency(UnmanagedStaticDependency, ABC):
|
|
|
255
255
|
|
|
256
256
|
return package_zip
|
|
257
257
|
|
|
258
|
-
def install(
|
|
258
|
+
def install(
|
|
259
|
+
self, context: BaseProjectConfig, org: OrgConfig, options: Optional[dict] = {}
|
|
260
|
+
):
|
|
259
261
|
|
|
260
262
|
context.logger.info(f"Deploying unmanaged metadata from {self.description}")
|
|
261
263
|
|
|
@@ -411,6 +413,7 @@ class VcsDynamicDependency(BaseVcsDynamicDependency, ABC):
|
|
|
411
413
|
unmanaged=not managed,
|
|
412
414
|
namespace_inject=namespace if namespace and managed else None,
|
|
413
415
|
namespace_strip=namespace if namespace and not managed else None,
|
|
416
|
+
package_dependency=self.package_dependency,
|
|
414
417
|
)
|
|
415
418
|
]
|
|
416
419
|
return []
|
|
@@ -446,6 +449,7 @@ class VcsDynamicDependency(BaseVcsDynamicDependency, ABC):
|
|
|
446
449
|
namespace_strip=namespace
|
|
447
450
|
if namespace and not managed
|
|
448
451
|
else None,
|
|
452
|
+
package_dependency=self.package_dependency,
|
|
449
453
|
)
|
|
450
454
|
)
|
|
451
455
|
|
|
@@ -493,22 +497,22 @@ class VcsDynamicDependency(BaseVcsDynamicDependency, ABC):
|
|
|
493
497
|
|
|
494
498
|
# Look for any flow to executed in project config
|
|
495
499
|
# Pre flows will run to dynamically generate metadata and deploy.
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
namespace=namespace,
|
|
502
|
-
)
|
|
500
|
+
flow = self._flatten_dependency_flow(
|
|
501
|
+
package_config,
|
|
502
|
+
"dependency_flow_pre",
|
|
503
|
+
managed=False,
|
|
504
|
+
namespace=namespace,
|
|
503
505
|
)
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
506
|
+
if flow:
|
|
507
|
+
deps.extend(flow)
|
|
508
|
+
else:
|
|
509
|
+
# Look for subfolders under unpackaged/pre
|
|
510
|
+
# unpackaged/pre is always deployed unmanaged, no namespace manipulation.
|
|
511
|
+
deps.extend(
|
|
512
|
+
self._flatten_unpackaged(
|
|
513
|
+
repo, "unpackaged/pre", self.skip, managed=False, namespace=None
|
|
514
|
+
)
|
|
510
515
|
)
|
|
511
|
-
)
|
|
512
516
|
|
|
513
517
|
if not self.package_dependency:
|
|
514
518
|
if managed:
|
|
@@ -532,25 +536,26 @@ class VcsDynamicDependency(BaseVcsDynamicDependency, ABC):
|
|
|
532
536
|
|
|
533
537
|
# Look for any flow to executed in project config
|
|
534
538
|
# Pre flows will run to dynamically generate metadata and deploy.
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
namespace=namespace,
|
|
541
|
-
)
|
|
539
|
+
flow = self._flatten_dependency_flow(
|
|
540
|
+
package_config,
|
|
541
|
+
"dependency_flow_post",
|
|
542
|
+
managed=managed,
|
|
543
|
+
namespace=namespace,
|
|
542
544
|
)
|
|
543
545
|
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
self.
|
|
550
|
-
|
|
551
|
-
|
|
546
|
+
if flow:
|
|
547
|
+
deps.extend(flow)
|
|
548
|
+
else:
|
|
549
|
+
# We always inject the project's namespace into unpackaged/post metadata if managed
|
|
550
|
+
deps.extend(
|
|
551
|
+
self._flatten_unpackaged(
|
|
552
|
+
repo,
|
|
553
|
+
"unpackaged/post",
|
|
554
|
+
self.skip,
|
|
555
|
+
managed=managed,
|
|
556
|
+
namespace=namespace,
|
|
557
|
+
)
|
|
552
558
|
)
|
|
553
|
-
)
|
|
554
559
|
|
|
555
560
|
return deps
|
|
556
561
|
|
|
@@ -574,6 +579,9 @@ class UnmanagedVcsDependency(UnmanagedDependency, ABC):
|
|
|
574
579
|
namespace_inject: Optional[str] = None
|
|
575
580
|
namespace_strip: Optional[str] = None
|
|
576
581
|
|
|
582
|
+
# Field to reference corresponding package dependency
|
|
583
|
+
package_dependency: Optional["BasePackageVersionDependency"] = None
|
|
584
|
+
|
|
577
585
|
@root_validator(pre=True)
|
|
578
586
|
@abstractmethod
|
|
579
587
|
def sync_vcs_and_url(cls, values):
|
|
@@ -619,6 +627,19 @@ class UnmanagedVcsDependency(UnmanagedDependency, ABC):
|
|
|
619
627
|
|
|
620
628
|
return f"{self.url}{subfolder} @{self.ref}"
|
|
621
629
|
|
|
630
|
+
def install(
|
|
631
|
+
self, context: BaseProjectConfig, org: OrgConfig, options: Optional[dict] = {}
|
|
632
|
+
):
|
|
633
|
+
if (
|
|
634
|
+
self.package_dependency is not None
|
|
635
|
+
and not self.package_dependency.is_installable(org, options)
|
|
636
|
+
):
|
|
637
|
+
context.logger.info(
|
|
638
|
+
f"{self.description} or a newer version is already deployed; skipping."
|
|
639
|
+
)
|
|
640
|
+
return
|
|
641
|
+
super().install(context, org)
|
|
642
|
+
|
|
622
643
|
|
|
623
644
|
class UnmanagedVcsDependencyFlow(UnmanagedStaticDependency, ABC):
|
|
624
645
|
vcs: str
|
|
@@ -632,6 +653,9 @@ class UnmanagedVcsDependencyFlow(UnmanagedStaticDependency, ABC):
|
|
|
632
653
|
namespace_strip: Optional[str] = None
|
|
633
654
|
password_env_name: Optional[str] = None
|
|
634
655
|
|
|
656
|
+
# Field to reference corresponding package dependency
|
|
657
|
+
package_dependency: Optional["BasePackageVersionDependency"] = None
|
|
658
|
+
|
|
635
659
|
@property
|
|
636
660
|
def name(self):
|
|
637
661
|
return f"Deploy {self.url} Flow: {self.flow_name}"
|
|
@@ -640,7 +664,18 @@ class UnmanagedVcsDependencyFlow(UnmanagedStaticDependency, ABC):
|
|
|
640
664
|
def description(self):
|
|
641
665
|
return f"{self.url} Flow: {self.flow_name} @{self.commit}"
|
|
642
666
|
|
|
643
|
-
def install(
|
|
667
|
+
def install(
|
|
668
|
+
self, context: BaseProjectConfig, org: OrgConfig, options: Optional[dict] = {}
|
|
669
|
+
):
|
|
670
|
+
if (
|
|
671
|
+
self.package_dependency is not None
|
|
672
|
+
and not self.package_dependency.is_installable(org, options)
|
|
673
|
+
):
|
|
674
|
+
context.logger.info(
|
|
675
|
+
f"{self.description} or a newer version is already deployed; skipping."
|
|
676
|
+
)
|
|
677
|
+
return
|
|
678
|
+
|
|
644
679
|
context.logger.info(f"Deploying dependency Flow from {self.description}")
|
|
645
680
|
|
|
646
681
|
from cumulusci.utils.yaml.cumulusci_yml import VCSSourceModel
|
|
@@ -656,7 +691,6 @@ class UnmanagedVcsDependencyFlow(UnmanagedStaticDependency, ABC):
|
|
|
656
691
|
vcs_source = VCSSource.create(context, source_model)
|
|
657
692
|
|
|
658
693
|
# Fetch the data and get remote project config.
|
|
659
|
-
context.logger.info(f"Fetching from {vcs_source}")
|
|
660
694
|
project_config = vcs_source.fetch()
|
|
661
695
|
|
|
662
696
|
project_config.set_keychain(context.keychain)
|
|
@@ -708,3 +742,13 @@ class UnmanagedVcsDependencyFlow(UnmanagedStaticDependency, ABC):
|
|
|
708
742
|
coordinator.run(org)
|
|
709
743
|
duration = datetime.now() - start_time
|
|
710
744
|
context.logger.info(f"Ran {self.flow_name} in {format_duration(duration)}")
|
|
745
|
+
|
|
746
|
+
|
|
747
|
+
class BasePackageVersionDependency(StaticDependency, ABC):
|
|
748
|
+
@abstractmethod
|
|
749
|
+
def is_installable(self, org: OrgConfig, options: Optional[dict] = {}) -> bool:
|
|
750
|
+
pass
|
|
751
|
+
|
|
752
|
+
|
|
753
|
+
UnmanagedVcsDependency.update_forward_refs()
|
|
754
|
+
UnmanagedVcsDependencyFlow.update_forward_refs()
|
|
@@ -20,7 +20,7 @@ from cumulusci.utils import download_extract_zip
|
|
|
20
20
|
logger = logging.getLogger(__name__)
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
class PackageNamespaceVersionDependency(base_dependency.
|
|
23
|
+
class PackageNamespaceVersionDependency(base_dependency.BasePackageVersionDependency):
|
|
24
24
|
"""Static dependency on a package identified by namespace and version number."""
|
|
25
25
|
|
|
26
26
|
namespace: str
|
|
@@ -34,6 +34,21 @@ class PackageNamespaceVersionDependency(base_dependency.StaticDependency):
|
|
|
34
34
|
def package(self):
|
|
35
35
|
return self.package_name or self.namespace or "Unknown Package"
|
|
36
36
|
|
|
37
|
+
def is_installable(self, org: OrgConfig, options: Optional[dict] = {}) -> bool:
|
|
38
|
+
if "Beta" in self.version:
|
|
39
|
+
version_string = self.version.split(" ")[0]
|
|
40
|
+
beta = self.version.split(" ")[-1].strip(")")
|
|
41
|
+
version = f"{version_string}b{beta}"
|
|
42
|
+
else:
|
|
43
|
+
version = self.version
|
|
44
|
+
|
|
45
|
+
if org.has_minimum_package_version(
|
|
46
|
+
self.namespace,
|
|
47
|
+
version,
|
|
48
|
+
):
|
|
49
|
+
return False
|
|
50
|
+
return True
|
|
51
|
+
|
|
37
52
|
def install(
|
|
38
53
|
self,
|
|
39
54
|
context: BaseProjectConfig,
|
|
@@ -48,17 +63,7 @@ class PackageNamespaceVersionDependency(base_dependency.StaticDependency):
|
|
|
48
63
|
if not retry_options:
|
|
49
64
|
retry_options = DEFAULT_PACKAGE_RETRY_OPTIONS
|
|
50
65
|
|
|
51
|
-
if
|
|
52
|
-
version_string = self.version.split(" ")[0]
|
|
53
|
-
beta = self.version.split(" ")[-1].strip(")")
|
|
54
|
-
version = f"{version_string}b{beta}"
|
|
55
|
-
else:
|
|
56
|
-
version = self.version
|
|
57
|
-
|
|
58
|
-
if org.has_minimum_package_version(
|
|
59
|
-
self.namespace,
|
|
60
|
-
version,
|
|
61
|
-
):
|
|
66
|
+
if not self.is_installable(org):
|
|
62
67
|
context.logger.info(
|
|
63
68
|
f"{self} or a newer version is already installed; skipping."
|
|
64
69
|
)
|
|
@@ -83,7 +88,7 @@ class PackageNamespaceVersionDependency(base_dependency.StaticDependency):
|
|
|
83
88
|
return f"{self.package} {self.version}"
|
|
84
89
|
|
|
85
90
|
|
|
86
|
-
class PackageVersionIdDependency(base_dependency.
|
|
91
|
+
class PackageVersionIdDependency(base_dependency.BasePackageVersionDependency):
|
|
87
92
|
"""Static dependency on a package identified by 04t version id."""
|
|
88
93
|
|
|
89
94
|
version_id: str
|
|
@@ -96,6 +101,14 @@ class PackageVersionIdDependency(base_dependency.StaticDependency):
|
|
|
96
101
|
def package(self):
|
|
97
102
|
return self.package_name or "Unknown Package"
|
|
98
103
|
|
|
104
|
+
def is_installable(self, org: OrgConfig, options: Optional[dict] = {}) -> bool:
|
|
105
|
+
if any(
|
|
106
|
+
self.version_id == v.id
|
|
107
|
+
for v in itertools.chain(*org.installed_packages.values())
|
|
108
|
+
) and not options.get("force_pre_post_install"):
|
|
109
|
+
return False
|
|
110
|
+
return True
|
|
111
|
+
|
|
99
112
|
def install(
|
|
100
113
|
self,
|
|
101
114
|
context: BaseProjectConfig,
|
|
@@ -110,10 +123,7 @@ class PackageVersionIdDependency(base_dependency.StaticDependency):
|
|
|
110
123
|
if not retry_options:
|
|
111
124
|
retry_options = DEFAULT_PACKAGE_RETRY_OPTIONS
|
|
112
125
|
|
|
113
|
-
if
|
|
114
|
-
self.version_id == v.id
|
|
115
|
-
for v in itertools.chain(*org.installed_packages.values())
|
|
116
|
-
):
|
|
126
|
+
if not self.is_installable(org):
|
|
117
127
|
context.logger.info(
|
|
118
128
|
f"{self} or a newer version is already installed; skipping."
|
|
119
129
|
)
|
|
@@ -256,6 +256,8 @@ class TestGitHubDynamicDependency:
|
|
|
256
256
|
namespace="bar", version="2.0"
|
|
257
257
|
)
|
|
258
258
|
|
|
259
|
+
root_repo = PackageNamespaceVersionDependency(namespace="bar", version="2.0")
|
|
260
|
+
|
|
259
261
|
assert gh.flatten(project_config) == [
|
|
260
262
|
GitHubDynamicDependency(
|
|
261
263
|
github="https://github.com/SFDO-Tooling/DependencyRepo",
|
|
@@ -266,20 +268,23 @@ class TestGitHubDynamicDependency:
|
|
|
266
268
|
subfolder="unpackaged/pre/first",
|
|
267
269
|
unmanaged=True,
|
|
268
270
|
ref="aaaaa",
|
|
271
|
+
package_dependency=root_repo,
|
|
269
272
|
),
|
|
270
273
|
UnmanagedGitHubRefDependency(
|
|
271
274
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
272
275
|
subfolder="unpackaged/pre/second",
|
|
273
276
|
unmanaged=True,
|
|
274
277
|
ref="aaaaa",
|
|
278
|
+
package_dependency=root_repo,
|
|
275
279
|
),
|
|
276
|
-
|
|
280
|
+
root_repo,
|
|
277
281
|
UnmanagedGitHubRefDependency(
|
|
278
282
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
279
283
|
subfolder="unpackaged/post/first",
|
|
280
284
|
unmanaged=False,
|
|
281
285
|
ref="aaaaa",
|
|
282
286
|
namespace_inject="bar",
|
|
287
|
+
package_dependency=root_repo,
|
|
283
288
|
),
|
|
284
289
|
]
|
|
285
290
|
|
|
@@ -295,6 +300,8 @@ class TestGitHubDynamicDependency:
|
|
|
295
300
|
namespace="bar", version="2.0"
|
|
296
301
|
)
|
|
297
302
|
|
|
303
|
+
root_repo = PackageNamespaceVersionDependency(namespace="bar", version="2.0")
|
|
304
|
+
|
|
298
305
|
assert gh.flatten(project_config) == [
|
|
299
306
|
GitHubDynamicDependency(
|
|
300
307
|
github="https://github.com/SFDO-Tooling/DependencyRepo",
|
|
@@ -305,14 +312,16 @@ class TestGitHubDynamicDependency:
|
|
|
305
312
|
subfolder="unpackaged/pre/second",
|
|
306
313
|
unmanaged=True,
|
|
307
314
|
ref="aaaaa",
|
|
315
|
+
package_dependency=root_repo,
|
|
308
316
|
),
|
|
309
|
-
|
|
317
|
+
root_repo,
|
|
310
318
|
UnmanagedGitHubRefDependency(
|
|
311
319
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
312
320
|
subfolder="unpackaged/post/first",
|
|
313
321
|
unmanaged=False,
|
|
314
322
|
ref="aaaaa",
|
|
315
323
|
namespace_inject="bar",
|
|
324
|
+
package_dependency=root_repo,
|
|
316
325
|
),
|
|
317
326
|
]
|
|
318
327
|
|
|
@@ -1086,14 +1095,11 @@ class TestUnmanagedVcsDependencyFlow:
|
|
|
1086
1095
|
|
|
1087
1096
|
# Verify logging
|
|
1088
1097
|
assert (
|
|
1089
|
-
mock_context.logger.info.call_count ==
|
|
1098
|
+
mock_context.logger.info.call_count == 2
|
|
1090
1099
|
) # Initial log, fetching log, final log
|
|
1091
1100
|
mock_context.logger.info.assert_any_call(
|
|
1092
1101
|
"Deploying dependency Flow from https://github.com/test/repo Flow: install_deps @abc123"
|
|
1093
1102
|
)
|
|
1094
|
-
mock_context.logger.info.assert_any_call(
|
|
1095
|
-
f"Fetching from {mock_vcs_source_instance}"
|
|
1096
|
-
)
|
|
1097
1103
|
mock_context.logger.info.assert_any_call("Ran install_deps in 5.2s")
|
|
1098
1104
|
|
|
1099
1105
|
# Verify datetime and format_duration calls
|
|
@@ -767,6 +767,16 @@ class TestStaticDependencyResolution:
|
|
|
767
767
|
|
|
768
768
|
gh = GitHubDynamicDependency(github="https://github.com/SFDO-Tooling/RootRepo")
|
|
769
769
|
|
|
770
|
+
dep_repo = PackageNamespaceVersionDependency(
|
|
771
|
+
namespace="foo",
|
|
772
|
+
version="1.1",
|
|
773
|
+
package_name="DependencyRepo",
|
|
774
|
+
password_env_name="DEP_PW",
|
|
775
|
+
)
|
|
776
|
+
root_repo = PackageNamespaceVersionDependency(
|
|
777
|
+
namespace="bar", version="2.0", package_name="RootRepo"
|
|
778
|
+
)
|
|
779
|
+
|
|
770
780
|
assert get_static_dependencies(
|
|
771
781
|
project_config,
|
|
772
782
|
dependencies=[gh],
|
|
@@ -777,41 +787,39 @@ class TestStaticDependencyResolution:
|
|
|
777
787
|
subfolder="unpackaged/pre/top",
|
|
778
788
|
unmanaged=True,
|
|
779
789
|
ref="tag_sha",
|
|
790
|
+
package_dependency=dep_repo,
|
|
780
791
|
),
|
|
781
|
-
|
|
782
|
-
namespace="foo",
|
|
783
|
-
version="1.1",
|
|
784
|
-
package_name="DependencyRepo",
|
|
785
|
-
password_env_name="DEP_PW",
|
|
786
|
-
),
|
|
792
|
+
dep_repo,
|
|
787
793
|
UnmanagedGitHubRefDependency(
|
|
788
794
|
github="https://github.com/SFDO-Tooling/DependencyRepo",
|
|
789
795
|
subfolder="unpackaged/post/top",
|
|
790
796
|
unmanaged=False,
|
|
791
797
|
ref="tag_sha",
|
|
792
798
|
namespace_inject="foo",
|
|
799
|
+
package_dependency=dep_repo,
|
|
793
800
|
),
|
|
794
801
|
UnmanagedGitHubRefDependency(
|
|
795
802
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
796
803
|
subfolder="unpackaged/pre/first",
|
|
797
804
|
unmanaged=True,
|
|
798
805
|
ref="tag_sha",
|
|
806
|
+
package_dependency=root_repo,
|
|
799
807
|
),
|
|
800
808
|
UnmanagedGitHubRefDependency(
|
|
801
809
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
802
810
|
subfolder="unpackaged/pre/second",
|
|
803
811
|
unmanaged=True,
|
|
804
812
|
ref="tag_sha",
|
|
813
|
+
package_dependency=root_repo,
|
|
805
814
|
),
|
|
806
|
-
|
|
807
|
-
namespace="bar", version="2.0", package_name="RootRepo"
|
|
808
|
-
),
|
|
815
|
+
root_repo,
|
|
809
816
|
UnmanagedGitHubRefDependency(
|
|
810
817
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
811
818
|
subfolder="unpackaged/post/first",
|
|
812
819
|
unmanaged=False,
|
|
813
820
|
ref="tag_sha",
|
|
814
821
|
namespace_inject="bar",
|
|
822
|
+
package_dependency=root_repo,
|
|
815
823
|
),
|
|
816
824
|
]
|
|
817
825
|
|
|
@@ -855,50 +863,58 @@ version_id: 04t000000000000""",
|
|
|
855
863
|
pins=pins,
|
|
856
864
|
)
|
|
857
865
|
|
|
866
|
+
dep_repo = PackageNamespaceVersionDependency(
|
|
867
|
+
namespace="foo",
|
|
868
|
+
version="1.0", # from the pinned tag
|
|
869
|
+
package_name="DependencyRepo",
|
|
870
|
+
version_id="04t000000000000",
|
|
871
|
+
)
|
|
872
|
+
root_repo = PackageNamespaceVersionDependency(
|
|
873
|
+
namespace="bar",
|
|
874
|
+
version="1.5", # From pinned tag
|
|
875
|
+
package_name="RootRepo",
|
|
876
|
+
version_id="04t000000000000",
|
|
877
|
+
)
|
|
878
|
+
|
|
858
879
|
assert deps == [
|
|
859
880
|
UnmanagedGitHubRefDependency(
|
|
860
881
|
github="https://github.com/SFDO-Tooling/DependencyRepo",
|
|
861
882
|
subfolder="unpackaged/pre/top",
|
|
862
883
|
unmanaged=True,
|
|
863
884
|
ref="tag_sha",
|
|
885
|
+
package_dependency=dep_repo,
|
|
864
886
|
),
|
|
865
|
-
|
|
866
|
-
namespace="foo",
|
|
867
|
-
version="1.0", # from the pinned tag
|
|
868
|
-
package_name="DependencyRepo",
|
|
869
|
-
version_id="04t000000000000",
|
|
870
|
-
),
|
|
887
|
+
dep_repo,
|
|
871
888
|
UnmanagedGitHubRefDependency(
|
|
872
889
|
github="https://github.com/SFDO-Tooling/DependencyRepo",
|
|
873
890
|
subfolder="unpackaged/post/top",
|
|
874
891
|
unmanaged=False,
|
|
875
892
|
ref="tag_sha",
|
|
876
893
|
namespace_inject="foo",
|
|
894
|
+
package_dependency=dep_repo,
|
|
877
895
|
),
|
|
878
896
|
UnmanagedGitHubRefDependency(
|
|
879
897
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
880
898
|
subfolder="unpackaged/pre/first",
|
|
881
899
|
unmanaged=True,
|
|
882
900
|
ref="tag_sha",
|
|
901
|
+
package_dependency=root_repo,
|
|
883
902
|
),
|
|
884
903
|
UnmanagedGitHubRefDependency(
|
|
885
904
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
886
905
|
subfolder="unpackaged/pre/second",
|
|
887
906
|
unmanaged=True,
|
|
888
907
|
ref="tag_sha",
|
|
908
|
+
package_dependency=root_repo,
|
|
889
909
|
),
|
|
890
|
-
|
|
891
|
-
namespace="bar",
|
|
892
|
-
version="1.5", # From pinned tag
|
|
893
|
-
package_name="RootRepo",
|
|
894
|
-
version_id="04t000000000000",
|
|
895
|
-
),
|
|
910
|
+
root_repo,
|
|
896
911
|
UnmanagedGitHubRefDependency(
|
|
897
912
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
898
913
|
subfolder="unpackaged/post/first",
|
|
899
914
|
unmanaged=False,
|
|
900
915
|
ref="tag_sha",
|
|
901
916
|
namespace_inject="bar",
|
|
917
|
+
package_dependency=root_repo,
|
|
902
918
|
),
|
|
903
919
|
]
|
|
904
920
|
|
|
@@ -938,6 +954,16 @@ version_id: 04t000000000000""",
|
|
|
938
954
|
|
|
939
955
|
gh = GitHubDynamicDependency(github="https://github.com/SFDO-Tooling/RootRepo")
|
|
940
956
|
|
|
957
|
+
root_repo = PackageNamespaceVersionDependency(
|
|
958
|
+
namespace="bar", version="2.0", package_name="RootRepo"
|
|
959
|
+
)
|
|
960
|
+
dep_repo = PackageNamespaceVersionDependency(
|
|
961
|
+
namespace="foo",
|
|
962
|
+
version="1.1", # from the pinned tag
|
|
963
|
+
package_name="DependencyRepo",
|
|
964
|
+
password_env_name="DEP_PW",
|
|
965
|
+
)
|
|
966
|
+
|
|
941
967
|
assert get_static_dependencies(
|
|
942
968
|
project_config,
|
|
943
969
|
dependencies=[gh],
|
|
@@ -949,6 +975,7 @@ version_id: 04t000000000000""",
|
|
|
949
975
|
subfolder="unpackaged/pre/top",
|
|
950
976
|
unmanaged=True,
|
|
951
977
|
ref="tag_sha",
|
|
978
|
+
package_dependency=dep_repo,
|
|
952
979
|
),
|
|
953
980
|
UnmanagedGitHubRefDependency(
|
|
954
981
|
github="https://github.com/SFDO-Tooling/DependencyRepo",
|
|
@@ -956,28 +983,30 @@ version_id: 04t000000000000""",
|
|
|
956
983
|
unmanaged=False,
|
|
957
984
|
ref="tag_sha",
|
|
958
985
|
namespace_inject="foo",
|
|
986
|
+
package_dependency=dep_repo,
|
|
959
987
|
),
|
|
960
988
|
UnmanagedGitHubRefDependency(
|
|
961
989
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
962
990
|
subfolder="unpackaged/pre/first",
|
|
963
991
|
unmanaged=True,
|
|
964
992
|
ref="tag_sha",
|
|
993
|
+
package_dependency=root_repo,
|
|
965
994
|
),
|
|
966
995
|
UnmanagedGitHubRefDependency(
|
|
967
996
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
968
997
|
subfolder="unpackaged/pre/second",
|
|
969
998
|
unmanaged=True,
|
|
970
999
|
ref="tag_sha",
|
|
1000
|
+
package_dependency=root_repo,
|
|
971
1001
|
),
|
|
972
|
-
|
|
973
|
-
namespace="bar", version="2.0", package_name="RootRepo"
|
|
974
|
-
),
|
|
1002
|
+
root_repo,
|
|
975
1003
|
UnmanagedGitHubRefDependency(
|
|
976
1004
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
977
1005
|
subfolder="unpackaged/post/first",
|
|
978
1006
|
unmanaged=False,
|
|
979
1007
|
ref="tag_sha",
|
|
980
1008
|
namespace_inject="bar",
|
|
1009
|
+
package_dependency=root_repo,
|
|
981
1010
|
),
|
|
982
1011
|
]
|
|
983
1012
|
|
|
@@ -994,6 +1023,10 @@ version_id: 04t000000000000""",
|
|
|
994
1023
|
|
|
995
1024
|
gh = GitHubDynamicDependency(github="https://github.com/SFDO-Tooling/RootRepo")
|
|
996
1025
|
|
|
1026
|
+
root_repo = PackageNamespaceVersionDependency(
|
|
1027
|
+
namespace="bar", version="2.0", package_name="RootRepo"
|
|
1028
|
+
)
|
|
1029
|
+
|
|
997
1030
|
assert get_static_dependencies(
|
|
998
1031
|
project_config,
|
|
999
1032
|
dependencies=[gh],
|
|
@@ -1007,21 +1040,22 @@ version_id: 04t000000000000""",
|
|
|
1007
1040
|
subfolder="unpackaged/pre/first",
|
|
1008
1041
|
unmanaged=True,
|
|
1009
1042
|
ref="tag_sha",
|
|
1043
|
+
package_dependency=root_repo,
|
|
1010
1044
|
),
|
|
1011
1045
|
UnmanagedGitHubRefDependency(
|
|
1012
1046
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
1013
1047
|
subfolder="unpackaged/pre/second",
|
|
1014
1048
|
unmanaged=True,
|
|
1015
1049
|
ref="tag_sha",
|
|
1050
|
+
package_dependency=root_repo,
|
|
1016
1051
|
),
|
|
1017
|
-
|
|
1018
|
-
namespace="bar", version="2.0", package_name="RootRepo"
|
|
1019
|
-
),
|
|
1052
|
+
root_repo,
|
|
1020
1053
|
UnmanagedGitHubRefDependency(
|
|
1021
1054
|
github="https://github.com/SFDO-Tooling/RootRepo",
|
|
1022
1055
|
subfolder="unpackaged/post/first",
|
|
1023
1056
|
unmanaged=False,
|
|
1024
1057
|
ref="tag_sha",
|
|
1025
1058
|
namespace_inject="bar",
|
|
1059
|
+
package_dependency=root_repo,
|
|
1026
1060
|
),
|
|
1027
1061
|
]
|
cumulusci/cumulusci.yml
CHANGED
|
@@ -823,10 +823,6 @@ tasks:
|
|
|
823
823
|
class_path: cumulusci.tasks.salesforce.SfDataCommands.DataCreateRecordTask
|
|
824
824
|
description: "Executes the `sf data create` command against an org"
|
|
825
825
|
group: SalesforceDX Data Commands
|
|
826
|
-
get_first_item_from_record_list:
|
|
827
|
-
class_path: cumulusci.tasks.utility.data_management.GetFirstItemFromRecordListTask
|
|
828
|
-
description: "Get the first item from a record list"
|
|
829
|
-
group: Utilities
|
|
830
826
|
flows:
|
|
831
827
|
ci_beta:
|
|
832
828
|
group: Continuous Integration
|