git2py 0.0.5__tar.gz → 0.0.6__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.
@@ -0,0 +1,16 @@
1
+ # wads CI — calls the reusable workflow hosted in i2mint/wads.
2
+ #
3
+ # All configuration comes from this repo's pyproject.toml [tool.wads.ci.*].
4
+ # To customize the workflow itself (rare), replace this file with the
5
+ # full inline template `wads/data/github_ci_uv.yml` from i2mint/wads.
6
+ #
7
+ # Pinning: `@master` floats with wads. If you need version stability for
8
+ # a release-sensitive repo, change `@master` to a wads tag (e.g. `@v0.1.81`).
9
+ # CI failure does not block a published release — it blocks the publish
10
+ # step itself — so floating master is generally safe.
11
+ name: Continuous Integration
12
+ on: [push, pull_request]
13
+ jobs:
14
+ ci:
15
+ uses: i2mint/wads/.github/workflows/uv-ci.yml@master
16
+ secrets: inherit
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: git2py
3
- Version: 0.0.5
3
+ Version: 0.0.6
4
4
  Summary: Mapping git operation to a dict-like Data Object Layer
5
5
  Project-URL: Homepage, https://github.com/i2mint/git2py
6
6
  License: Apache-2.0
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "git2py"
9
- version = "0.0.5"
9
+ version = "0.0.6"
10
10
  description = "Mapping git operation to a dict-like Data Object Layer"
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.10"
@@ -1,256 +0,0 @@
1
- name: Continuous Integration (uv)
2
- # MIGRATION NOTE: Old CI uses pylint - new CI uses ruff for linting
3
- on: [push, pull_request]
4
-
5
- # Workflow-level env vars from [tool.wads.ci.env] in pyproject.toml.
6
- # Populated by wads-migrate / wads init via template substitution.
7
- # Includes PROJECT_NAME, literal defaults from env.defaults, and secret-
8
- # backed vars from required_envvars / test_envvars / extra_envvars,
9
- # rendered as `KEY: secrets.KEY || ''` so missing secrets don't fail parsing.
10
- env:
11
- PROJECT_NAME: git2py
12
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN || '' }}
13
-
14
- jobs:
15
- # First job: Read configuration from pyproject.toml
16
- setup:
17
- name: Read Configuration
18
- runs-on: ubuntu-latest
19
- outputs:
20
- project-name: ${{ steps.config.outputs.project-name }}
21
- python-versions: ${{ steps.config.outputs.python-versions }}
22
- pytest-args: ${{ steps.config.outputs.pytest-args }}
23
- coverage-enabled: ${{ steps.config.outputs.coverage-enabled }}
24
- exclude-paths: ${{ steps.config.outputs.exclude-paths }}
25
- test-on-windows: ${{ steps.config.outputs.test-on-windows }}
26
- tests-enabled: ${{ steps.config.outputs.tests-enabled }}
27
- build-sdist: ${{ steps.config.outputs.build-sdist }}
28
- build-wheel: ${{ steps.config.outputs.build-wheel }}
29
- metrics-enabled: ${{ steps.config.outputs.metrics-enabled }}
30
- metrics-config-path: ${{ steps.config.outputs.metrics-config-path }}
31
- metrics-storage-branch: ${{ steps.config.outputs.metrics-storage-branch }}
32
- metrics-python-version: ${{ steps.config.outputs.metrics-python-version }}
33
- metrics-force-run: ${{ steps.config.outputs.metrics-force-run }}
34
- ruff-enabled: ${{ steps.config.outputs.ruff-enabled }}
35
- black-enabled: ${{ steps.config.outputs.black-enabled }}
36
- mypy-enabled: ${{ steps.config.outputs.mypy-enabled }}
37
- docs-enabled: ${{ steps.config.outputs.docs-enabled }}
38
- publish-enabled: ${{ steps.config.outputs.publish-enabled }}
39
- skip-ci-marker: ${{ steps.config.outputs.skip-ci-marker }}
40
- publish-marker: ${{ steps.config.outputs.publish-marker }}
41
-
42
- steps:
43
- - uses: actions/checkout@v6
44
-
45
- - name: Set up uv
46
- uses: astral-sh/setup-uv@v7
47
-
48
- - name: Set up Python
49
- run: uv python install 3.11
50
-
51
- - name: Read CI Config
52
- id: config
53
- uses: i2mint/wads/actions/read-ci-config@master
54
- with:
55
- pyproject-path: .
56
-
57
- # Second job: Validation using the config
58
- validation:
59
- name: Validation
60
- if: "!contains(github.event.head_commit.message, '[skip ci]')"
61
- needs: setup
62
- runs-on: ubuntu-latest
63
- strategy:
64
- matrix:
65
- python-version: ${{ fromJson(needs.setup.outputs.python-versions) }}
66
-
67
- steps:
68
- - uses: actions/checkout@v6
69
-
70
- - name: Set up uv
71
- uses: astral-sh/setup-uv@v7
72
- with:
73
- enable-cache: true
74
-
75
- - name: Set up Python ${{ matrix.python-version }}
76
- uses: i2mint/wads/actions/setup-python-uv@master
77
- with:
78
- python-version: ${{ matrix.python-version }}
79
-
80
- - name: Install System Dependencies
81
- uses: i2mint/wads/actions/install-system-deps@master
82
- with:
83
- pyproject-path: .
84
-
85
- - name: Install Dependencies
86
- uses: i2mint/wads/actions/install-deps-uv@master
87
-
88
- - name: Format Source Code
89
- if: needs.setup.outputs.ruff-enabled != 'false'
90
- run: uvx ruff format .
91
-
92
- - name: Format Source Code (black)
93
- if: needs.setup.outputs.black-enabled == 'true'
94
- run: uvx black .
95
-
96
- - name: Lint Validation
97
- if: needs.setup.outputs.ruff-enabled != 'false'
98
- run: uvx ruff check --output-format=github ${{ needs.setup.outputs.project-name }}
99
-
100
- - name: Type Check (mypy)
101
- if: needs.setup.outputs.mypy-enabled == 'true'
102
- run: uvx mypy ${{ needs.setup.outputs.project-name }}
103
-
104
- - name: Run Tests
105
- if: needs.setup.outputs.tests-enabled != 'false'
106
- uses: i2mint/wads/actions/run-tests-uv@master
107
- with:
108
- root-dir: ${{ needs.setup.outputs.project-name }}
109
- pytest-args: ${{ needs.setup.outputs.pytest-args }}
110
- exclude-paths: ${{ needs.setup.outputs.exclude-paths }}
111
- coverage: ${{ needs.setup.outputs.coverage-enabled }}
112
-
113
- - name: Track Code Metrics
114
- if: needs.setup.outputs.metrics-enabled == 'true'
115
- uses: i2mint/umpyre/actions/track-metrics@master
116
- continue-on-error: true
117
- with:
118
- github-token: ${{ secrets.GITHUB_TOKEN }}
119
- config-path: ${{ needs.setup.outputs.metrics-config-path }}
120
- storage-branch: ${{ needs.setup.outputs.metrics-storage-branch }}
121
- python-version: ${{ needs.setup.outputs.metrics-python-version }}
122
- force-run: ${{ needs.setup.outputs.metrics-force-run }}
123
-
124
- # Optional Windows testing (if enabled in config)
125
- windows-validation:
126
- name: Windows Tests
127
- if: "!contains(github.event.head_commit.message, '[skip ci]') && needs.setup.outputs.test-on-windows == 'true' && needs.setup.outputs.tests-enabled != 'false'"
128
- needs: setup
129
- runs-on: windows-latest
130
- continue-on-error: true
131
- env:
132
- # PEP 540 UTF-8 mode: avoid cp1252 UnicodeDecode/EncodeError when test
133
- # code reads source files or scripts print non-ASCII characters.
134
- PYTHONUTF8: "1"
135
- PYTHONIOENCODING: "utf-8"
136
-
137
- steps:
138
- - uses: actions/checkout@v6
139
-
140
- - name: Set up uv
141
- uses: astral-sh/setup-uv@v7
142
- with:
143
- enable-cache: true
144
-
145
- - name: Set up Python
146
- uses: i2mint/wads/actions/setup-python-uv@master
147
- with:
148
- python-version: ${{ fromJson(needs.setup.outputs.python-versions)[0] }}
149
-
150
- - name: Install System Dependencies
151
- uses: i2mint/wads/actions/install-system-deps@master
152
- with:
153
- pyproject-path: .
154
-
155
- - name: Install Dependencies
156
- uses: i2mint/wads/actions/install-deps-uv@master
157
-
158
- - name: Run Tests
159
- uses: i2mint/wads/actions/run-tests-uv@master
160
- with:
161
- root-dir: ${{ needs.setup.outputs.project-name }}
162
- pytest-args: ${{ needs.setup.outputs.pytest-args }}
163
- exclude-paths: ${{ needs.setup.outputs.exclude-paths }}
164
-
165
- # Publishing job
166
- #
167
- # Gated by [tool.wads.ci.publish] in pyproject.toml (read via the setup job):
168
- # - skip-ci-marker : when publishing is enabled, a commit message containing
169
- # this substring skips the publish job (default "[skip ci]").
170
- # - publish-enabled : whether publishing runs at all (default true).
171
- # - publish-marker : when publishing is disabled, a commit message containing
172
- # this substring forces the publish job (default "[publish]").
173
- # The publish-enabled check uses `== 'true'` (fail-closed): if an older wads
174
- # without these outputs is installed by read-ci-config, publishing is skipped
175
- # rather than run unintentionally.
176
- publish:
177
- name: Publish
178
- permissions:
179
- contents: write
180
- if: "!contains(github.event.head_commit.message, needs.setup.outputs.skip-ci-marker) && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && (needs.setup.outputs.publish-enabled == 'true' || contains(github.event.head_commit.message, needs.setup.outputs.publish-marker))"
181
- needs: [setup, validation]
182
- runs-on: ubuntu-latest
183
-
184
- steps:
185
- - uses: actions/checkout@v6
186
- with:
187
- fetch-depth: 0
188
- token: ${{ secrets.GITHUB_TOKEN }}
189
-
190
- - name: Set up uv
191
- uses: astral-sh/setup-uv@v7
192
-
193
- - name: Set up Python
194
- uses: i2mint/wads/actions/setup-python-uv@master
195
- with:
196
- python-version: ${{ fromJson(needs.setup.outputs.python-versions)[0] }}
197
- create-venv: "false"
198
-
199
- - name: Format Source Code
200
- if: needs.setup.outputs.ruff-enabled != 'false'
201
- run: uvx ruff format .
202
-
203
- - name: Format Source Code (black)
204
- if: needs.setup.outputs.black-enabled == 'true'
205
- run: uvx black .
206
-
207
- - name: Update Version Number
208
- id: version
209
- uses: i2mint/isee/actions/bump-version-number@master
210
-
211
- - name: Build Distribution
212
- uses: i2mint/wads/actions/build-dist-uv@master
213
- with:
214
- sdist: ${{ needs.setup.outputs.build-sdist }}
215
- wheel: ${{ needs.setup.outputs.build-wheel }}
216
-
217
- - name: Publish to PyPI
218
- uses: i2mint/wads/actions/pypi-publish-uv@master
219
- with:
220
- pypi-token: ${{ secrets.PYPI_PASSWORD }}
221
-
222
- - name: Force SSH for git remote
223
- run: git remote set-url origin git@github.com:${{ github.repository }}.git
224
-
225
- - name: Commit Changes
226
- uses: i2mint/wads/actions/git-commit@master
227
- with:
228
- commit-message: "**CI** Formatted code + Updated version to ${{ env.VERSION }} [skip ci]"
229
- ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
230
- push: true
231
-
232
- - name: Tag Repository
233
- uses: i2mint/wads/actions/git-tag@master
234
- with:
235
- tag: ${{ env.VERSION }}
236
- message: "Release version ${{ env.VERSION }}"
237
- push: true
238
-
239
- # Optional GitHub Pages (skipped when [tool.wads.ci.docs].enabled = false)
240
- # Depends on validation (not publish) so docs still publish when the publish
241
- # job is disabled via [tool.wads.ci.publish].enabled = false.
242
- github-pages:
243
- name: Publish GitHub Pages
244
- permissions:
245
- contents: write
246
- pages: write
247
- id-token: write
248
- if: "!contains(github.event.head_commit.message, '[skip ci]') && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && needs.setup.outputs.docs-enabled != 'false'"
249
- needs: [setup, validation]
250
- runs-on: ubuntu-latest
251
-
252
- steps:
253
- - uses: i2mint/epythet/actions/publish-github-pages@master
254
- with:
255
- github-token: ${{ secrets.GITHUB_TOKEN }}
256
- ignore: "tests/,scrap/,examples/"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes