Skip to content

Commit fe1bd69

Browse files
authored
Merge pull request #14 from jorgesolebur/feature/circularDependency
Fix circular loading and loading of plugins in universal config.
2 parents 9d509db + 3885a25 commit fe1bd69

6 files changed

Lines changed: 22 additions & 21 deletions

File tree

cumulusci_ado/azure_devops.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,6 @@
88
from cumulusci_ado import __version__
99
from cumulusci_ado.utils.ado import get_ado_cci_plus_upgrade_command
1010

11-
import_global("cumulusci_ado.vcs.ado.service.AzureDevOpsService")
12-
13-
VCSSource.register(
14-
"azure_devops", "cumulusci_ado.vcs.ado.source.azure_devops.ADOSource"
15-
)
16-
17-
from cumulusci_ado.vcs.ado.dependencies.ado_dependencies import VCS_ADO as dep
18-
from cumulusci_ado.vcs.ado.dependencies.ado_resolvers import VCS_ADO as res
19-
20-
assert (
21-
dep == res
22-
), "VCS_ADO must match in dependencies and resolvers. (Assertion done to load the ado dependencies and resolvers correctly)"
23-
2411

2512
class AzureDevOpsPlugin(PluginBase):
2613
"""Plugin for Azure DevOps integration."""
@@ -43,6 +30,22 @@ def initialize(self) -> None:
4330
"""Initialize the plugin."""
4431
super().initialize()
4532

33+
# Delay import of service to avoid circular import during plugin loading
34+
import_global("cumulusci_ado.vcs.ado.service.AzureDevOpsService")
35+
36+
# Register VCS source
37+
VCSSource.register(
38+
"azure_devops", "cumulusci_ado.vcs.ado.source.azure_devops.ADOSource"
39+
)
40+
41+
# Load dependencies and resolvers
42+
from cumulusci_ado.vcs.ado.dependencies.ado_dependencies import VCS_ADO as dep
43+
from cumulusci_ado.vcs.ado.dependencies.ado_resolvers import VCS_ADO as res
44+
45+
assert (
46+
dep == res
47+
), "VCS_ADO must match in dependencies and resolvers. (Assertion done to load the ado dependencies and resolvers correctly)"
48+
4649
def teardown(self) -> None:
4750
"""Tear down the plugin."""
4851
super().teardown()

cumulusci_ado/utils/ado.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from urllib.parse import ParseResult, urlparse
77

88
try:
9-
import colorama
9+
import colorama # type: ignore
1010
except ImportError:
1111
# coloredlogs only installs colorama on Windows
1212
pass

cumulusci_ado/vcs/ado/dependencies/ado_dependencies.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424

2525
@lru_cache(50)
2626
def get_ado_repo(project_config, url) -> ADORepository:
27-
from cumulusci_ado.vcs.ado.service import VCSService, get_ado_service_for_url
27+
from cumulusci.vcs.base import VCSService
28+
29+
from cumulusci_ado.vcs.ado.service import get_ado_service_for_url
2830

2931
vcs_service: Optional[VCSService] = get_ado_service_for_url(project_config, url)
3032

cumulusci_ado/vcs/ado/service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def get_repository(self, options: dict = {}) -> Optional["ADORepository"]:
166166
service_config=self.service_config,
167167
options=options,
168168
)
169-
self._repo._init_repo()
169+
self._repo._init_repo() # type: ignore
170170
return self._repo
171171

172172
def parse_repo_url(self) -> List[str]:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ authors = [{name = "Rupesh J"}]
1111
requires-python = ">=3.11"
1212
keywords = ["cumulusci", "salesforce", "azure devops"]
1313
dependencies = [
14-
"cumulusci-plus>=5.0.0",
14+
"cumulusci-plus>=5.0.32",
1515
"azure-devops",
1616
"requests",
1717
"humanfriendly",

utility/generate-release-notes.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,3 @@ def main(prev, next):
1818
)
1919
print(cmd)
2020
os.system(cmd)
21-
22-
23-
if __name__ == "__main__":
24-
main()

0 commit comments

Comments
 (0)