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.
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.github/workflows/publish.yml +67 -34
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/CHANGELOG.md +8 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/PKG-INFO +1 -1
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/testsuite-result.json +346 -459
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/_version.py +3 -3
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/network.py +1 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/PKG-INFO +1 -1
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.github/workflows/test.yml +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.gitignore +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/.markdownlint.json +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/AUTHORS +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/CONTRIBUTING +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/LICENSE +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/README.md +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/Dockerfile +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/diff.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/docker-compose.yml +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/run_testsuite_and_record.sh +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/run_testsuite_and_record_V2.sh +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/ci/testsuite +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/data/mreg-cli.conf +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/__about__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/__main__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/abstracts.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/endpoints.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/errors.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/fields.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/history.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/api/models.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/cache.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/cli.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/base.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/cache.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/dhcp.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/group.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/help.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/a_aaaa.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/bacnet.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/cname.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/core.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/host_submodules/rr.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/label.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/logging.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/permission.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/policy.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/recording.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/registry.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/root.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/commands/zone.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/config.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/dirs.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/errorbuilder.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/exceptions.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/help_formatter.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/log.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/main.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/outputmanager.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/prompt.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/py.typed +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/tags.txt +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/tokenfile.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/types.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/api.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/fs.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/shared.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli/utilities/validators.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/SOURCES.txt +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/dependency_links.txt +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/entry_points.txt +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/requires.txt +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/mreg_cli.egg-info/top_level.txt +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/pyproject.toml +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/run.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/setup.cfg +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/api/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/api/test_fields.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/api/test_models.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/commands/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/commands/test_host.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/conftest.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_cache.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_config.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_errorbuilder.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_exceptions.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_outputmanager.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_prompt.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_tokenfile.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/test_types.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/utilities/__init__.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/utilities/test_api.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tests/utilities/test_fs.py +0 -0
- {mreg_cli-1.8.0 → mreg_cli-1.8.2}/tox.ini +0 -0
- {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
|
-
-
|
|
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-
|
|
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-
|
|
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
|
-
-
|
|
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.
|
|
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>
|