lockss-turtles 0.6.0.dev22__py3-none-any.whl → 0.6.0.dev23__py3-none-any.whl

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.
@@ -6,7 +6,7 @@ registries.
6
6
  """
7
7
 
8
8
  #: This package's version.
9
- __version__ = '0.6.0-dev22'
9
+ __version__ = '0.6.0-dev23'
10
10
 
11
11
  #: This package's copyright.
12
12
  __copyright__ = '''
lockss/turtles/util.py CHANGED
@@ -94,8 +94,8 @@ class BaseModelWithRoot(BaseModel):
94
94
 
95
95
  def file_or(paths: Iterable[Path]) -> str:
96
96
  """
97
- Turns an iterable of file paths and returns them as a ``" or "``-separated
98
- string.
97
+ Turns an iterable of file paths into a ``" or "``-separated string suitable
98
+ for CLI messages.
99
99
 
100
100
  :param paths: A non-null list of file paths.
101
101
  :type paths: Iterable[Path]
@@ -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
+
@@ -1,15 +1,15 @@
1
- lockss/turtles/__init__.py,sha256=v-2mPurnlbDsfTo_37mD7fnqclC3pS8DScu46ZawpcQ,1827
1
+ lockss/turtles/__init__.py,sha256=CGvFmTetQ2oxhv8QBRmaxHHIYykPeLnVW_tY_uYuLZM,1827
2
2
  lockss/turtles/__main__.py,sha256=BqRTG3dejCgLh87UJ1Os9DD9unxnQkOdUQM6eqWS3Sg,1680
3
3
  lockss/turtles/app.py,sha256=Rxbsq10A830D1r99a5tqLVYWM3bJZ2Org-JKjXD-2Mk,16689
4
4
  lockss/turtles/cli.py,sha256=Pgd0GSThxDfnPWKwwujo6ZocfKePoe-aiHJ9qYpm9BQ,21019
5
5
  lockss/turtles/plugin.py,sha256=HT01Er9-odvJ4lF8DNC7TV4uxSqTw44UBe02Jgj5xMs,11065
6
6
  lockss/turtles/plugin_registry.py,sha256=UlB9faNH8fEh9mfdj6byMcRcZ7axi0DzUP2qdyj9ANk,26935
7
7
  lockss/turtles/plugin_set.py,sha256=PuzSWl2k7ikbkKtxStQRJhcXi1JXuSBl9jXz4dzp7Ts,24550
8
- lockss/turtles/util.py,sha256=kETdjOSDaECs2xSm6ah8UoPVuoo42eFUJEEJn5wqYXE,3647
8
+ lockss/turtles/util.py,sha256=P-f-Uc4hdrjvaKnyVozwCO8oVpUWJ_YXaxeFDBxwHWM,3658
9
9
  unittest/lockss/turtles/__init__.py,sha256=hrgWx4GaP-hhPBuRlbLndJnOQmZicKCLaP-dQTCu1sQ,3162
10
10
  unittest/lockss/turtles/test_plugin_set.py,sha256=q6JmooDR-wijAQ8x9DWKTNB6Of4EOr3Dgq8oaX0LTpQ,4179
11
- lockss_turtles-0.6.0.dev22.dist-info/LICENSE,sha256=O9ONND4uDxY_jucI4jZDf2liAk05ScEJaYu-Al7EOdQ,1506
12
- lockss_turtles-0.6.0.dev22.dist-info/METADATA,sha256=jgCvdNmmsDAzEDTGldk4MfLGRlq8tHfhvh-Bpilr4JQ,39692
13
- lockss_turtles-0.6.0.dev22.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
14
- lockss_turtles-0.6.0.dev22.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
15
- lockss_turtles-0.6.0.dev22.dist-info/RECORD,,
11
+ lockss_turtles-0.6.0.dev23.dist-info/LICENSE,sha256=O9ONND4uDxY_jucI4jZDf2liAk05ScEJaYu-Al7EOdQ,1506
12
+ lockss_turtles-0.6.0.dev23.dist-info/METADATA,sha256=CMKqim7LeSLMcBgsHv0OOXOu5lugE0kruj5dAftVke4,2340
13
+ lockss_turtles-0.6.0.dev23.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
14
+ lockss_turtles-0.6.0.dev23.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
15
+ lockss_turtles-0.6.0.dev23.dist-info/RECORD,,
@@ -1,1042 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: lockss-turtles
3
- Version: 0.6.0.dev22
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-dev22
38
- .. |RELEASE_DATE| replace:: ?
39
-
40
- .. |HELP| replace:: ``--help/-h``
41
- .. |IDENTIFIER| replace:: ``--identifier/-i``
42
- .. |IDENTIFIERS| replace:: ``--identifiers/-I``
43
- .. |JAR| replace:: ``--jar/-j``
44
- .. |JARS| replace:: ``--jars/-J``
45
- .. |LAYER| replace:: ``--layer/-l``
46
- .. |LAYERS| replace:: ``--layers/-L``
47
- .. |PLUGIN_REGISTRY_CATALOG| replace:: ``--plugin-registry-catalog/-r``
48
- .. |PLUGIN_SET_CATALOG| replace:: ``--plugin-set-catalog/-s``
49
- .. |PLUGIN_SIGNING_CREDENTIALS| replace:: ``--plugin-signing-credentials/-c``
50
- .. |PRODUCTION| replace:: ``--production/-p``
51
- .. |TESTING| replace:: ``--testing/-t``
52
-
53
- .. image:: https://assets.lockss.org/images/logos/turtles/turtles_128x128.png
54
- :alt: Turtles logo
55
- :align: right
56
-
57
- Turtles is a command line tool and Python library to manage LOCKSS plugin sets and LOCKSS plugin registries.
58
-
59
- **Latest release:** |RELEASE| (|RELEASE_DATE|)
60
-
61
- -----------------
62
- Table of Contents
63
- -----------------
64
-
65
- * `Installation`_
66
-
67
- * `Prerequisites`_
68
-
69
- * `pip`_
70
-
71
- * `Overview`_
72
-
73
- * `Building Plugins`_
74
-
75
- * `Deploying Plugins`_
76
-
77
- * `Configuration Files`_
78
-
79
- * `Plugin Set Catalog`_
80
-
81
- * `Plugin Sets`_
82
-
83
- * `Plugin Set Builders`_
84
-
85
- * `Maven Plugin Set Builder`_
86
-
87
- * `Maven Plugin Set Builder Prerequisites`_
88
-
89
- * `Maven Plugin Set Builder Declaration`_
90
-
91
- * `Ant Plugin Set Builder`_
92
-
93
- * `Ant Plugin Set Builder Prerequisites`_
94
-
95
- * `Ant Plugin Set Builder Declaration`_
96
-
97
- * `Plugin Registry Catalog`_
98
-
99
- * `Plugin Registries`_
100
-
101
- * `Plugin Registry Layouts`_
102
-
103
- * `Directory Plugin Registry Layout`_
104
-
105
- * `Directory Plugin Registry Layout Prerequisites`_
106
-
107
- * `Directory Plugin Registry Layout Declaration`_
108
-
109
- * `RCS Plugin Registry Layout`_
110
-
111
- * `RCS Plugin Registry Layout Prerequisites`_
112
-
113
- * `RCS Plugin Registry Layout Declaration`_
114
-
115
- * `Plugin Registry Layers`_
116
-
117
- * `Plugin Signing Credentials`_
118
-
119
- * `Command Line Tool`_
120
-
121
- * `Synopsis`_
122
-
123
- * `Commands`_
124
-
125
- * `Top-Level Program`_
126
-
127
- * `build-plugin`_
128
-
129
- * `copyright`_
130
-
131
- * `deploy-plugin`_
132
-
133
- * `license`_
134
-
135
- * `release-plugin`_
136
-
137
- * `usage`_
138
-
139
- * `version`_
140
-
141
- * `Options`_
142
-
143
- * `Plugin Identifier Arguments and Options`_
144
-
145
- * `Plugin Registry Layer Options`_
146
-
147
- * `Output Format Control`_
148
-
149
- ------------
150
- Installation
151
- ------------
152
-
153
- Turtles is available from the `Python Package Index <https://pypi.org/>`_ (PyPI) as ``lockss-turtles`` (https://pypi.org/project/lockss-turtles), and can be installed with `pip`_.
154
-
155
- The installation process adds a ``turtles`` `Command Line Tool`_. You can check at the command line that the installation is functional by running ``turtles version`` or ``turtles --help``.
156
-
157
- Prerequisites
158
- =============
159
-
160
- * `Python <https://www.python.org/>`_ 3.7 or greater.
161
-
162
- * Additional prerequisites depending on the types of `Plugin Set Builders`_ or `Plugin Registry Layouts`_ in use (see their respective requirements).
163
-
164
- Prerequisites for development work only:
165
-
166
- * `Poetry <https://python-poetry.org/>`_ 1.4 or greater.
167
-
168
- .. _pip:
169
-
170
- ``pip``
171
- =======
172
-
173
- You can install Turtles with ``pip``.
174
-
175
- To install it in your own non-root, non-virtual environment, use the ``--user`` option::
176
-
177
- pip3 install --user lockss-turtles
178
-
179
- To install it in a virtual environment, simply use::
180
-
181
- pip3 install lockss-turtles
182
-
183
- .. danger::
184
-
185
- Do not run ``pip3``/``pip`` as ``root``, with ``sudo`` or otherwise.
186
-
187
- --------
188
- Overview
189
- --------
190
-
191
- Building Plugins
192
- ================
193
-
194
- You can use Turtles to build (package and sign) LOCKSS plugins from one or more LOCKSS plugin sets (codebases containing plugins).
195
-
196
- You will need to define one or more `Plugin Sets`_, list them in a `Plugin Set Catalog`_, and declare your `Plugin Signing Credentials`_.
197
-
198
- You then use the `build-plugin`_ command to build plugins, or the `release-plugin`_ command to build and deploy plugins (equivalent of `build-plugin`_ followed by `deploy-plugin`_).
199
-
200
- Deploying Plugins
201
- =================
202
-
203
- You can use Turtles to deploy LOCKSS plugins to LOCKSS plugin registries.
204
-
205
- You will need to define one or more `Plugin Registries`_ and declare them in a `Plugin Registry Catalog`_.
206
-
207
- You then use the `deploy-plugin`_ command to deploy plugin JARs, or the `release-plugin`_ command to build and deploy plugins from `Plugin Sets`_ (equivalent of `build-plugin`_ followed by `deploy-plugin`_).
208
-
209
- -------------------
210
- Configuration Files
211
- -------------------
212
-
213
- All Turtles configuration files are YAML files and have a top-level ``kind`` key that declares what kind of configuration file it is.
214
-
215
- Some Turtles commands require a `Plugin Set Catalog`_, `Plugin Registry Catalog`_, or `Plugin Signing Credentials`_. You can specify the configuration file to use via the appropriate command line option (for example |PLUGIN_SET_CATALOG|). Otherwise, Turtles will look for then appropriate configuration file (for example ``plugin-set-catalog.yaml``) in several standard directories, in this order:
216
-
217
- * ``$XDG_CONFIG_HOME/lockss.turtles`` (by default ``$HOME/.config/lockss.turtles``)
218
-
219
- * ``/usr/local/share/lockss.turtles``
220
-
221
- * ``/etc/lockss.turtles``
222
-
223
- Plugin Set Catalog
224
- ==================
225
-
226
- Turtles commands that are `Building Plugins`_ (`build-plugin`_, `release-plugin`_) need a plugin set catalog. It can be specified via the |PLUGIN_SET_CATALOG| option, otherwise Turtles looks through `Configuration Files`_ for a file named ``plugin-set-catalog.yaml``.
227
-
228
- A plugin set catalog is defined by a YAML document::
229
-
230
- ---
231
- kind: PluginSetCatalog
232
- plugin-set-files:
233
- - /path/to/some/file1.yaml
234
- - /path/to/another/file2.yaml
235
- - ...
236
-
237
- The contents are described below:
238
-
239
- ``kind``
240
- *Required.* Must be set to ``PluginSetCatalog``.
241
-
242
- ``plugin-set-files``
243
- *Required.* A list of one or more paths to `Plugin Sets`_.
244
-
245
- Plugin Sets
246
- ===========
247
-
248
- A plugin set is a project containing the source code of one or more LOCKSS plugins.
249
-
250
- A plugin set is defined by a YAML document::
251
-
252
- ---
253
- kind: PluginSet
254
- id: mypluginset
255
- name: My Plugin Set
256
- builder:
257
- type: ...
258
- ...
259
-
260
- The contents are described below:
261
-
262
- ``kind``
263
- *Required.* Must be set to ``PluginSet``.
264
-
265
- ``id``
266
- *Required.* A short identifier for the plugin set, for example ``mypluginset``.
267
-
268
- ``name``
269
- *Required.* A display name for the plugin set, for example ``My Plugin Set``.
270
-
271
- ``builder``
272
- *Required.* An object defining the plugin set's builder together with its options.
273
-
274
- ``type``
275
- *Required.* A plugin set builder type. See `Plugin Set Builders`_ below.
276
-
277
- Other
278
- Additional properties depending on the plugin set builder type. See `Plugin Set Builders`_ below.
279
-
280
- Plugin Set Builders
281
- ===================
282
-
283
- Turtles `Plugin Sets`_ support two types of plugin set builders:
284
-
285
- * `Maven Plugin Set Builder`_
286
-
287
- * `Ant Plugin Set Builder`_
288
-
289
- Maven Plugin Set Builder
290
- ------------------------
291
-
292
- This type of plugin set builder is for a Maven project inheriting from ``org.lockss:lockss-plugins-parent-pom``.
293
-
294
- Maven Plugin Set Builder Prerequisites
295
- ++++++++++++++++++++++++++++++++++++++
296
-
297
- * Java Development Kit 8 (JDK).
298
-
299
- * `Apache Maven <https://maven.apache.org/>`_.
300
-
301
- Maven Plugin Set Builder Declaration
302
- ++++++++++++++++++++++++++++++++++++
303
-
304
- For this plugin set builder type, the ``builder`` object in the plugin set definition has the following structure::
305
-
306
- ---
307
- kind: PluginSet
308
- id: ...
309
- name: ...
310
- builder:
311
- type: mvn
312
- main: ...
313
- test: ...
314
-
315
- ``type``
316
- *Required.* Must be set to ``mvn``.
317
-
318
- ``main``
319
- *Optional.* The path (relative to the root of the project) to the plugins' source code. *Default:* ``src/main/java``.
320
-
321
- ``test``
322
- *Optional.* The path (relative to the root of the project) to the plugins' unit tests. *Default:* ``src/test/java``.
323
-
324
- Ant Plugin Set Builder
325
- ----------------------
326
-
327
- This type of plugin set builder is for the LOCKSS 1.x (https://github.com/lockss/lockss-daemon) code tree, based on Ant.
328
-
329
- Ant Plugin Set Builder Prerequisites
330
- ++++++++++++++++++++++++++++++++++++
331
-
332
- * Java Development Kit 8 (JDK).
333
-
334
- * `Apache Ant <https://ant.apache.org/>`_.
335
-
336
- * ``JAVA_HOME`` must be set appropriately.
337
-
338
- Ant Plugin Set Builder Declaration
339
- ++++++++++++++++++++++++++++++++++
340
-
341
- For this plugin set builder type, the ``builder`` object in the plugin set definition has the following structure::
342
-
343
- ---
344
- kind: PluginSet
345
- id: ...
346
- name: ...
347
- builder:
348
- type: ant
349
- main: ...
350
- test: ...
351
-
352
- ``type``
353
- *Required.* Must be set to ``ant``.
354
-
355
- ``main``
356
- *Optional.* The path (relative to the root of the project) to the plugins' source code. *Default:* ``plugins/src``.
357
-
358
- ``test``
359
- *Optional.* The path (relative to the root of the project) to the plugins' unit tests. *Default:* ``plugins/test/src``.
360
-
361
- Plugin Registry Catalog
362
- =======================
363
-
364
- Turtles commands that are `Deploying Plugins`_ (`deploy-plugin`_, `release-plugin`_) need a plugin registry catalog. It can be specified via the |PLUGIN_REGISTRY_CATALOG| option, otherwise Turtles looks through `Configuration Files`_ for a file named ``plugin-registry-catalog.yaml``.
365
-
366
- A plugin set catalog is defined by a YAML document::
367
-
368
- ---
369
- kind: PluginRegistryCatalog
370
- plugin-registry-files:
371
- - /path/to/some/file1.yaml
372
- - /path/to/another/file2.yaml
373
- - ...
374
-
375
- The contents are described below:
376
-
377
- ``kind``
378
- *Required.* Must be set to ``PluginRegistryCatalog``.
379
-
380
- ``plugin-registry-files``
381
- *Required.* A list of one or more paths to `Plugin Registries`_.
382
-
383
- Plugin Registries
384
- =================
385
-
386
- A plugin registry is a structure containing LOCKSS plugins packaged as signed JAR files.
387
-
388
- Currently the only predefined structures are directory structures local to the file system, which are then typically served by a Web server.
389
-
390
- A plugin registry is defined by a YAML document::
391
-
392
- ---
393
- kind: PluginRegistry
394
- id: mypluginregistry
395
- name: My Plugin Registry
396
- layout:
397
- type: ...
398
- ...
399
- layers:
400
- - ...
401
- plugin-identifiers:
402
- - edu.myuniversity.plugin.publisherx.PublisherXPlugin
403
- - edu.myuniversity.plugin.publishery.PublisherYPlugin
404
- - ...
405
- suppressed-plugin-identifiers:
406
- - edu.myuniversity.plugin.old.OldPlugin
407
- - ...
408
-
409
- The contents are described below:
410
-
411
- ``kind``
412
- *Required.* Must be set to ``PluginRegistry``.
413
-
414
- ``id``
415
- *Required.* A short identifier for the plugin registry, for example ``mypluginregistry``.
416
-
417
- ``name``
418
- *Required.* A display name for the plugin registry, for example ``My Plugin Registry``.
419
-
420
- ``layout``
421
- *Required.* An object defining the plugin registry's layout together with its options.
422
-
423
- ``type``
424
- *Required.* A plugin registry layout type. See `Plugin Registry Layouts`_ below.
425
-
426
- Other
427
- Additional properties depending on the plugin registry layout type. See `Plugin Registry Layouts`_ below.
428
-
429
- ``layers``
430
- *Required.* A list of objects describing the layers of the plugin registry. See `Plugin Registry Layers`_ below.
431
-
432
- ``plugin-identifiers``
433
- *Required.* Non-empty list of the plugin identifiers in this plugin registry.
434
-
435
- ``suppressed-plugin-identifiers``
436
- *Optional.* Non-empty list of plugin identifiers that are excluded from this plugin registry.
437
-
438
- Turtles does not currently do anything with this information, but it can be used to record plugins that have been abandoned or retracted over the lifetime of the plugin registry.
439
-
440
- Plugin Registry Layouts
441
- =======================
442
-
443
- Turtles supports two kinds of plugin registry layouts:
444
-
445
- * `Directory Plugin Registry Layout`_
446
-
447
- * `RCS Plugin Registry Layout`_
448
-
449
- Directory Plugin Registry Layout
450
- --------------------------------
451
-
452
- In this type of plugin registry layout, each layer consists of a directory on the local file system where signed plugin JARs are stored, which is then typically served by a Web server. The directory for each layer is designated by the layer's ``path`` property.
453
-
454
- Directory Plugin Registry Layout Prerequisites
455
- ++++++++++++++++++++++++++++++++++++++++++++++
456
-
457
- None.
458
-
459
- Directory Plugin Registry Layout Declaration
460
- ++++++++++++++++++++++++++++++++++++++++++++
461
-
462
- For this plugin registry layout type, the ``layout`` object in the plugin registry definition has the following structure::
463
-
464
- ---
465
- kind: PluginRegistry
466
- id: ...
467
- name: ...
468
- layout:
469
- type: directory
470
- file-naming-convention: ...
471
- layers:
472
- - ...
473
- plugin-identifiers:
474
- - ...
475
- suppressed-plugin-identifiers:
476
- - ...
477
-
478
- ``type``
479
- *Required.* Must be set to ``directory``.
480
-
481
- ``file-naming-convention``
482
- *Optional.* A rule for what to name each deployed JAR file. If unspecified, the behavior is that of ``identifier``. Can be one of:
483
-
484
- * ``identifier``: Use the plugin identifier and add ``.jar``. For example ``edu.myuniversity.plugin.publisherx.PublisherXPlugin`` results in ``edu.myuniversity.plugin.publisherx.PublisherXPlugin.jar``.
485
-
486
- * ``underscore``: Replace ``.`` in the plugin identifier with ``_``, and add ``.jar``. For example ``edu.myuniversity.plugin.publisherx.PublisherXPlugin`` results in ``edu_myuniversity_plugin_publisherx_PublisherXPlugin.jar``.
487
-
488
- * ``abbreviated``: Use the last dotted component of the plugin identifier and add ``.jar``. For example ``edu.myuniversity.plugin.publisherx.PublisherXPlugin`` results in ``PublisherXPlugin.jar``.
489
-
490
- RCS Plugin Registry Layout
491
- --------------------------
492
-
493
- In this specialization of the `Directory Plugin Registry Layout`_, each successive version of a given JAR is kept locally in RCS.
494
-
495
- RCS Plugin Registry Layout Prerequisites
496
- ++++++++++++++++++++++++++++++++++++++++
497
-
498
- * `GNU RCS <https://www.gnu.org/software/rcs/>`_.
499
-
500
- RCS Plugin Registry Layout Declaration
501
- ++++++++++++++++++++++++++++++++++++++
502
-
503
- For this plugin registry layout type, the ``layout`` object in the plugin registry definition has the following structure::
504
-
505
- ---
506
- kind: PluginRegistry
507
- id: ...
508
- name: ...
509
- layout:
510
- type: rcs
511
- file-naming-convention: ...
512
- layers:
513
- - ...
514
- plugin-identifiers:
515
- - ...
516
- suppressed-plugin-identifiers:
517
- - ...
518
-
519
- ``type``
520
- *Required.* Must be set to ``rcs``.
521
-
522
- ``file-naming-convention``
523
- *Optional.* A rule for what to name each deployed JAR file. If unspecified, the behavior is that of ``identifier``. Can be one of:
524
-
525
- * ``identifier``: Use the plugin identifier and add ``.jar``. For example ``edu.myuniversity.plugin.publisherx.PublisherXPlugin`` results in ``edu.myuniversity.plugin.publisherx.PublisherXPlugin.jar``.
526
-
527
- * ``underscore``: Replace ``.`` in the plugin identifier with ``_``, and add ``.jar``. For example ``edu.myuniversity.plugin.publisherx.PublisherXPlugin`` results in ``edu_myuniversity_plugin_publisherx_PublisherXPlugin.jar``.
528
-
529
- * ``abbreviated``: Use the last dotted component of the plugin identifier and add ``.jar``. For example ``edu.myuniversity.plugin.publisherx.PublisherXPlugin`` results in ``PublisherXPlugin.jar``.
530
-
531
- Plugin Registry Layers
532
- ======================
533
-
534
- A plugin registry consists of one or more layers.
535
-
536
- Some plugin registries only one layer, in which case the LOCKSS boxes in a network using the plugin registry will get what is released to it. Some plugin registries may have two or more layers, with the additional layers used for plugin development or content processing quality assurance.
537
-
538
- Layers are sequential in nature; a new version of a plugin is released to the lowest layer first, then to the next layer (after some process), and so on until the highest layer. This sequencing is reflected in the ordering of the ``layers`` list in the plugin registry definition.
539
-
540
- Although the identifiers (see ``id`` below) and display names (see ``name`` below) of plugin registry layers are arbitrary, the highest layer is commonly referred to as the *production* layer, and when there are exactly two layers, the lower layer is commonly referred to as the *testing* layer. Turtles reflects this common idiom with built-in |PRODUCTION| and |TESTING| options that are shorthand for ``--layer=production`` and ``--layer=testing`` respectively.
541
-
542
- It is possible for multiple plugin registries to have a layer ``path`` in common. An example would be a team working on several plugin registries for different purposes, having distinct (public) production layer paths, but sharing a single (internal) testing layer path, if they are the only audience for it.
543
-
544
- A plugin registry layer is defined as one of the objects in the plugin registry definition's ``layers`` list. Each layer object has the following structure::
545
-
546
- ---
547
- kind: PluginRegistry
548
- id: ...
549
- name: ...
550
- layout:
551
- type: ...
552
- ...
553
- layers:
554
- - id: testing
555
- name: My Plugin Registry (Testing)
556
- path: /path/to/testing
557
- - id: production
558
- name: My Plugin Registry (Production)
559
- path: /path/to/production
560
- - ...
561
- plugin-identifiers:
562
- - ...
563
- suppressed-plugin-identifiers:
564
- - ...
565
-
566
- ``id``
567
- *Required.* A short identifier for the plugin registry layer, for example ``testing``.
568
-
569
- ``name``
570
- *Required.* A display name for the plugin registry layer, for example ``My Plugin Registry (Testing)``.
571
-
572
- ``path``
573
- *Required.* The local path to the root of the plugin registry layer, for example ``/path/to/testing``.
574
-
575
- Plugin Signing Credentials
576
- ==========================
577
-
578
- Turtles commands that are `Building Plugins`_ (`build-plugin`_, `release-plugin`_) need a reference to plugin signing credentials. They can be specified via the |PLUGIN_SIGNING_CREDENTIALS| option, otherwise Turtles looks through `Configuration Files`_ for a file named ``plugin-signing-credentials.yaml``.
579
-
580
- Plugin signing credentials are defined by a YAML document::
581
-
582
- ---
583
- kind: PluginSigningCredentials
584
- plugin-signing-keystore: /path/to/myalias.keystore
585
- plugin-signing-alias: myalias
586
-
587
- The contents are described below:
588
-
589
- ``kind``
590
- *Required.* Must be set to ``PluginSigningCredentials``.
591
-
592
- ``plugin-signing-keystore``
593
- *Required.* Path to the plugin signing key (keystore).
594
-
595
- ``plugin-signing-alias``
596
- *Required.* The alias to use, which must be that of the plugin signing key (keystore) and also found in the LOCKSS network's shared keystore.
597
-
598
- -----------------
599
- Command Line Tool
600
- -----------------
601
-
602
- Turtles is invoked at the command line as::
603
-
604
- turtles
605
-
606
- or as a Python module::
607
-
608
- python3 -m lockss.turtles
609
-
610
- Help messages and this document use ``turtles`` throughout, but the two invocation styles are interchangeable.
611
-
612
- Synopsis
613
- ========
614
-
615
- Turtles uses `Commands`_, in the style of programs like ``git``, ``dnf``/``yum``, ``apt``/``apt-get``, and the like. You can see the list of available `Commands`_ by invoking ``turtles --help``, and you can find a usage summary of all the `Commands`_ by invoking ``turtles usage``::
616
-
617
- usage: turtles [-h] [--debug-cli] [--non-interactive] COMMAND ...
618
-
619
- turtles build-plugin [-h] [--output-format FMT] [--password PASS]
620
- [--plugin-set-catalog FILE]
621
- [--plugin-signing-credentials FILE]
622
- [--identifier PLUGID] [--identifiers FILE]
623
- [PLUGID ...]
624
-
625
- turtles copyright [-h]
626
-
627
- turtles deploy-plugin [-h] [--output-format FMT]
628
- [--plugin-registry-catalog FILE] [--production]
629
- [--testing] [--jar PLUGJAR] [--jars FILE]
630
- [--layer LAYER] [--layers FILE]
631
- [PLUGJAR ...]
632
-
633
- turtles license [-h]
634
-
635
- turtles release-plugin [-h] [--output-format FMT] [--password PASS]
636
- [--plugin-registry-catalog FILE]
637
- [--plugin-set-catalog FILE]
638
- [--plugin-signing-credentials FILE]
639
- [--production] [--testing] [--identifier PLUGID]
640
- [--identifiers FILE] [--layer LAYER]
641
- [--layers FILE]
642
- [PLUGID ...]
643
-
644
- turtles usage [-h]
645
-
646
- turtles version [-h]
647
-
648
- Commands
649
- ========
650
-
651
- The available commands are:
652
-
653
- ================= ============ =======
654
- Command Abbreviation Purpose
655
- ================= ============ =======
656
- `build-plugin`_ bp build (package and sign) plugins
657
- `copyright`_ show copyright and exit
658
- `deploy-plugin`_ dp deploy plugins
659
- `license`_ show license and exit
660
- `release-plugin`_ rp release (build and deploy) plugins
661
- `usage`_ show detailed usage and exit
662
- `version`_ show version and exit
663
- ================= ============ =======
664
-
665
- Top-Level Program
666
- -----------------
667
-
668
- The top-level executable alone does not perform any action or default to a given command. It does define a few options, which you can see by invoking Turtles with the |HELP| option::
669
-
670
- usage: turtles [-h] [--debug-cli] [--non-interactive] COMMAND ...
671
-
672
- options:
673
- -h, --help show this help message and exit
674
- --debug-cli print the result of parsing command line arguments
675
- --non-interactive, -n
676
- disallow interactive prompts (default: allow)
677
-
678
- commands:
679
- Add --help to see the command's own help message.
680
-
681
- COMMAND DESCRIPTION
682
- build-plugin (bp) build (package and sign) plugins
683
- copyright show copyright and exit
684
- deploy-plugin (dp) deploy plugins
685
- license show license and exit
686
- release-plugin (rp)
687
- release (build and deploy) plugins
688
- usage show detailed usage and exit
689
- version show version and exit
690
-
691
- .. _build-plugin:
692
-
693
- ``build-plugin`` (``bp``)
694
- -------------------------
695
-
696
- The ``build-plugin`` command is used for `Building Plugins`_. It has its own |HELP| option::
697
-
698
- usage: turtles build-plugin [-h] [--output-format FMT] [--password PASS]
699
- [--plugin-set-catalog FILE]
700
- [--plugin-signing-credentials FILE]
701
- [--identifier PLUGID] [--identifiers FILE]
702
- [PLUGID ...]
703
-
704
- Build (package and sign) plugins.
705
-
706
- options:
707
- -h, --help show this help message and exit
708
- --output-format FMT set tabular output format to FMT (default: simple;
709
- choices: asciidoc, double_grid, double_outline,
710
- fancy_grid, fancy_outline, github, grid, heavy_grid,
711
- heavy_outline, html, jira, latex, latex_booktabs,
712
- latex_longtable, latex_raw, mediawiki, mixed_grid,
713
- mixed_outline, moinmoin, orgtbl, outline, pipe, plain,
714
- presto, pretty, psql, rounded_grid, rounded_outline,
715
- rst, simple, simple_grid, simple_outline, textile,
716
- tsv, unsafehtml, youtrack)
717
- --password PASS set the plugin signing password
718
- --plugin-set-catalog FILE, -s FILE
719
- load plugin set catalog from FILE (default:
720
- $HOME/.config/lockss.turtles/plugin-set-
721
- catalog.yaml or
722
- /usr/local/share/lockss.turtles/plugin-set-
723
- catalog.yaml or /etc/lockss.turtles/plugin-set-
724
- catalog.yaml)
725
- --plugin-signing-credentials FILE, -c FILE
726
- load plugin signing credentials from FILE (default:
727
- $HOME/.config/lockss.turtles/plugin-signing-
728
- credentials.yaml or
729
- /usr/local/share/lockss.turtles/plugin-signing-
730
- credentials.yaml or /etc/lockss.turtles/plugin-
731
- signing-credentials.yaml)
732
-
733
- plugin identifier arguments and options:
734
- --identifier PLUGID, -i PLUGID
735
- add PLUGID to the list of plugin identifiers to build
736
- --identifiers FILE, -I FILE
737
- add the plugin identifiers in FILE to the list of
738
- plugin identifiers to build
739
- PLUGID plugin identifier to build
740
-
741
- The command needs:
742
-
743
- * `Plugin Signing Credentials`_, either from the |PLUGIN_SIGNING_CREDENTIALS| option or from ``plugin-signing-credentials.yaml`` in the `Configuration Files`_.
744
-
745
- * A `Plugin Set Catalog`_, either from the |PLUGIN_SET_CATALOG| option or from ``plugin-set-catalog.yaml`` in the `Configuration Files`_.
746
-
747
- * One or more plugin identifiers, from the `Plugin Identifier Arguments and Options`_ (bare arguments, |IDENTIFIER| options, |IDENTIFIERS| options).
748
-
749
- It also accepts `Options`_ for `Output Format Control`_
750
-
751
- Examples::
752
-
753
- # Help message
754
- turtles build-plugin --help
755
- # Abbreviation
756
- turtles bp -h
757
-
758
- # List of plugin identifiers
759
- turtles build-plugin edu.myuniversity.plugin.publisherx.PublisherXPlugin edu.myuniversity.plugin.publishery.PublisherYPlugin ...
760
- # Abbreviation
761
- turtles bp edu.myuniversity.plugin.publisherx.PublisherXPlugin edu.myuniversity.plugin.publishery.PublisherYPlugin ...
762
-
763
- # Alternative invocation
764
- turtles build-plugin --identifier=edu.myuniversity.plugin.publisherx.PublisherXPlugin --identifier=edu.myuniversity.plugin.publishery.PublisherYPlugin ...
765
- # Abbreviation
766
- turtles bp -i edu.myuniversity.plugin.publisherx.PublisherXPlugin -i edu.myuniversity.plugin.publishery.PublisherYPlugin ...
767
-
768
- # Alternative invocation
769
- # /tmp/pluginids.txt has one plugin identifier per line
770
- turtles build-plugin --identifiers=/tmp/pluginids.txt
771
- # Abbreviation
772
- turtles bp -I /tmp/pluginids.txt
773
-
774
- .. _copyright:
775
-
776
- ``copyright``
777
- -------------
778
-
779
- The ``copyright`` command displays the copyright notice for Turtles and exits.
780
-
781
- .. _deploy-plugin:
782
-
783
- ``deploy-plugin`` (``dp``)
784
- --------------------------
785
-
786
- The ``deploy-plugin`` command is used for `Deploying Plugins`_. It has its own |HELP| option::
787
-
788
- usage: turtles deploy-plugin [-h] [--output-format FMT]
789
- [--plugin-registry-catalog FILE] [--production]
790
- [--testing] [--jar PLUGJAR] [--jars FILE]
791
- [--layer LAYER] [--layers FILE]
792
- [PLUGJAR ...]
793
-
794
- Deploy plugins.
795
-
796
- options:
797
- -h, --help show this help message and exit
798
- --output-format FMT set tabular output format to FMT (default: simple;
799
- choices: asciidoc, double_grid, double_outline,
800
- fancy_grid, fancy_outline, github, grid, heavy_grid,
801
- heavy_outline, html, jira, latex, latex_booktabs,
802
- latex_longtable, latex_raw, mediawiki, mixed_grid,
803
- mixed_outline, moinmoin, orgtbl, outline, pipe, plain,
804
- presto, pretty, psql, rounded_grid, rounded_outline,
805
- rst, simple, simple_grid, simple_outline, textile,
806
- tsv, unsafehtml, youtrack)
807
- --plugin-registry-catalog FILE, -r FILE
808
- load plugin registry catalog from FILE (default:
809
- $HOME/.config/lockss.turtles/plugin-registry-
810
- catalog.yaml or
811
- /usr/local/share/lockss.turtles/plugin-registry-
812
- catalog.yaml or /etc/lockss.turtles/plugin-registry-
813
- catalog.yaml)
814
- --production, -p synonym for --layer=production (i.e. add 'production'
815
- to the list of plugin registry layers to process)
816
- --testing, -t synonym for --layer=testing (i.e. add 'testing' to the
817
- list of plugin registry layers to process)
818
-
819
- plugin JAR arguments and options:
820
- --jar PLUGJAR, -j PLUGJAR
821
- add PLUGJAR to the list of plugin JARs to deploy
822
- --jars FILE, -J FILE add the plugin JARs in FILE to the list of plugin JARs
823
- to deploy
824
- PLUGJAR plugin JAR to deploy
825
-
826
- plugin registry layer options:
827
- --layer LAYER, -l LAYER
828
- add LAYER to the list of plugin registry layers to
829
- process
830
- --layers FILE, -L FILE
831
- add the layers in FILE to the list of plugin registry
832
- layers to process
833
-
834
- The command needs:
835
-
836
- * A `Plugin Registry Catalog`_, either from the |PLUGIN_REGISTRY_CATALOG| option or from ``plugin-signing-credentials.yaml`` in the `Configuration Files`_.
837
-
838
- * One or more plugin registry layer IDs, from the `Plugin Registry Layer Options`_ (|LAYER| options, |LAYERS| options, and alternatively, |TESTING| options, |PRODUCTION| option).
839
-
840
- * One or more JAR paths. The list of JAR paths to process is derived from:
841
-
842
- * The JAR paths listed as bare arguments to the command.
843
-
844
- * The JAR paths listed as |JAR| options.
845
-
846
- * The JAR paths found in the files listed as |JARS| options.
847
-
848
- It also accepts `Options`_ for `Output Format Control`_.
849
-
850
- Examples::
851
-
852
- # Help message
853
- turtles deploy-plugin --help
854
- # Abbreviation
855
- turtles dp -h
856
-
857
- # List of JARs
858
- # Deploy to 'testing' layer only
859
- turtles deploy-plugin --testing /path/to/edu.myuniversity.plugin.publisherx.PublisherXPlugin.jar /path/to/edu.myuniversity.plugin.publishery.PublisherYPlugin.jar ...
860
- # Abbreviation
861
- turtles dp -t /path/to/edu.myuniversity.plugin.publisherx.PublisherXPlugin.jar /path/to/edu.myuniversity.plugin.publishery.PublisherYPlugin.jar ...
862
-
863
- # Alternative invocation
864
- # Deploy to 'production' layer only
865
- turtles deploy-plugin --production --jar=/path/to/edu.myuniversity.plugin.publisherx.PublisherXPlugin.jar --jar=/path/to/edu.myuniversity.plugin.publishery.PublisherYPlugin.jar ...
866
- # Abbreviation
867
- turtles dp -p -j /path/to/edu.myuniversity.plugin.publisherx.PublisherXPlugin.jar -j /path/to/edu.myuniversity.plugin.publishery.PublisherYPlugin.jar ...
868
-
869
- # Alternative invocation
870
- # /tmp/pluginjars.txt has one JAR path per line
871
- # Deploy to both 'testing' and 'production' layers
872
- turtles deploy-plugin --testing --production --jars=/tmp/pluginjars.txt
873
- # Abbreviation
874
- turtles bp -tp -J /tmp/pluginids.txt
875
-
876
- .. _license:
877
-
878
- ``license``
879
- -----------
880
-
881
- The ``license`` command displays the license terms for Turtles and exits.
882
-
883
- .. _release-plugin:
884
-
885
- ``release-plugin`` (``rp``)
886
- ---------------------------
887
-
888
- The ``release-plugin`` command is used for `Building Plugins`_ and `Deploying Plugins`_, being essentially `build-plugin`_ followed by `deploy-plugin`_. It has its own |HELP| option::
889
-
890
- usage: turtles release-plugin [-h] [--output-format FMT] [--password PASS]
891
- [--plugin-registry-catalog FILE]
892
- [--plugin-set-catalog FILE]
893
- [--plugin-signing-credentials FILE]
894
- [--production] [--testing] [--identifier PLUGID]
895
- [--identifiers FILE] [--layer LAYER]
896
- [--layers FILE]
897
- [PLUGID ...]
898
-
899
- Release (build and deploy) plugins.
900
-
901
- options:
902
- -h, --help show this help message and exit
903
- --output-format FMT set tabular output format to FMT (default: simple;
904
- choices: asciidoc, double_grid, double_outline,
905
- fancy_grid, fancy_outline, github, grid, heavy_grid,
906
- heavy_outline, html, jira, latex, latex_booktabs,
907
- latex_longtable, latex_raw, mediawiki, mixed_grid,
908
- mixed_outline, moinmoin, orgtbl, outline, pipe, plain,
909
- presto, pretty, psql, rounded_grid, rounded_outline,
910
- rst, simple, simple_grid, simple_outline, textile,
911
- tsv, unsafehtml, youtrack)
912
- --password PASS set the plugin signing password
913
- --plugin-registry-catalog FILE, -r FILE
914
- load plugin registry catalog from FILE (default:
915
- $HOME/.config/lockss.turtles/plugin-registry-
916
- catalog.yaml or
917
- /usr/local/share/lockss.turtles/plugin-registry-
918
- catalog.yaml or /etc/lockss.turtles/plugin-registry-
919
- catalog.yaml)
920
- --plugin-set-catalog FILE, -s FILE
921
- load plugin set catalog from FILE (default:
922
- $HOME/.config/lockss.turtles/plugin-set-
923
- catalog.yaml or
924
- /usr/local/share/lockss.turtles/plugin-set-
925
- catalog.yaml or /etc/lockss.turtles/plugin-set-
926
- catalog.yaml)
927
- --plugin-signing-credentials FILE, -c FILE
928
- load plugin signing credentials from FILE (default:
929
- $HOME/.config/lockss.turtles/plugin-signing-
930
- credentials.yaml or
931
- /usr/local/share/lockss.turtles/plugin-signing-
932
- credentials.yaml or /etc/lockss.turtles/plugin-
933
- signing-credentials.yaml)
934
- --production, -p synonym for --layer=production (i.e. add 'production'
935
- to the list of plugin registry layers to process)
936
- --testing, -t synonym for --layer=testing (i.e. add 'testing' to the
937
- list of plugin registry layers to process)
938
-
939
- plugin identifier arguments and options:
940
- --identifier PLUGID, -i PLUGID
941
- add PLUGID to the list of plugin identifiers to build
942
- --identifiers FILE, -I FILE
943
- add the plugin identifiers in FILE to the list of
944
- plugin identifiers to build
945
- PLUGID plugin identifier to build
946
-
947
- plugin registry layer options:
948
- --layer LAYER, -l LAYER
949
- add LAYER to the list of plugin registry layers to
950
- process
951
- --layers FILE, -L FILE
952
- add the layers in FILE to the list of plugin registry
953
- layers to process
954
-
955
- The command needs:
956
-
957
- * `Plugin Signing Credentials`_, either from the |PLUGIN_SIGNING_CREDENTIALS| option or from ``plugin-signing-credentials.yaml`` in the `Configuration Files`_.
958
-
959
- * A `Plugin Set Catalog`_, either from the |PLUGIN_SET_CATALOG| option or from ``plugin-set-catalog.yaml`` in the `Configuration Files`_.
960
-
961
- * A `Plugin Registry Catalog`_, either from the |PLUGIN_REGISTRY_CATALOG| option or from ``plugin-signing-credentials.yaml`` in the `Configuration Files`_.
962
-
963
- * One or more plugin registry layer IDs, from the `Plugin Registry Layer Options`_ (|IDENTIFIER| options, |IDENTIFIERS| options, and alternatively, |TESTING| options, |PRODUCTION| option).
964
-
965
- * One or more plugin identifiers, from the `Plugin Identifier Arguments and Options`_ (bare arguments, |IDENTIFIER| options, |IDENTIFIERS| options).
966
-
967
- It also accepts `Options`_ for `Output Format Control`_.
968
-
969
- Examples::
970
-
971
- # Help message
972
- turtles release-plugin --help
973
- # Abbreviation
974
- turtles rp -h
975
-
976
- # List of plugin identifiers
977
- # Deploy to 'testing' layer only
978
- turtles release-plugin --testing edu.myuniversity.plugin.publisherx.PublisherXPlugin edu.myuniversity.plugin.publishery.PublisherYPlugin ...
979
- # Abbreviation
980
- turtles rp -t edu.myuniversity.plugin.publisherx.PublisherXPlugin edu.myuniversity.plugin.publishery.PublisherYPlugin ...
981
-
982
- # Alternative invocation
983
- # Deploy to 'production' layer only
984
- turtles release-plugin --production --identifier=edu.myuniversity.plugin.publisherx.PublisherXPlugin --identifier=edu.myuniversity.plugin.publishery.PublisherYPlugin ...
985
- # Abbreviation
986
- turtles rp -p -i edu.myuniversity.plugin.publisherx.PublisherXPlugin -i edu.myuniversity.plugin.publishery.PublisherYPlugin ...
987
-
988
- # Alternative invocation
989
- # /tmp/pluginids.txt has one plugin identifier per line
990
- # Deploy to both 'testing' and 'production' layers
991
- turtles release-plugin --testing --production --identifiers=/tmp/pluginids.txt
992
- # Abbreviation
993
- turtles rp -tp -I /tmp/pluginids.txt
994
-
995
- .. _usage:
996
-
997
- ``usage``
998
- ---------
999
-
1000
- The ``usage`` command displays the usage message of all the Turtles `Commands`_.
1001
-
1002
- .. _version:
1003
-
1004
- ``version``
1005
- -----------
1006
-
1007
- The ``version`` command displays the version number of Turtles and exits.
1008
-
1009
- Options
1010
- =======
1011
-
1012
- Plugin Identifier Arguments and Options
1013
- ---------------------------------------
1014
-
1015
- Commands that are `Building Plugins`_ expect one or more plugin identifiers. The list of plugin identifiers to process is derived from:
1016
-
1017
- * The plugin identifiers listed as bare arguments to the command.
1018
-
1019
- * The plugin identifiers listed as |IDENTIFIER| options.
1020
-
1021
- * The plugin identifiers found in the files listed as |IDENTIFIERS| options.
1022
-
1023
- Plugin Registry Layer Options
1024
- -----------------------------
1025
-
1026
- Commands that are `Deploying Plugins`_ expect one or more plugin registry layer IDs. The list of plugin registry layer IDs to target is derived from:
1027
-
1028
- * The plugin registry layer IDs listed as |LAYER| options.
1029
-
1030
- * The plugin registry layer IDs found in the files listed as |LAYERS| options.
1031
-
1032
- As a convenience, the following synonyms also exist:
1033
-
1034
- * |TESTING| is a synonym for ``--layer=testing``
1035
-
1036
- * |PRODUCTION| is a synonym for ``--layer=production``
1037
-
1038
- Output Format Control
1039
- ---------------------
1040
-
1041
- Turtles' tabular output is performed by the `tabulate <https://pypi.org/project/tabulate>`_ library through the ``--output-format`` option. See its PyPI page for a visual reference of the various output formats available. The **default** is ``simple``.
1042
-