mreg-cli 1.8.0__tar.gz → 1.8.2__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 (100) hide show
  1. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.github/workflows/publish.yml +67 -34
  2. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/CHANGELOG.md +8 -0
  3. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/PKG-INFO +1 -1
  4. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/testsuite-result.json +346 -459
  5. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/_version.py +3 -3
  6. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/network.py +1 -0
  7. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/PKG-INFO +1 -1
  8. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.github/workflows/test.yml +0 -0
  9. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.gitignore +0 -0
  10. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.markdownlint.json +0 -0
  11. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/AUTHORS +0 -0
  12. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/CONTRIBUTING +0 -0
  13. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/LICENSE +0 -0
  14. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/README.md +0 -0
  15. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/Dockerfile +0 -0
  16. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/diff.py +0 -0
  17. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/docker-compose.yml +0 -0
  18. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/run_testsuite_and_record.sh +0 -0
  19. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/run_testsuite_and_record_V2.sh +0 -0
  20. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/testsuite +0 -0
  21. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/data/mreg-cli.conf +0 -0
  22. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/__about__.py +0 -0
  23. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/__init__.py +0 -0
  24. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/__main__.py +0 -0
  25. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/__init__.py +0 -0
  26. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/abstracts.py +0 -0
  27. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/endpoints.py +0 -0
  28. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/errors.py +0 -0
  29. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/fields.py +0 -0
  30. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/history.py +0 -0
  31. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/models.py +0 -0
  32. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/cache.py +0 -0
  33. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/cli.py +0 -0
  34. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/__init__.py +0 -0
  35. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/base.py +0 -0
  36. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/cache.py +0 -0
  37. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/dhcp.py +0 -0
  38. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/group.py +0 -0
  39. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/help.py +0 -0
  40. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host.py +0 -0
  41. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/__init__.py +0 -0
  42. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/a_aaaa.py +0 -0
  43. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/bacnet.py +0 -0
  44. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/cname.py +0 -0
  45. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/core.py +0 -0
  46. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/rr.py +0 -0
  47. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/label.py +0 -0
  48. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/logging.py +0 -0
  49. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/permission.py +0 -0
  50. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/policy.py +0 -0
  51. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/recording.py +0 -0
  52. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/registry.py +0 -0
  53. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/root.py +0 -0
  54. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/zone.py +0 -0
  55. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/config.py +0 -0
  56. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/dirs.py +0 -0
  57. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/errorbuilder.py +0 -0
  58. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/exceptions.py +0 -0
  59. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/help_formatter.py +0 -0
  60. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/log.py +0 -0
  61. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/main.py +0 -0
  62. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/outputmanager.py +0 -0
  63. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/prompt.py +0 -0
  64. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/py.typed +0 -0
  65. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/tags.txt +0 -0
  66. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/tokenfile.py +0 -0
  67. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/types.py +0 -0
  68. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/__init__.py +0 -0
  69. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/api.py +0 -0
  70. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/fs.py +0 -0
  71. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/shared.py +0 -0
  72. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/validators.py +0 -0
  73. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/SOURCES.txt +0 -0
  74. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/dependency_links.txt +0 -0
  75. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/entry_points.txt +0 -0
  76. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/requires.txt +0 -0
  77. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/top_level.txt +0 -0
  78. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/pyproject.toml +0 -0
  79. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/run.py +0 -0
  80. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/setup.cfg +0 -0
  81. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/__init__.py +0 -0
  82. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/api/__init__.py +0 -0
  83. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/api/test_fields.py +0 -0
  84. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/api/test_models.py +0 -0
  85. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/commands/__init__.py +0 -0
  86. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/commands/test_host.py +0 -0
  87. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/conftest.py +0 -0
  88. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_cache.py +0 -0
  89. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_config.py +0 -0
  90. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_errorbuilder.py +0 -0
  91. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_exceptions.py +0 -0
  92. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_outputmanager.py +0 -0
  93. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_prompt.py +0 -0
  94. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_tokenfile.py +0 -0
  95. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_types.py +0 -0
  96. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/utilities/__init__.py +0 -0
  97. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/utilities/test_api.py +0 -0
  98. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/utilities/test_fs.py +0 -0
  99. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tox.ini +0 -0
  100. {mreg_cli-1.8.0 → mreg_cli-1.8.2}/uv.lock +0 -0
@@ -3,7 +3,7 @@ name: build mreg-cli
3
3
  on:
