cumulusci-plus 5.0.8.dev0__py3-none-any.whl → 5.0.10__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.
cumulusci/__about__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "5.0.8.dev0"
1
+ __version__ = "5.0.10"
cumulusci/cli/cci.py CHANGED
@@ -50,13 +50,8 @@ _exit_stack = None
50
50
  _signal_handler_active = False # Flag to prevent recursive signal handler calls
51
51
 
52
52
 
53
- def _signal_handler(signum, frame):
54
- """Handle termination signals.
55
-
56
- This handler ensures the CLI exits gracefully with a failure code when
57
- receiving SIGTERM or SIGINT signals, such as when an Azure DevOps pipeline
58
- is cancelled. It also terminates all child processes in the process group.
59
- """
53
+ def _cleanup_on_signal(signum):
54
+ """Cleanup action for termination signals."""
60
55
  global _signal_handler_active
61
56
 
62
57
  # Prevent recursive signal handler calls
@@ -118,6 +113,11 @@ def _signal_handler(signum, frame):
118
113
  sys.exit(exit_code)
119
114
 
120
115
 
116
+ def _signal_handler(signum, frame):
117
+ """Handle termination signals by deferring to the cleanup function."""
118
+ _cleanup_on_signal(signum)
119
+
120
+
121
121
  #
122
122
  # Root command
123
123
  #
@@ -185,9 +185,7 @@ def main(args=None):
185
185
  try:
186
186
  cli(args[1:], standalone_mode=False, obj=runtime)
187
187
  except click.Abort: # Keyboard interrupt
188
- console = Console()
189
- show_debug_info() if debug else console.print("\n[red bold]Aborted!")
190
- sys.exit(1)
188
+ _cleanup_on_signal(signal.SIGINT)
191
189
  except Exception as e:
192
190
  if debug:
193
191
  console = Console()
@@ -662,14 +662,20 @@ class UnmanagedVcsDependencyFlow(UnmanagedStaticDependency, ABC):
662
662
  flow_config = project_config.get_flow(self.flow_name)
663
663
  flow_config.name = self.flow_name
664
664
 
665
+ pre_post_options = {
666
+ "unmanaged": self._get_unmanaged(org),
667
+ "namespace_inject": self.namespace_inject,
668
+ "namespace_strip": self.namespace_strip,
669
+ }
670
+
665
671
  coordinator = FlowCoordinator(
666
672
  project_config,
667
673
  flow_config,
668
674
  name=flow_config.name,
669
675
  options={
670
- "unmanaged": self._get_unmanaged(org),
671
- "namespace_inject": self.namespace_inject,
672
- "namespace_strip": self.namespace_strip,
676
+ "flow": pre_post_options,
677
+ "deploy_pre": pre_post_options,
678
+ "deploy_post": pre_post_options,
673
679
  },
674
680
  skip=None,
675
681
  callbacks=self.callback_class(),
@@ -9,7 +9,11 @@ from pydantic import BaseModel, validator
9
9
  from simple_salesforce.exceptions import SalesforceMalformedRequest
10
10
 
11
11
  from cumulusci.core.config.util import get_devhub_config
12
- from cumulusci.core.dependencies.base import UnmanagedDependency, UnmanagedVcsDependency
12
+ from cumulusci.core.dependencies.base import (
13
+ UnmanagedDependency,
14
+ UnmanagedVcsDependency,
15
+ UnmanagedVcsDependencyFlow,
16
+ )
13
17
  from cumulusci.core.dependencies.dependencies import (
14
18
  PackageNamespaceVersionDependency,
15
19
  PackageVersionIdDependency,
@@ -628,6 +632,11 @@ class CreatePackageVersion(BaseSalesforceApiTask):
628
632
  f"Skipping dependency {dependency} because create_unlocked_dependency_packages is False."
629
633
  )
630
634
  continue
635
+ elif isinstance(dependency, UnmanagedVcsDependencyFlow):
636
+ self.logger.info(
637
+ f"Skipping Pre/Post flow static dependency {dependency}."
638
+ )
639
+ continue
631
640
  else:
632
641
  raise DependencyLookupError(
633
642
  f"Unable to convert dependency: {dependency}"
@@ -1,37 +1,43 @@
1
+ from cumulusci.core.exceptions import TaskOptionsError
1
2
  from cumulusci.tasks.base_source_control_task import BaseSourceControlTask
3
+ from cumulusci.utils.options import CCIOptions, Field
2
4
 
3
5
 
4
6
  class CreatePackageDataFromCommitStatus(BaseSourceControlTask):
5
- task_options = {
6
- "state": {
7
- "description": "sha of the commit",
8
- "required": True,
9
- },
10
- "context": {
11
- "description": "Name of the commit status context",
12
- "required": True,
13
- },
14
- "commit_id": {
15
- "description": "sha of the commit",
16
- },
17
- "description": {
18
- "description": "Description of the commit status",
19
- },
20
- "target_url": {
21
- "description": "URL to associate with the commit status",
22
- },
23
- }
7
+ class Options(CCIOptions):
8
+ state: str = Field(description="sha of the commit")
9
+ context: str = Field(description="Name of the commit status context")
10
+ commit_id: str = Field(description="sha of the commit", default=None)
11
+ description: str = Field(
12
+ description="Description of the commit status", default=None
13
+ )
14
+ target_url: str = Field(
15
+ description="URL to associate with the commit status", default=None
16
+ )
17
+
18
+ parsed_options: Options
24
19
 
25
20
  def _run_task(self):
26
21
  repo = self.get_repo()
27
- commit_sha = self.options["commit_id"] or self.project_config.repo_commit or ""
22
+ commit_sha = (
23
+ self.parsed_options.commit_id or self.project_config.repo_commit or ""
24
+ )
25
+
26
+ if not commit_sha:
27
+ raise TaskOptionsError(
28
+ "Commit not found. Please provide a valid commit ID."
29
+ )
28
30
 
29
31
  commit = repo.create_commit_status(
30
32
  commit_sha,
31
- state=self.options["state"],
32
- context=self.options["context"],
33
- description=self.options.get("description"),
34
- target_url=self.options.get("target_url"),
33
+ state=self.parsed_options.state,
34
+ context=self.parsed_options.context,
35
+ description=self.parsed_options.description,
36
+ target_url=self.parsed_options.target_url,
35
37
  )
36
38
 
37
39
  self.return_values = {"commit_id": commit.sha}
40
+
41
+ self.logger.info(
42
+ f"Commit status created for commit {commit_sha} with state {self.parsed_options.state}"
43
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cumulusci-plus
3
- Version: 5.0.8.dev0
3
+ Version: 5.0.10
4
4
  Summary: Build and release tools for Salesforce developers
5
5
  Project-URL: Homepage, https://github.com/jorgesolebur/CumulusCI
6
6
  Project-URL: Changelog, https://cumulusci.readthedocs.io/en/stable/history.html
@@ -127,7 +127,7 @@ license](https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE)
127
127
  and is not covered by the Salesforce Master Subscription Agreement.
128
128
 
129
129
  <!-- Changelog -->
130
- ## v4.4.0 (2025-05-05)
130
+ ## v5.0.10 (2025-07-25)
131
131
 
132
132
  <!-- Release notes generated using configuration in .github/release.yml at main -->
133
133
 
@@ -135,11 +135,9 @@ and is not covered by the Salesforce Master Subscription Agreement.
135
135
 
136
136
  ### Changes
137
137
 
138
- - Add new tasks get_assignable_permission_sets and get_assignable_licenses by [@vsbharath](https://github.com/vsbharath) in [#3892](https://github.com/SFDO-Tooling/CumulusCI/pull/3892)
138
+ - Fix repo URL to generate release notes. by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#37](https://github.com/jorgesolebur/CumulusCI/pull/37)
139
+ - Update Commit Status create task with Options by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#39](https://github.com/jorgesolebur/CumulusCI/pull/39)
140
+ - Fix module path for CCIOptions by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#41](https://github.com/jorgesolebur/CumulusCI/pull/41)
141
+ - CCI Dependency Flow, Fix Ctrl + C by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#43](https://github.com/jorgesolebur/CumulusCI/pull/43)
139
142
 
140
- ### Issues Fixed
141
-
142
- - fix: Make get permset licenses return active only by [@jstvz](https://github.com/jstvz) in [#3888](https://github.com/SFDO-Tooling/CumulusCI/pull/3888)
143
- - fix: Read the docs configuration by LaTeX into PDF by [@dcinzona](https://github.com/dcinzona) in [#3891](https://github.com/SFDO-Tooling/CumulusCI/pull/3891)
144
-
145
- **Full Changelog**: https://github.com/SFDO-Tooling/CumulusCI/compare/v4.3.0.dev0...v4.4.0
143
+ **Full Changelog**: https://github.com/jorgesolebur/CumulusCI/compare/v5.0.9...v5.0.10
@@ -1,10 +1,10 @@
1
- cumulusci/__about__.py,sha256=nnWzpE6c_AzsihHEu6Ul-b8Oj0n88PpGCNkmHuwzmis,27
1
+ cumulusci/__about__.py,sha256=EmzhdAwLnYXXoZ0aJJraVgHSrBRip89O63i_qg7JgbQ,23
2
2
  cumulusci/__init__.py,sha256=jdanFQ_i8vbdO7Eltsf4pOfvV4mwa_Osyc4gxWKJ8ng,764
3
3
  cumulusci/__main__.py,sha256=kgRH-n5AJrH_daCK_EJwH7azAUxdXEmpi-r-dPGMR6Y,43
4
4
  cumulusci/conftest.py,sha256=AIL98BDwNAQtdo8YFmLKwav0tmrQ5dpbw1cX2FyGouQ,5108
5
5
  cumulusci/cumulusci.yml,sha256=FE1Dm7EhcMXY-XtLljbcbRyo_E0tvspaxqh8Nsiup3w,72365
6
6
  cumulusci/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- cumulusci/cli/cci.py,sha256=NcFm0Nng5o47fAMcjpSHjWRvQKDbD2lwPSkuoCVW9eA,11901
7
+ cumulusci/cli/cci.py,sha256=nho1RrdyCWsOKpMwwzoDVA7dOpNEHpb4jx0JeKkmOIE,11714
8
8
  cumulusci/cli/error.py,sha256=znj0YN8D2Grozm1u7mZAsJlmmdGebbuy0c1ofQluL4Q,4410
9
9
  cumulusci/cli/flow.py,sha256=rN_9WL2Z6dcx-oRngChIgei3E5Qmg3XVzk5ND1o0i3s,6171
10
10
  cumulusci/cli/logger.py,sha256=bpzSD0Bm0BAwdNbVR6yZXMREh2vm7jOytZevEaNoVR4,2267
@@ -65,7 +65,7 @@ cumulusci/core/config/tests/test_config.py,sha256=ZtIQSIzQWebw7mYXgehnp3CvoatC_t
65
65
  cumulusci/core/config/tests/test_config_expensive.py,sha256=__3JEuoAQ8s5njTcbyZlpXHr0jR0Qtne96xyF7fzqjQ,30137
66
66
  cumulusci/core/config/tests/test_config_util.py,sha256=X1SY9PIhLoQuC8duBKgs804aghN3n12DhqiC_f6jSmM,3177
67
67
  cumulusci/core/dependencies/__init__.py,sha256=Txf4VCrRW-aREKHqzK3ZyauQMsgtCXjiLkQzpMQT0kI,1533
68
- cumulusci/core/dependencies/base.py,sha256=i5F7D2CwoWwUHqjI0LRCwwJGqhGKFRDkerg0N8uJdQs,22804
68
+ cumulusci/core/dependencies/base.py,sha256=73Wy1BGvqinDOrPAyPjY_Qz4PyePhupxtt01IMY3zIk,22971
69
69
  cumulusci/core/dependencies/dependencies.py,sha256=74KjrCRn7AjKPBSGOm4pU34eJd8GSp1wNs7EFIC0wBE,8689
70
70
  cumulusci/core/dependencies/github.py,sha256=ozpRc5ADJsRDD5C_T-TLFygnBDE5Y9_03ZLCtZ-qr98,5897
71
71
  cumulusci/core/dependencies/github_resolvers.py,sha256=Em8p41Q-npoKv1ZAYNxXVrluQmYitzVfLLXlmln-MGw,9196
@@ -229,7 +229,7 @@ cumulusci/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
229
  cumulusci/tasks/base_source_control_task.py,sha256=YVLngLcXsjnsbQwTS33tioLic3EU5D-P0GtY8op00Uw,637
230
230
  cumulusci/tasks/command.py,sha256=ntVmi98kUvoQm90sd34pbILLt73tdG9VUT1-eTdHQ6g,5710
231
231
  cumulusci/tasks/connectedapp.py,sha256=G-OiSnLYCWj3iQ2AYU1zQk0x0jWQcwKM8wGRkF694VE,7187
232
- cumulusci/tasks/create_package_version.py,sha256=hxwK9VUItXxjGqb40BVnOu5-1yONaTpQECAau7idvUw,33058
232
+ cumulusci/tasks/create_package_version.py,sha256=bawzRfOsfsN3E-4OB6ltjwcuxZD3W5xQylsGg0SCc2w,33327
233
233
  cumulusci/tasks/datadictionary.py,sha256=qtMBXR-xnkLPCFQfe3v09b_DgAVhe_ElKc6355Yd4f4,29801
234
234
  cumulusci/tasks/dx_convert_from.py,sha256=io-6S3Kfp86GR7CAsHyFhPAW6XEtVKWVeJdNO0FFsgQ,806
235
235
  cumulusci/tasks/metadeploy.py,sha256=33AX5701G2fyu42wNY9mitKAXq04Dxpg_WMIK59d4P8,15787
@@ -613,7 +613,7 @@ cumulusci/tasks/tests/test_sfdx.py,sha256=oUbHo28d796m5RuskXMLitJw2rCLjjXIfxggzr
613
613
  cumulusci/tasks/tests/test_util.py,sha256=D1T0QnvPTS0PHeZWo2xiVgE1jVTYcLzGTGHwEIoVmxk,7296
614
614
  cumulusci/tasks/vcs/__init__.py,sha256=ZzpMZnhooXZ6r_ywBVTS3UNw9uMcXW6h33LylRqTDK0,700
615
615
  cumulusci/tasks/vcs/commit_status.py,sha256=hgPUVHeQyIfMsCuwrw2RI-ufnbjdRARc6HI3BEgdcxI,2332
616
- cumulusci/tasks/vcs/create_commit_status.py,sha256=Et1kCZOxraVHW460ypcJ91KE2SUiQSwbcLwAQUwEIVo,1166
616
+ cumulusci/tasks/vcs/create_commit_status.py,sha256=kr_OFM3J32jxusS1og-K91Kl1F_Nr7SlevRsJKBhifs,1565
617
617
  cumulusci/tasks/vcs/download_extract.py,sha256=Bh3XYtQg7Mt_BVLaVNgNz4hmhRkkc_D2Y1YKeU80DKY,7425
618
618
  cumulusci/tasks/vcs/merge.py,sha256=iGDQMfRrxpQatV8ZdDoqJLLY88cernWU7Vv2LShtm-o,13264
619
619
  cumulusci/tasks/vcs/publish.py,sha256=g6ExqXtZcjcl4uez8Zt6KakHYoRUcnNCmEGaXSqb5yM,8179
@@ -736,9 +736,9 @@ cumulusci/vcs/tests/dummy_service.py,sha256=RltOUpMIhSDNrfxk0LhLqlH4ppC0sK6NC2cO
736
736
  cumulusci/vcs/tests/test_vcs_base.py,sha256=9mp6uZ3lTxY4onjUNCucp9N9aB3UylKS7_2Zu_hdAZw,24331
737
737
  cumulusci/vcs/tests/test_vcs_bootstrap.py,sha256=N0NA48-rGNIIjY3Z7PtVnNwHObSlEGDk2K55TQGI8g4,27954
738
738
  cumulusci/vcs/utils/__init__.py,sha256=py4fEcHM7Vd0M0XWznOlywxaeCtG3nEVGmELmEKVGU8,869
739
- cumulusci_plus-5.0.8.dev0.dist-info/METADATA,sha256=No5M7E99WFdnfIqbyhyCUrW2WpLlo8W09i7yx6wgr7w,6139
740
- cumulusci_plus-5.0.8.dev0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
741
- cumulusci_plus-5.0.8.dev0.dist-info/entry_points.txt,sha256=nTtu04b9iLXhzADcTrb5PwmdXE6e2MTUAMh9OK6Z2pg,80
742
- cumulusci_plus-5.0.8.dev0.dist-info/licenses/AUTHORS.rst,sha256=PvewjKImdKPhhJ6xR2EEZ4T7GbpY2ZeAeyWm2aLtiMQ,676
743
- cumulusci_plus-5.0.8.dev0.dist-info/licenses/LICENSE,sha256=NFsF_s7RVXk2dU6tmRAN8wF45pnD98VZ5IwqOsyBcaU,1499
744
- cumulusci_plus-5.0.8.dev0.dist-info/RECORD,,
739
+ cumulusci_plus-5.0.10.dist-info/METADATA,sha256=SJ8wcZ78rfPAjB-LWAtPNaORZ4zICzwvaH4hpB7QFiw,6206
740
+ cumulusci_plus-5.0.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
741
+ cumulusci_plus-5.0.10.dist-info/entry_points.txt,sha256=nTtu04b9iLXhzADcTrb5PwmdXE6e2MTUAMh9OK6Z2pg,80
742
+ cumulusci_plus-5.0.10.dist-info/licenses/AUTHORS.rst,sha256=PvewjKImdKPhhJ6xR2EEZ4T7GbpY2ZeAeyWm2aLtiMQ,676
743
+ cumulusci_plus-5.0.10.dist-info/licenses/LICENSE,sha256=NFsF_s7RVXk2dU6tmRAN8wF45pnD98VZ5IwqOsyBcaU,1499
744
+ cumulusci_plus-5.0.10.dist-info/RECORD,,