lockss-turtles 0.6.0.dev21__tar.gz → 0.6.0.dev23__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.
@@ -8,33 +8,82 @@ Release Notes
8
8
 
9
9
  Released: ?
10
10
 
11
+ * **Changes**
12
+
13
+ * The configuration directory for Turtles in ``$XDG_CONFIG_HOME`` (by default ``$HOME/.config`` which is typically ``/home/$USER/.config``), ``/usr/local/share``, and ``/etc`` is now called ``lockss-turtles`` instead of ``lockss.turtles``.
14
+
15
+ * Some long options have been renamed (the corresponding short options remain unchanged):
16
+
17
+ .. list-table::
18
+ :header-rows: 1
19
+
20
+ * * Short option
21
+ * Long option, version 0.5.0
22
+ * Long option, version 0.6.0
23
+ * * ``-i``
24
+ * ``--identifier``
25
+ * ``--plugin-identifier``
26
+ * * ``-I``
27
+ * ``--identifiers``
28
+ * ``--plugin-identifiers``
29
+ * * ``-j``
30
+ * ``--jar``
31
+ * ``--plugin-jar``
32
+ * * ``-J``
33
+ * ``--jars``
34
+ * ``--plugin-jars``
35
+ * * ``-l``
36
+ * ``--layer``
37
+ * ``--plugin-registry-layer``
38
+ * * ``-L``
39
+ * ``--layers``
40
+ * ``--plugin-registry-layers``
41
+ * * n/a
42
+ * ``--password``
43
+ * ``--plugin-signing-password``
44
+
45
+ * Some short options have been renamed (the corresponding long options remain unchanged):
46
+
47
+ .. list-table::
48
+ :header-rows: 1
49
+
50
+ * * Long option
51
+ * Short option, version 0.5.0
52
+ * Short option, version 0.6.0
53
+ * * ``--plugin-registry-catalog``
54
+ * ``-r``
55
+ * ``-R``
56
+ * * ``--plugin-set-catalog``
57
+ * ``-s``
58
+ * ``-S``
59
+
60
+ * Bare arguments are no longer allowed and treated as plugin identifiers or plugin JARs; all plugin identifiers must be specified via ``--plugin-identifier/-i`` or ``--plugin-identifiers/-I`` options and all plugin JARS via ``--plugin-jar/-j`` or ``--plugin-jars/-J`` options.
61
+
62
+ * The ``usage`` command has been removed.
63
+
11
64
  * **Features**
12
65
 
13
- * Now using type hinting throughout.
66
+ * New options have been added:
14
67
 
15
- * Now using *lockss-pybasic* and *pydantic-argparse* internally.
68
+ .. list-table::
69
+ :header-rows: 1
16
70
 
17
- * **Changes**
71
+ * * Long option
72
+ * Short option
73
+ * * ``--plugin-registry``
74
+ * ``-r``
75
+ * * ``--plugin-set``
76
+ * ``-s``
18
77
 
19
- * The configuration directory for Turtles in ``$XDG_CONFIG_HOME`` (by default ``$HOME/.config``), ``/usr/local/share``, and ``/etc`` is now called ``lockss-turtles`` instead of ``lockss.turtles``.
78
+ * Options that read YAML files no longer expect each file to contain a single YAML configuration object, which must be of the kind they target; they now read all YAML configuration objects in each file, loading all the ones with the right kind and ignoring all the others with the other kinds. This applies to existing options ``--plugin-registry-catalog``/``-R`` and ``--plugin-set-catalog``/``-S``, and new options ``--plugin-registry``/``-r`` and ``--plugin-set``/``-s``.
20
79
 
21
- * Some long options have been renamed (the short options remain unchanged):
80
+ * Now using Pydantic for configuration objects instead of maintaining JSON Schema instances.
22
81
 
