lockss-turtles 0.4.0.dev4__py3-none-any.whl → 0.5.0__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.
CHANGELOG.rst CHANGED
@@ -2,11 +2,21 @@
2
2
  Release Notes
3
3
  =============
4
4
 
5
+ -----
6
+ 0.5.0
7
+ -----
8
+
9
+ Released: 2024-09-04
10
+
11
+ * **Features**
12
+
13
+ * ``AntPluginSet``: also include plugin auxiliary packages (``plugin_aux_packages``).
14
+
5
15
  -----
6
16
  0.4.0
7
17
  -----
8
18
 
9
- Released: ?
19
+ Released: 2023-05-17
10
20
 
11
21
  * **Features**
12
22
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
@@ -28,10 +28,10 @@
28
28
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
29
  # POSSIBILITY OF SUCH DAMAGE.
30
30
 
31
- __version__ = '0.4.0-dev4'
31
+ __version__ = '0.5.0'
32
32
 
33
33
  __copyright__ = '''
34
- Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
34
+ Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
35
35
  '''.strip()
36
36
 
37
37
  __license__ = __copyright__ + '\n\n' + '''
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
lockss/turtles/app.py CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
lockss/turtles/cli.py CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
lockss/turtles/plugin.py CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
@@ -87,6 +87,15 @@ class Plugin(object):
87
87
  if tag != 'map':
88
88
  raise RuntimeError(f'{plugin_path!s}: invalid root element: {tag}')
89
89
 
90
+ def get_aux_packages(self):
91
+ key = 'plugin_aux_packages'
92
+ lst = [x[1] for x in self._parsed.findall('entry') if x[0].tag == 'string' and x[0].text == key]
93
+ if lst is None or len(lst) < 1:
94
+ return []
95
+ if len(lst) > 1:
96
+ raise ValueError(f'plugin declares {len(lst)} entries for {key}')
97
+ return [x.text for x in lst[0].findall('string')]
98
+
90
99
  def get_identifier(self):
91
100
  return self._only_one('plugin_identifier')
92
101
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
@@ -160,15 +160,21 @@ class AntPluginSet(PluginSet):
160
160
 
161
161
  # Returns (jar_path, plugin)
162
162
  def _little_build(self, plugin_id, keystore_path, keystore_alias, keystore_password=None):
163
- plugin = self.make_plugin(plugin_id)
163
+ orig_plugin = None
164
+ cur_id = plugin_id
164
165
  # Get all directories for jarplugin -d
165
166
  dirs = list()
166
- cur_id = plugin_id
167
167
  while cur_id is not None:
168
+ cur_plugin = self.make_plugin(cur_id)
169
+ orig_plugin = orig_plugin or cur_plugin
168
170
  cur_dir = Plugin.id_to_dir(cur_id)
169
171
  if cur_dir not in dirs:
170
172
  dirs.append(cur_dir)
171
- cur_id = self.make_plugin(cur_id).get_parent_identifier()
173
+ for aux_package in cur_plugin.get_aux_packages():
174
+ aux_dir = Plugin.id_to_dir(f'{aux_package}.FAKEPlugin')
175
+ if aux_dir not in dirs:
176
+ dirs.append(aux_dir)
177
+ cur_id = cur_plugin.get_parent_identifier()
172
178
  # Invoke jarplugin
173
179
  jar_fstr = Plugin.id_to_file(plugin_id)
174
180
  jar_path = self.get_root_path().joinpath('plugins/jars', f'{plugin_id}.jar')
@@ -192,7 +198,7 @@ class AntPluginSet(PluginSet):
192
198
  raise self._sanitize(cpe)
193
199
  if not jar_path.is_file():
194
200
  raise FileNotFoundError(str(jar_path))
195
- return (jar_path, plugin)
201
+ return (jar_path, orig_plugin)
196
202
 
197
203
  def _plugin_path(self, plugin_id):
198
204
  return Path(self.get_main_path()).joinpath(Plugin.id_to_file(plugin_id))
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
lockss/turtles/util.py CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env python3
2
2
 
3
- # Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
3
+ # Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
4
4
  #
5
5
  # Redistribution and use in source and binary forms, with or without
6
6
  # modification, are permitted provided that the following conditions are met:
@@ -1,4 +1,4 @@
1
- Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
1
+ Copyright (c) 2000-2024, Board of Trustees of Leland Stanford Jr. University
2
2
 
3
3
  Redistribution and use in source and binary forms, with or without
4
4
  modification, are permitted provided that the following conditions are met:
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lockss-turtles
3
- Version: 0.4.0.dev4
3
+ Version: 0.5.0
4
4
  Summary: Tool to manage LOCKSS plugin sets and LOCKSS plugin registries
5
5
  Home-page: https://www.lockss.org/
6
6
  License: BSD-3-Clause
7
7
  Author: Thib Guicherd-Callin
8
8
  Author-email: thib@cs.stanford.edu
9
- Requires-Python: >=3.7,<4.0
9
+ Requires-Python: >=3.8,<4.0
10
10
  Classifier: Development Status :: 5 - Production/Stable
11
11
  Classifier: Environment :: Console
12
12
  Classifier: Intended Audience :: Developers
@@ -14,16 +14,16 @@ Classifier: Intended Audience :: System Administrators
14
14
  Classifier: License :: OSI Approved :: BSD License
15
15
  Classifier: Operating System :: POSIX :: Linux
16
16
  Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.7
18
17
  Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Topic :: Utilities
23
23
  Requires-Dist: java-manifest (>=1.1.0,<2.0.0)
24
- Requires-Dist: jsonschema (>=4.17.3,<5.0.0)
25
- Requires-Dist: pyyaml (>=6.0,<7.0)
26
- Requires-Dist: rich-argparse (>=1.1.0,<2.0.0)
24
+ Requires-Dist: jsonschema (>=4.23.0,<5.0.0)
25
+ Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
26
+ Requires-Dist: rich-argparse (>=1.5.2,<2.0.0)
27
27
  Requires-Dist: tabulate (>=0.9.0,<0.10.0)
28
28
  Requires-Dist: xdg (>=6.0.0,<7.0.0)
29
29
  Project-URL: Repository, https://github.com/lockss/lockss-turtles
@@ -33,8 +33,8 @@ Description-Content-Type: text/x-rst
33
33
  Turtles
34
34
  =======
35
35
 
36
- .. |RELEASE| replace:: 0.4.0-dev4
37
- .. |RELEASE_DATE| replace:: ?
36
+ .. |RELEASE| replace:: 0.5.0
37
+ .. |RELEASE_DATE| replace:: 2024-09-04
38
38
 
39
39
  .. |HELP| replace:: ``--help/-h``
40
40
  .. |IDENTIFIER| replace:: ``--identifier/-i``
@@ -49,6 +49,10 @@ Turtles
49
49
  .. |PRODUCTION| replace:: ``--production/-p``
50
50
  .. |TESTING| replace:: ``--testing/-t``
51
51
 
52
+ .. image:: https://assets.lockss.org/images/logos/turtles/turtles_128x128.png
53
+ :alt: Turtles logo
54
+ :align: right
55
+
52
56
  Turtles is a tool to manage LOCKSS plugin sets and LOCKSS plugin registries.
53
57
 
54
58
  **Latest release:** |RELEASE| (|RELEASE_DATE|)
@@ -830,7 +834,7 @@ The command needs:
830
834
 
831
835
  * A `Plugin Registry Catalog`_, either from the |PLUGIN_REGISTRY_CATALOG| option or from ``plugin-signing-credentials.yaml`` in the `Configuration Files`_.
832
836
 
833
- * One or more plugin registry layer IDs, from the `Plugin Registry Layer Options`_ (|IDENTIFIER| options, |IDENTIFIERS| options, and alternatively, |TESTING| options, |PRODUCTION| option).
837
+ * One or more plugin registry layer IDs, from the `Plugin Registry Layer Options`_ (|LAYER| options, |LAYERS| options, and alternatively, |TESTING| options, |PRODUCTION| option).
834
838
 
835
839
  * One or more JAR paths. The list of JAR paths to process is derived from:
836
840
 
@@ -880,7 +884,7 @@ The ``license`` command displays the license terms for Turtles and exits.
880
884
  ``release-plugin`` (``rp``)
881
885
  ---------------------------
882
886
 
883
- 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::
887
+ 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::
884
888
 
885
889
  usage: turtles release-plugin [-h] [--output-format FMT] [--password PASS]
886
890
  [--plugin-registry-catalog FILE]
@@ -1020,9 +1024,9 @@ Plugin Registry Layer Options
1020
1024
 
1021
1025
  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:
1022
1026
 
1023
- * The plugin registry layer IDs listed as |JAR| options.
1027
+ * The plugin registry layer IDs listed as |LAYER| options.
1024
1028
 
1025
- * The plugin registry layer IDs found in the files listed as |JARS| options.
1029
+ * The plugin registry layer IDs found in the files listed as |LAYERS| options.
1026
1030
 
1027
1031
  As a convenience, the following synonyms also exist:
1028
1032
 
@@ -0,0 +1,20 @@
1
+ CHANGELOG.rst,sha256=7nWZAeg0Ooyve3gLiI1lQ42GcnYuTSZcc3G-11nQxPU,3316
2
+ lockss/turtles/__init__.py,sha256=imcQSoXnByEwC0TXwaFQ59Vns2ykHea9ZVERCPquI_g,3196
3
+ lockss/turtles/__main__.py,sha256=JgPPcV-BFhP8oR9FM3VyfHhlhNvBPM3Udzy7AJ_3-bQ,1633
4
+ lockss/turtles/app.py,sha256=RUdFtivrEUl7atjOTE8NHJKk4VwFZ7-ZWmrFshdtWCI,9074
5
+ lockss/turtles/cli.py,sha256=XAt7fqmOLlkX6aFulHiDjPrRKRnkL0quThc9KEPDhPc,22476
6
+ lockss/turtles/plugin.py,sha256=W929mPGcFIb2X2VoV3C5bRZOf2JMIs25of0MO80rCSk,4709
7
+ lockss/turtles/plugin_registry.py,sha256=naTX2O1lV_107gdG7fFQd7G_UWz0aKNB56nX80paFHY,9441
8
+ lockss/turtles/plugin_set.py,sha256=ZwMAJFx8xFdeki6XIp31u8fEa1vzBa9e6fRQSSENYX8,10776
9
+ lockss/turtles/resources/__init__.py,sha256=uEuqtibBLM9fuwA_xFvzUmLRJsSoVrW-2YM8iyBiLuE,1579
10
+ lockss/turtles/resources/plugin-registry-catalog-schema.json,sha256=etH0ytEXTw1QFFRaxJySCNX9fWP63BXo8n91Snv5Yjc,685
11
+ lockss/turtles/resources/plugin-registry-schema.json,sha256=dvNSxkU0McAe-fYIYBMJ9ezBvRSAW3kvhCcfESq5BrY,2766
12
+ lockss/turtles/resources/plugin-set-catalog-schema.json,sha256=UbB0BCd9jdROGyXf2pZg4GV4lxToM9uBgN5WVyndK4w,650
13
+ lockss/turtles/resources/plugin-set-schema.json,sha256=EeptOiipJdWwfLIxUHXap59Hbq32UXzT2MpI2eADM1U,2338
14
+ lockss/turtles/resources/plugin-signing-credentials-schema.json,sha256=VLld14jOMG8V_ru0jtQD5GunNDNLp2MoRGMSZg9xVn8,753
15
+ lockss/turtles/util.py,sha256=F7t7MH4XRbgybe1x2N0beVNl3M_oGP0hOHFy65I06KQ,2430
16
+ lockss_turtles-0.5.0.dist-info/LICENSE,sha256=JX4FmVNVAGpW35lQahPhK_o2W1mwRa1TmA3yrSOyNWg,1506
17
+ lockss_turtles-0.5.0.dist-info/METADATA,sha256=51rjDbXSGqwftgb4p-2k2LmOp5I0rN9jDWX9iWuzQTk,39523
18
+ lockss_turtles-0.5.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
19
+ lockss_turtles-0.5.0.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
20
+ lockss_turtles-0.5.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.5.2
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,20 +0,0 @@
1
- CHANGELOG.rst,sha256=Lv-bS9-c4dtclJrtlNr8HymmhR283_WgqERmG-Qqg8A,3158
2
- lockss/turtles/__init__.py,sha256=HAsIzJRsUX8X882RVGjPsPcQhq9bDokO6GJU2-Dw5e4,3201
3
- lockss/turtles/__main__.py,sha256=57NMiI-NAibLExMX0Y6QApQhaDUblHTQqCDSiWBVt6k,1633
4
- lockss/turtles/app.py,sha256=X6AoOPPJEKrhcT9kwNXp7J7XO3KLoXdLdozgKf49Ajw,9074
5
- lockss/turtles/cli.py,sha256=yZqmRrGSY_4aMAv6nvx-ax6Lab_ckoNg1BVsOuoGm1U,22476
6
- lockss/turtles/plugin.py,sha256=ewDT3d_QPKnQqO_zuiD2XQaDcJSzoVDPylmFPe_OELU,4312
7
- lockss/turtles/plugin_registry.py,sha256=cgsGSlhNnAuJUOnPeHxRMkJdI_Wmha79Z2cG_Lpq_lw,9441
8
- lockss/turtles/plugin_set.py,sha256=jB8fGMwsYdXcZab_GRcvTahVCnjW94AkyWeHlgg7qLc,10486
9
- lockss/turtles/resources/__init__.py,sha256=qHJYdSSUBYvd4Ib_RPqN0P5G2nHFYrf9UqLsHaN0J8U,1579
10
- lockss/turtles/resources/plugin-registry-catalog-schema.json,sha256=etH0ytEXTw1QFFRaxJySCNX9fWP63BXo8n91Snv5Yjc,685
11
- lockss/turtles/resources/plugin-registry-schema.json,sha256=dvNSxkU0McAe-fYIYBMJ9ezBvRSAW3kvhCcfESq5BrY,2766
12
- lockss/turtles/resources/plugin-set-catalog-schema.json,sha256=UbB0BCd9jdROGyXf2pZg4GV4lxToM9uBgN5WVyndK4w,650
13
- lockss/turtles/resources/plugin-set-schema.json,sha256=EeptOiipJdWwfLIxUHXap59Hbq32UXzT2MpI2eADM1U,2338
14
- lockss/turtles/resources/plugin-signing-credentials-schema.json,sha256=VLld14jOMG8V_ru0jtQD5GunNDNLp2MoRGMSZg9xVn8,753
15
- lockss/turtles/util.py,sha256=g3pGADgnmaQce3pNrpA1VjuSlNUJUAITyPyM6pNdVOA,2430
16
- lockss_turtles-0.4.0.dev4.dist-info/LICENSE,sha256=ArAnVWK-WhSxCVQWDF_PWBETwjSZ35HfugnUJPqPXyg,1506
17
- lockss_turtles-0.4.0.dev4.dist-info/METADATA,sha256=n4mSaXLXMA64gx4Ig88A7DJokrqJWwd1oJjHP9U1pXs,39406
18
- lockss_turtles-0.4.0.dev4.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
19
- lockss_turtles-0.4.0.dev4.dist-info/entry_points.txt,sha256=25BAVFSBRKWAWiXIGZgcr1ypt2mV7nj31Jl8WcNZZOk,51
20
- lockss_turtles-0.4.0.dev4.dist-info/RECORD,,