4
4
  push:
5
5
  tags:
6
- - '[0-9]+.[0-9]+.[0-9]+*'
6
+ - "[0-9]+.[0-9]+.[0-9]+*"
7
7
 
8
8
  concurrency:
9
9
  group: build-mreg-cli-${{ github.head_ref }}
@@ -18,12 +18,12 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - uses: actions/checkout@v4
21
-
21
+
22
22
  # https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#determining-when-to-use-contexts
23
23
  - name: Exit if not on master branch
24
24
  if: ${{ github.ref == 'refs/heads/master' }}
25
25
  run: exit -1
26
-
26
+
27
27
  - name: Install uv
28
28
  uses: astral-sh/setup-uv@v2
29
29
 
@@ -49,7 +49,7 @@ jobs:
49
49
  os:
50
50
  - ubuntu-latest
51
51
  - windows-latest
52
- - macos-13 # only non-large x86 macOS runner image available
52
+ - macos-15-intel # only non-large x86 macOS runner image available
53
53
  - macos-latest
54
54
  include:
55
55
  - os: ubuntu-latest
@@ -57,12 +57,12 @@ jobs:
57
57
  container: redhat/ubi8:latest
58
58
  - os: windows-latest
59
59
  platform: win-x86_64
60
- - os: macos-13
60
+ - os: macos-15-intel
61
61
  platform: macos-x86_64
62
62
  - os: macos-latest
63
63
  platform: macos-arm64
64
64
  python-version:
65
- - '3.12'
65
+ - "3.12"
66
66
  runs-on: ${{ matrix.os }}
67
67
  container: ${{ matrix.container }}
68
68
 
@@ -73,12 +73,12 @@ jobs:
73
73
 
74
74
  - name: Ensure git is available
75
75
  run: git --version
76
-
76
+
77
77
  - uses: actions/checkout@v4
78
-
78
+
79
79
  - name: Install uv
80
80
  uses: astral-sh/setup-uv@v2
81
-
81
+
82
82
  - name: Set up Python ${{ matrix.python-version }}
83
83
  run: uv python install ${{ matrix.python-version }}
84
84
 
@@ -87,7 +87,7 @@ jobs:
87
87
 
88
88
  - name: Run PyInstaller with Tox
89
89
  run: uv run tox
90
-
90
+
91
91
  - name: Set platform binary names
92
92
  shell: bash
93
93
  run: |
@@ -104,34 +104,18 @@ jobs:
104
104
  - name: Rename binary
105
105
  shell: bash
106
106
  run: mv "${{ env.SOURCE_NAME }}" "dist/${{ env.BINARY_NAME }}"
107
-
107
+
108
108
  - uses: actions/upload-artifact@v4
109
109
  with:
110
110
  name: ${{ env.BINARY_NAME }}
111
111
  path: dist/${{ env.BINARY_NAME }}
112
112
  if-no-files-found: error
113
-
114
- publish_pypi:
115
- name: Publish PyPI release
116
- needs:
117
- - build_pypi
118
- runs-on: ubuntu-latest
119
- permissions:
120
- id-token: write
121
- steps:
122
- - uses: actions/download-artifact@v4
123
- with:
124
- name: pypi_artifacts
125
- path: dist
126
113
 
127
- - name: Push build artifacts to PyPI
128
- uses: pypa/gh-action-pypi-publish@release/v1
129
-
130
114
  publish_github:
131
115
  name: Publish GitHub release
132
116
  needs:
117
+ - build_pypi
133
118
  - build_pyinstaller
134
- - publish_pypi
135
119
  runs-on: ubuntu-latest
136
120
 
137
121
  steps:
@@ -141,7 +125,7 @@ jobs:
141
125
  pattern: mreg-cli-*
142
126
  path: dist
143
127
  merge-multiple: true
144
-
128
+
145
129
  - name: Download wheel and source distributions
146
130
  uses: actions/download-artifact@v4
147
131
  with:
@@ -163,16 +147,16 @@ jobs:
163
147
  files: dist/*
164
148
  body: |
165
149
  Release ${{ github.ref_name }}
166
-
150
+
167
151
  ## Binary Downloads
168
-
152
+
169
153
  Platform | Architecture | Download
170
154
  ---------|--------------|----------
171
155
  Linux | x86_64 | [mreg-cli-${{ github.ref_name }}-linux-x86_64](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/mreg-cli-${{ github.ref_name }}-linux-x86_64)
172
156
  Windows | x86_64 | [mreg-cli-${{ github.ref_name }}-win-x86_64.exe](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/mreg-cli-${{ github.ref_name }}-win-x86_64.exe)
173
157
  macOS | x86_64 | [mreg-cli-${{ github.ref_name }}-macos-x86_64](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/mreg-cli-${{ github.ref_name }}-macos-x86_64)
174
158
  macOS | ARM64 | [mreg-cli-${{ github.ref_name }}-macos-arm64](https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/mreg-cli-${{ github.ref_name }}-macos-arm64)
175
-
159
+
176
160
  ## PyPI Package
177
161
 
178
162
  ### uv
@@ -192,10 +176,59 @@ jobs:
192
176
  ```bash
193
177
  pip install mreg-cli==${{ github.ref_name }}
194
178
  ```
195
-
179
+
196
180
  ## SHA256 Checksums
197
181
  ```
198
182
  ${{ steps.sha.outputs.checksums }}
199
183
  ```
200
184
  draft: false
201
- prerelease: false
185
+ prerelease: false
186
+
187
+ # GitHub releases can be republished, but PyPI uploads are permanent.
188
+ # Ensure all steps succeed before publishing to PyPI.
189
+ publish_pypi:
190
+ name: Publish PyPI release
191
+ needs:
192
+ - build_pypi # redundant but explicit
193
+ - publish_github
194
+ runs-on: ubuntu-latest
195
+ permissions:
196
+ id-token: write
197
+ steps:
198
+ - uses: actions/download-artifact@v4
199
+ with:
200
+ name: pypi_artifacts
201
+ path: dist
202
+
203
+ - name: Push build artifacts to PyPI
204
+ uses: pypa/gh-action-pypi-publish@release/v1
205
+
206
+ rollback_on_failure:
207
+ name: Rollback on publish failure
208
+ if: ${{ always() && (needs.publish_github.result == 'failure' || needs.publish_pypi.result == 'failure') }}
209
+ needs:
210
+ - publish_github
211
+ - publish_pypi
212
+ runs-on: ubuntu-latest
213
+ permissions:
214
+ contents: write
215
+ steps:
216
+ - name: Checkout repository
217
+ uses: actions/checkout@v4
218
+ with:
219
+ fetch-depth: 0
220
+ - name: Rollback GitHub release and tag
221
+ if: ${{ needs.publish_github.result == 'success' }}
222
+ env:
223
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
224
+ run: |
225
+ echo "Deleting GitHub release..."
226
+ gh release delete ${{ github.ref_name }} --repo ${{ github.repository }} --yes || true
227
+
228
+ echo "Deleting git tag..."
229
+ git push --delete origin "refs/tags/${{ github.ref_name }}" || true
230
+ - name: Rollback notification
231
+ run: |
232
+ echo "::notice::Rolling back release ${{ github.ref_name }} due to publish failure"
233
+ echo "GitHub release status: ${{ needs.publish_github.result }}"
234
+ echo "PyPI publish status: ${{ needs.publish_pypi.result }}"
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- ## Unreleased -->
9
9
 
10
+ ## [1.8.2](https://github.com/unioslo/mreg-cli/releases/tag/1.8.2) - 2026-01-06
11
+
12
+ <!-- NOTE: 1.8.1 skipped in changelog due to Github release issues that required creating a separate 1.8.1 release for PyPI. -->
13
+
14
+ ### Fixed
15
+
16
+ - `network policy_attribute_delete` command not actually deleting the attribute.
17
+
10
18
  ## [1.8.0](https://github.com/unioslo/mreg-cli/releases/tag/1.8.0) - 2025-12-09
11
19
 
12
20
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mreg-cli
3
- Version: 1.8.0
3
+ Version: 1.8.2
4
4
  Summary: MREG interactive command line client
5
5
  Author: Others (see AUTHORS)
6
6
  Author-email: Øyvind Kolbu <oyvind.kolbu@usit.uio.no>, Safet A <amedov@usit.uio.no>, Magnus Hirth <mhmorgan42@gmail.com>, Nico <nicolaydmohebi@gmail.com>, Marius Bakke <marius.bakke@usit.uio.no>, Fredrik Larsen <fredrik.larsen@usit.uio.no>, Paal Braathen <paal.braathen@usit.uio.no>, Nils Hiorth <nils@nls.me>, Dmytro Karpenko <dmytrok@usit.uio.no>