23
- ============ ================= =============
24
- Short option Version 0.5.0 Version 0.6.0
25
- ============ ================= =============
26
- ``-i`` ``--identifier`` ``--plugin-identifier``
27
- ``-I`` ``--identifiers`` ``--plugin-identifiers``
28
- ``-j`` ``--jar`` ``--plugin-jar``
29
- ``-J`` ``--jars`` ``--plugin-jars``
30
- ``-l`` ``--layer`` ``--plugin-registry-layer``
31
- ``-L`` ``--layers`` ``--plugin-registry-layers``
32
- n/a ``--password`` ``--plugin-signing-password``
33
- ============ ================= =============
82
+ * Now using type hinting throughout.
34
83
 
35
- * Bare arguments are no longer allowed and treated as plugin identifiers or plugin JARs; all plugin identifiers must be specified via ``--plugin-identifier/-i`` or ``--plugin-identifiers/-I`` options and all plugin JARS via ``--plugin-jar/-j`` or ``--plugin-jars/-J`` options.
84
+ * Now using *lockss-pybasic* and *pydantic-argparse* internally.
36
85
 
37
- * The ``usage`` command has been removed.
86
+ * `Turtles documentation <https://docs.lockss.org/en/latest/software/turtles>`_ is now on the `LOCKSS Documentation Portal <https://docs.lockss.org/>`_.
38
87
 
39
88
  -----
40
89
  0.5.0
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.3
2
+ Name: lockss-turtles
3
+ Version: 0.6.0.dev23
4
+ Summary: Library and command line tool to manage LOCKSS plugin sets and LOCKSS plugin registries
5
+ License: BSD-3-Clause
6
+ Author: Thib Guicherd-Callin
7
+ Author-email: thib@cs.stanford.edu
8
+ Maintainer: Thib Guicherd-Callin
9
+ Maintainer-email: thib@cs.stanford.edu
10
+ Requires-Python: >=3.9,<4.0
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Environment :: Console
13
+ Classifier: Framework :: Pydantic :: 2
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: System Administrators
16
+ Classifier: License :: OSI Approved :: BSD License
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Topic :: Software Development :: Libraries
19
+ Classifier: Topic :: System :: Archiving
20
+ Classifier: Topic :: Utilities
21
+ Requires-Dist: exceptiongroup (>=1.3.0,<1.4.0)
22
+ Requires-Dist: java-manifest (>=1.1.0,<1.2.0)
23
+ Requires-Dist: lockss-pybasic (>=0.1.0,<0.2.0)
24
+ Requires-Dist: pydantic (>=2.11.0,<2.12.0)
25
+ Requires-Dist: pyyaml (>=6.0.0,<6.1.0)
26
+ Requires-Dist: xdg (>=6.0.0,<6.1.0)
27
+ Project-URL: Documentation, https://docs.lockss.org/en/latest/software/turtles
28
+ Project-URL: Repository, https://github.com/lockss/lockss-turtles
29
+ Project-URL: changelog, https://github.com/lockss/lockss-turtles/blob/main/CHANGELOG.rst
30
+ Project-URL: issues, https://github.com/lockss/lockss-turtles/issues
31
+ Description-Content-Type: text/x-rst
32
+
33
+ =======
34
+ Turtles
35
+ =======
36
+
37
+ .. |RELEASE| replace:: 0.6.0-dev23 NOT YET RELEASED
38
+ .. |RELEASE_DATE| replace:: NOT YET RELEASED
39
+ .. |TURTLES| replace:: **Turtles**
40
+
41
+ .. image:: https://assets.lockss.org/images/logos/turtles/turtles_128x128.png
42
+ :alt: Turtles logo
43
+ :align: right
44
+
45
+ |TURTLES| is a command line tool and Python library to manage LOCKSS plugin sets and LOCKSS plugin registries.
46
+
47
+ :Latest release: |RELEASE| (|RELEASE_DATE|)
48
+ :Documentation: https://docs.lockss.org/en/latest/software/turtles
49
+ :Release notes: `CHANGELOG.rst <https://github.com/lockss/lockss-turtles/blob/main/CHANGELOG.rst>`_
50
+ :License: `LICENSE <https://github.com/lockss/lockss-turtles/blob/main/LICENSE>`_
51
+ :Repository: https://github.com/lockss/lockss-turtles
52
+ :Issues: https://github.com/lockss/lockss-turtles/issues
53
+
54
+ ----
55
+
56
+ Quick Start::
57
+
58
+ # Install with pipx
59
+ pipx install lockss-turtles
60
+
61
+ # Verify installation and discover all the commands
62
+ turtles --help
63
+
64
+
@@ -0,0 +1,31 @@
1
+ =======
2
+ Turtles
3
+ =======
4
+
5
+ .. |RELEASE| replace:: 0.6.0-dev23 NOT YET RELEASED
6
+ .. |RELEASE_DATE| replace:: NOT YET RELEASED
7
+ .. |TURTLES| replace:: **Turtles**
8
+
9
+ .. image:: https://assets.lockss.org/images/logos/turtles/turtles_128x128.png
10
+ :alt: Turtles logo
11
+ :align: right
12
+
13
+ |TURTLES| is a command line tool and Python library to manage LOCKSS plugin sets and LOCKSS plugin registries.
14
+
15
+ :Latest release: |RELEASE| (|RELEASE_DATE|)
16
+ :Documentation: https://docs.lockss.org/en/latest/software/turtles
17
+ :Release notes: `CHANGELOG.rst <https://github.com/lockss/lockss-turtles/blob/main/CHANGELOG.rst>`_
18
+ :License: `LICENSE <https://github.com/lockss/lockss-turtles/blob/main/LICENSE>`_
19
+ :Repository: https://github.com/lockss/lockss-turtles
20
+ :Issues: https://github.com/lockss/lockss-turtles/issues
21
+
22
+ ----
23
+
24
+ Quick Start::
25
+
26
+ # Install with pipx
27
+ pipx install lockss-turtles
28
+
29
+ # Verify installation and discover all the commands
30
+ turtles --help
31
+
@@ -28,7 +28,7 @@
28
28
 
29
29
  [project]
30
30
  name = "lockss-turtles"
31
- version = "0.6.0-dev21" # Always change in __init__.py, and at release time in README.rst and CHANGELOG.rst
31
+ version = "0.6.0-dev23" # Always change in __init__.py, and at release time in README.rst and CHANGELOG.rst
32
32
  description = "Library and command line tool to manage LOCKSS plugin sets and LOCKSS plugin registries"
33
33
  license = { text = "BSD-3-Clause" }
34
34
  readme = "README.rst"
@@ -6,7 +6,7 @@ registries.
6
6
  """
7
7
 
8
8
  #: This package's version.
9
- __version__ = '0.6.0-dev21'
9
+ __version__ = '0.6.0-dev23'
10
10
 
11
11
  #: This package's copyright.
12
12
  __copyright__ = '''
@@ -144,22 +144,18 @@ class PluginJarOptions(BaseModel):
144
144
 
145
145
 
146
146
  class NonInteractiveOptions(BaseModel):
147
- non_interactive: Optional[bool] = Field(False, description='(plugin signing credentials) disallow interactive prompts')
147
+ non_interactive: Optional[bool] = Field(False,
148
+ description='(plugin signing credentials) disallow interactive prompts')
148
149
 
149
150
 
150
- class BuildPluginCommand(OutputFormatOptions, NonInteractiveOptions, PluginBuildingOptions, PluginIdentifierOptions):
151
- pass
152
-
153
-
154
- class DeployPluginCommand(OutputFormatOptions, NonInteractiveOptions, PluginDeploymentOptions, PluginJarOptions):
155
- pass
151
+ class TurtlesCommand(BaseModel):
156
152
 
153
+ class BuildPluginCommand(OutputFormatOptions, NonInteractiveOptions, PluginBuildingOptions, PluginIdentifierOptions): pass
157
154
 
158
- class ReleasePluginCommand(OutputFormatOptions, NonInteractiveOptions, PluginDeploymentOptions, PluginBuildingOptions, PluginIdentifierOptions):
159
- pass
155
+ class DeployPluginCommand(OutputFormatOptions, NonInteractiveOptions, PluginDeploymentOptions, PluginJarOptions): pass
160
156
 
157
+ class ReleasePluginCommand(OutputFormatOptions, NonInteractiveOptions, PluginDeploymentOptions, PluginBuildingOptions, PluginIdentifierOptions): pass
161
158
 
162
- class TurtlesCommand(BaseModel):
163
159
  bp: Optional[BuildPluginCommand] = Field(description='synonym for: build-plugin')
164
160
  build_plugin: Optional[BuildPluginCommand] = Field(description='build plugins', alias='build-plugin')
165
161
  copyright: Optional[StringCommand.type(__copyright__)] = Field(description=COPYRIGHT_DESCRIPTION)
@@ -237,10 +233,10 @@ class TurtlesCli(BaseCli[TurtlesCommand]):
237
233
  # if len(result) > 0:
238
234
  # self._tabulate(title, result, headers)
239
235
 
240
- def _bp(self, build_plugin_command: BuildPluginCommand) -> None:
236
+ def _bp(self, build_plugin_command: TurtlesCommand.BuildPluginCommand) -> None:
241
237
  return self._build_plugin(build_plugin_command)
242
238
 
243
- def _build_plugin(self, build_plugin_command: BuildPluginCommand) -> None:
239
+ def _build_plugin(self, build_plugin_command: TurtlesCommand.BuildPluginCommand) -> None:
244
240
  errs = []
245
241
  for psc in build_plugin_command.get_plugin_set_catalogs():
246
242
  try:
@@ -276,7 +272,7 @@ class TurtlesCli(BaseCli[TurtlesCommand]):
276
272
  def _copyright(self, string_command: StringCommand) -> None:
277
273
  self._do_string_command(string_command)
278
274
 
279
- def _deploy_plugin(self, deploy_plugin_command: DeployPluginCommand) -> None:
275
+ def _deploy_plugin(self, deploy_plugin_command: TurtlesCommand.DeployPluginCommand) -> None:
280
276
  errs = []
281
277
  for prc in deploy_plugin_command.get_plugin_registry_catalogs():
282
278
  try:
@@ -307,7 +303,7 @@ class TurtlesCli(BaseCli[TurtlesCommand]):
307
303
  def _do_string_command(self, string_command: StringCommand) -> None:
308
304
  string_command()
309
305
 
310
- def _dp(self, deploy_plugin_command: DeployPluginCommand) -> None:
306
+ def _dp(self, deploy_plugin_command: TurtlesCommand.DeployPluginCommand) -> None:
311
307
  return self._deploy_plugin(deploy_plugin_command)
312
308
 
313
309
  def _license(self, string_command: StringCommand) -> None:
@@ -322,7 +318,7 @@ class TurtlesCli(BaseCli[TurtlesCommand]):
322
318
  self._parser.error('no plugin signing password specified while in non-interactive mode')
323
319
  self._app.set_password(lambda: _p)
324
320
 
325
- def _release_plugin(self, release_plugin_command: ReleasePluginCommand) -> None:
321
+ def _release_plugin(self, release_plugin_command: TurtlesCommand.ReleasePluginCommand) -> None:
326
322
  errs = []
327
323
  for psc in release_plugin_command.get_plugin_set_catalogs():
328
324
  try:
@@ -371,7 +367,7 @@ class TurtlesCli(BaseCli[TurtlesCommand]):
371
367
  headers=['Plugin identifier', 'Plugin version', 'Plugin registry', 'Plugin registry layer', 'Deployed JAR'],
372
368
  tablefmt=release_plugin_command.output_format))
373
369
 
374
- def _rp(self, release_plugin_command: ReleasePluginCommand) -> None:
370
+ def _rp(self, release_plugin_command: TurtlesCommand.ReleasePluginCommand) -> None:
375
371
  self._release_plugin(release_plugin_command)
376
372
 
377
373
  def _version(self, string_command: StringCommand) -> None: