proj-flow 0.12.0__tar.gz → 0.13.0__tar.gz

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.
Files changed (141) hide show
  1. {proj_flow-0.12.0 → proj_flow-0.13.0}/CHANGELOG.rst +8 -0
  2. {proj_flow-0.12.0 → proj_flow-0.13.0}/PKG-INFO +1 -1
  3. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/__init__.py +1 -1
  4. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/github/cli.py +3 -3
  5. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/flow/configs.py +42 -1
  6. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/.flow/config.yml +0 -8
  7. {proj_flow-0.12.0 → proj_flow-0.13.0}/.flow/config.yaml +0 -0
  8. {proj_flow-0.12.0 → proj_flow-0.13.0}/.gitignore +0 -0
  9. {proj_flow-0.12.0 → proj_flow-0.13.0}/.readthedocs.yaml +0 -0
  10. {proj_flow-0.12.0 → proj_flow-0.13.0}/LICENSE +0 -0
  11. {proj_flow-0.12.0 → proj_flow-0.13.0}/README.md +0 -0
  12. {proj_flow-0.12.0 → proj_flow-0.13.0}/pyproject.toml +0 -0
  13. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/__main__.py +0 -0
  14. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/__init__.py +0 -0
  15. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/arg.py +0 -0
  16. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/completers.py +0 -0
  17. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/ctx.py +0 -0
  18. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/env.py +0 -0
  19. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/init.py +0 -0
  20. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/makefile.py +0 -0
  21. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/release.py +0 -0
  22. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/api/step.py +0 -0
  23. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/__cmake_version__.py +0 -0
  24. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/__init__.py +0 -0
  25. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/cmd.py +0 -0
  26. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/inspect.py +0 -0
  27. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/matrix.py +0 -0
  28. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/name_list.py +0 -0
  29. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/plugins.py +0 -0
  30. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/registry.py +0 -0
  31. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/base/uname.py +0 -0
  32. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/cli/__init__.py +0 -0
  33. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/cli/argument.py +0 -0
  34. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/cli/finder.py +0 -0
  35. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/dependency.py +0 -0
  36. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/__init__.py +0 -0
  37. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/__init__.py +0 -0
  38. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/cmake/__init__.py +0 -0
  39. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/cmake/parser.py +0 -0
  40. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/cmake/project.py +0 -0
  41. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/cmake/steps.py +0 -0
  42. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/conan/__init__.py +0 -0
  43. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/cplusplus/conan/_conan.py +0 -0
  44. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/github/__init__.py +0 -0
  45. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/github/hosting.py +0 -0
  46. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/github/publishing.py +0 -0
  47. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/github/switches.py +0 -0
  48. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/markdown_changelog.py +0 -0
  49. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/python/__init__.py +0 -0
  50. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/python/rtdocs.py +0 -0
  51. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/python/steps.py +0 -0
  52. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/python/version.py +0 -0
  53. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/re_structured_changelog.py +0 -0
  54. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/sign/__init__.py +0 -0
  55. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/sign/api.py +0 -0
  56. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/sign/win32.py +0 -0
  57. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/ext/store.py +0 -0
  58. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/flow/__init__.py +0 -0
  59. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/flow/layer.py +0 -0
  60. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/flow/steps.py +0 -0
  61. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/__init__.py +0 -0
  62. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/commit.py +0 -0
  63. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/error.py +0 -0
  64. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/fmt.py +0 -0
  65. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/format.py +0 -0
  66. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/hosting/__init__.py +0 -0
  67. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/hosting/github.py +0 -0
  68. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/msg.py +0 -0
  69. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/release.py +0 -0
  70. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/rich_text/__init__.py +0 -0
  71. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/rich_text/api.py +0 -0
  72. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/rich_text/markdown.py +0 -0
  73. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/log/rich_text/re_structured_text.py +0 -0
  74. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/__init__.py +0 -0
  75. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/base.py +0 -0
  76. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/bootstrap.py +0 -0
  77. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/init.py +0 -0
  78. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/list.py +0 -0
  79. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/run.py +0 -0
  80. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/minimal/system.py +0 -0
  81. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/__init__.py +0 -0
  82. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/api.py +0 -0
  83. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/cplusplus/__init__.py +0 -0
  84. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/cplusplus/cmake_context.py +0 -0
  85. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/cplusplus/conan_context.py +0 -0
  86. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/cplusplus/project.py +0 -0
  87. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/data.py +0 -0
  88. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/project/interact.py +0 -0
  89. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/.clang-format +0 -0
  90. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/.flow/flow.py.mustache +0 -0
  91. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/.flow/matrix.yml +0 -0
  92. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/.flow/official.yml +0 -0
  93. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/.gitignore +0 -0
  94. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/README.md.mustache +0 -0
  95. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/flow +0 -0
  96. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base/flow.cmd +0 -0
  97. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/base.json +0 -0
  98. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +0 -0
  99. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +0 -0
  100. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +0 -0
  101. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +0 -0
  102. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +0 -0
  103. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/packages/config.cmake +0 -0
  104. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +0 -0
  105. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +0 -0
  106. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +0 -0
  107. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +0 -0
  108. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +0 -0
  109. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache +0 -0
  110. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/CMakePresets.json +0 -0
  111. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
  112. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
  113. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
  114. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
  115. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/icons/.gitignore +0 -0
  116. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +0 -0
  117. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg +0 -0
  118. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/src/main.cc.mustache +0 -0
  119. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/src/version.hpp.in.mustache +0 -0
  120. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache +0 -0
  121. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/cmake.json +0 -0
  122. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +0 -0
  123. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +0 -0
  124. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/conan/conanfile.txt +0 -0
  125. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/conan.json +0 -0
  126. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +0 -0
  127. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +0 -0
  128. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml +0 -0
  129. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_actions/.github/workflows/linter.yml +0 -0
  130. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg +0 -0
  131. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_actions.json +0 -0
  132. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +0 -0
  133. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +0 -0
  134. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +0 -0
  135. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md +0 -0
  136. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/layers/github_social.json +0 -0
  137. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/licenses/0BSD.mustache +0 -0
  138. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/licenses/MIT.mustache +0 -0
  139. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/licenses/Unlicense.mustache +0 -0
  140. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/licenses/WTFPL.mustache +0 -0
  141. {proj_flow-0.12.0 → proj_flow-0.13.0}/src/proj_flow/template/licenses/Zlib.mustache +0 -0
@@ -4,6 +4,14 @@ Changelog
4
4
 
5
5
  All notable changes to this project will be documented in this file.
6
6
 
7
+ `0.13.0 <https://github.com/mzdun/proj-flow/compare/v0.12.0...v0.13.0>`_ (2025-02-22)
8
+ =====================================================================================
9
+
10
+ New Features
11
+ ------------
12
+
13
+ - calculate lts.ubuntu from current date (`2bfa12e <https://github.com/mzdun/proj-flow/commit/2bfa12e87cf7b5b163ef88473d2f4779afeed938>`_)
14
+
7
15
  `0.12.0 <https://github.com/mzdun/proj-flow/compare/v0.11.3...v0.12.0>`_ (2025-02-22)
8
16
  =====================================================================================
9
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proj-flow
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: C++ project maintenance, automated
5
5
  Project-URL: Changelog, https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst
6
6
  Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
@@ -6,4 +6,4 @@ The **proj_flow** contains only ``__version__`` to be updated, nothing more.
6
6
  This is in an attempt to make this module easy to load initially.
7
7
  """
8
8
 
9
- __version__ = "0.12.0"
9
+ __version__ = "0.13.0"
@@ -73,7 +73,7 @@ def release_cmd(
73
73
  typing.Optional[str],
74
74
  arg.Argument(
75
75
  help="Ignore the version change from changelog and instead use this value. "
76
- f"Allowed values are: {name_list(FORCED_LEVEL_CHOICES)}",
76
+ f"Allowed values are: {name_list(FORCED_LEVEL_CHOICES)}.",
77
77
  meta="level",
78
78
  choices=FORCED_LEVEL_CHOICES,
79
79
  ),
@@ -142,8 +142,8 @@ def publish(
142
142
  upload: typing.Annotated[
143
143
  typing.Optional[str],
144
144
  arg.Argument(
145
- help="If present, will upload files from the directory to "
146
- "the referenced release before publishing.",
145
+ help="If present, upload files from the directory to the referenced "
146
+ "release before publishing.",
147
147
  meta="directory",
148
148
  ),
149
149
  ],
@@ -9,7 +9,9 @@ using ``-D`` switches.
9
9
 
10
10
 
11
11
  import argparse
12
+ import datetime
12
13
  import os
14
+ import sys
13
15
  from typing import Any, Callable, Dict, List
14
16
 
15
17
  from proj_flow.api import env
@@ -90,9 +92,43 @@ def _expand_one(config: dict, github_os: str, os_in_name: str):
90
92
  return config
91
93
 
92
94
 
95
+ __printed_lts_ubuntu_warning = False
96
+
97
+
98
+ def _ubuntu_lts(today=datetime.date.today(), lts_years=5):
99
+ year = today.year
100
+ for y in range(year - lts_years, year + 1):
101
+ if y % 2 != 0:
102
+ continue
103
+ release = datetime.date(y, 4, 1)
104
+ end_of_life = datetime.date(y + lts_years, 1, 31)
105
+ if release > today or end_of_life < today:
106
+ continue
107
+ yield f"ubuntu-{y % 100}.04"
108
+
109
+
110
+ def _lts_list(config: dict, lts_list: Dict[str, List[str]]):
111
+ os = config["os"]
112
+ raw = lts_list.get(os)
113
+ if os == "ubuntu":
114
+ if raw is not None:
115
+ global __printed_lts_ubuntu_warning
116
+ if not __printed_lts_ubuntu_warning:
117
+ __printed_lts_ubuntu_warning = True
118
+ print(
119
+ "\033[1;33m-- lts.ubuntu in config.yaml is deprecated; "
120
+ "please remove it, so it can be calculated base on "
121
+ "current date\033[m",
122
+ file=sys.stderr,
123
+ )
124
+ else:
125
+ raw = list(_ubuntu_lts())
126
+ return raw or []
127
+
128
+
93
129
  def _expand_config(config: dict, spread_lts: bool, lts_list: Dict[str, List[str]]):
94
130
  if spread_lts:
95
- spread = lts_list.get(config["os"], [])
131
+ spread = _lts_list(config, lts_list)
96
132
  if len(spread):
97
133
  return [
98
134
  _expand_one({key: config[key] for key in config}, lts, lts)
@@ -136,6 +172,11 @@ class Configs:
136
172
  # from commands/github
137
173
  spread_lts = hasattr(args, "matrix") and not not args.matrix
138
174
 
175
+ if not spread_lts:
176
+ # allow "run" to see the warning about "lts.ubuntu"
177
+ for config in configs:
178
+ _lts_list(config, rt.lts_list)
179
+
139
180
  turned = matrix.flatten(
140
181
  [
141
182
  _expand_config(config, spread_lts, rt.lts_list)
@@ -18,17 +18,9 @@ compiler:
18
18
  gcc: [ gcc, g++ ]
19
19
  os-default: { ubuntu: gcc, windows: msvc }
20
20
 
21
- lts:
22
- ubuntu:
23
- - ubuntu-20.04
24
- - ubuntu-22.04
25
- - ubuntu-24.04
26
-
27
21
  postproc:
28
22
  exclude:
29
- - { github_os: ubuntu-20.04, sanitizer: true }
30
23
  - { github_os: ubuntu-24.04, sanitizer: true }
31
- - { github_os: ubuntu-20.04, compiler: clang }
32
24
 
33
25
 
34
26
  shortcuts:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes