lockss-turtles 0.4.0.post1__tar.gz → 0.5.0.dev2__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 (19) hide show
  1. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/CHANGELOG.rst +5 -7
  2. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/PKG-INFO +8 -10
  3. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/README.rst +2 -4
  4. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/pyproject.toml +5 -5
  5. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/__init__.py +1 -1
  6. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/plugin.py +9 -0
  7. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/plugin_set.py +7 -3
  8. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/LICENSE +0 -0
  9. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/__main__.py +0 -0
  10. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/app.py +0 -0
  11. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/cli.py +0 -0
  12. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/plugin_registry.py +0 -0
  13. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/resources/__init__.py +0 -0
  14. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/resources/plugin-registry-catalog-schema.json +0 -0
  15. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/resources/plugin-registry-schema.json +0 -0
  16. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/resources/plugin-set-catalog-schema.json +0 -0
  17. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/resources/plugin-set-schema.json +0 -0
  18. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/resources/plugin-signing-credentials-schema.json +0 -0
  19. {lockss_turtles-0.4.0.post1 → lockss_turtles-0.5.0.dev2}/src/lockss/turtles/util.py +0 -0
@@ -2,15 +2,13 @@
2
2
  Release Notes
3
3
  =============
4
4
 
5
- -----------
6
- 0.4.0-post1
7
- -----------
8
-
9
- Released: 2023-05-22
5
+ -----
6
+ 0.5.0
7
+ -----
10
8
 
11
- * **Bugfixes**
9
+ Released: ?
12
10
 
13
- * Documentation fixes.
11
+ * **Features**
14
12
 
15
13
  -----
16
14
  0.4.0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lockss-turtles
3
- Version: 0.4.0.post1
3
+ Version: 0.5.0.dev2
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-post1
37
- .. |RELEASE_DATE| replace:: 2023-05-22
36
+ .. |RELEASE| replace:: 0.5.0-dev1
37
+ .. |RELEASE_DATE| replace:: ?
38
38
 
39
39
  .. |HELP| replace:: ``--help/-h``
40
40
  .. |IDENTIFIER| replace:: ``--identifier/-i``
@@ -436,8 +436,6 @@ The contents are described below:
436
436
 
437
437
  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.
438
438
 
439
- 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.
440
-
441
439
  Plugin Registry Layouts
442
440
  =======================
443
441
 
@@ -2,8 +2,8 @@
2
2
  Turtles
3
3
  =======
4
4
 
5
- .. |RELEASE| replace:: 0.4.0-post1
6
- .. |RELEASE_DATE| replace:: 2023-05-22
5
+ .. |RELEASE| replace:: 0.5.0-dev1
6
+ .. |RELEASE_DATE| replace:: ?
7
7
 
8
8
  .. |HELP| replace:: ``--help/-h``
9
9
  .. |IDENTIFIER| replace:: ``--identifier/-i``
@@ -405,8 +405,6 @@ The contents are described below:
405
405
 
406
406
  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.
407
407
 
408
- 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.
409
-
410
408
  Plugin Registry Layouts
411
409
  =======================
412
410
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "lockss-turtles"
3
- version = "0.4.0-post1"
3
+ version = "0.5.0-dev2"
4
4
  description = "Tool to manage LOCKSS plugin sets and LOCKSS plugin registries"
5
5
  license = "BSD-3-Clause"
6
6
  authors = [
@@ -25,11 +25,11 @@ include = [
25
25
  ]
26
26
 
27
27
  [tool.poetry.dependencies]
28
- python = "^3.7"
28
+ python = "^3.8"
29
29
  java-manifest = "^1.1.0"
30
- jsonschema = "^4.17.3"
31
- pyyaml = "^6.0"
32
- rich-argparse = "^1.1.0"
30
+ jsonschema = "^4.23.0"
31
+ pyyaml = "^6.0.2"
32
+ rich-argparse = "^1.5.2"
33
33
  tabulate = "^0.9.0"
34
34
  xdg = "^6.0.0"
35
35
 
@@ -28,7 +28,7 @@
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-post1'
31
+ __version__ = '0.5.0-dev2'
32
32
 
33
33
  __copyright__ = '''
34
34
  Copyright (c) 2000-2023, Board of Trustees of Leland Stanford Jr. University
@@ -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
 
@@ -160,15 +160,19 @@ 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
+ cur_id = plugin_id
164
164
  # Get all directories for jarplugin -d
165
165
  dirs = list()
166
- cur_id = plugin_id
167
166
  while cur_id is not None:
167
+ cur_plugin = self.make_plugin(cur_id)
168
168
  cur_dir = Plugin.id_to_dir(cur_id)
169
169
  if cur_dir not in dirs:
170
170
  dirs.append(cur_dir)
171
- cur_id = self.make_plugin(cur_id).get_parent_identifier()
171
+ for aux_package in cur_plugin.get_aux_packages():
172
+ aux_dir = Plugin.id_to_dir(f'{aux_package}.FAKEPlugin')
173
+ if aux_dir not in dirs:
174
+ dirs.append(aux_dir)
175
+ cur_id = cur_plugin.get_parent_identifier()
172
176
  # Invoke jarplugin
173
177
  jar_fstr = Plugin.id_to_file(plugin_id)
174
178
  jar_path = self.get_root_path().joinpath('plugins/jars', f'{plugin_id}.jar')