lockss-turtles 0.6.0.dev1__tar.gz → 0.6.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.6.0.dev1 → lockss_turtles-0.6.0.dev2}/CHANGELOG.rst +2 -0
  2. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/PKG-INFO +4 -1
  3. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/pyproject.toml +5 -1
  4. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/__init__.py +1 -1
  5. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/app.py +5 -7
  6. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/LICENSE +0 -0
  7. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/README.rst +0 -0
  8. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/__main__.py +0 -0
  9. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/cli.py +0 -0
  10. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/plugin.py +0 -0
  11. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/plugin_registry.py +0 -0
  12. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/plugin_set.py +0 -0
  13. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/resources/__init__.py +0 -0
  14. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/resources/plugin-registry-catalog-schema.json +0 -0
  15. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/resources/plugin-registry-schema.json +0 -0
  16. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/resources/plugin-set-catalog-schema.json +0 -0
  17. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/resources/plugin-set-schema.json +0 -0
  18. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/resources/plugin-signing-credentials-schema.json +0 -0
  19. {lockss_turtles-0.6.0.dev1 → lockss_turtles-0.6.0.dev2}/src/lockss/turtles/util.py +0 -0
@@ -16,6 +16,8 @@ Released: ?
16
16
 
17
17
  * **Changes**
18
18
 
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``.
20
+
19
21
  * Some long options have been renamed (the short options remain unchanged):
20
22
 
21
23
  ============ ================= =============
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: lockss-turtles
3
- Version: 0.6.0.dev1
3
+ Version: 0.6.0.dev2
4
4
  Summary: Library and command line tool to manage LOCKSS plugin sets and LOCKSS plugin registries
5
5
  License: BSD-3-Clause
6
6
  Author: Thib Guicherd-Callin
@@ -24,7 +24,10 @@ Requires-Dist: lockss-pybasic (>=0.1.0,<0.2.0)
24
24
  Requires-Dist: pydantic (>=2.11.7,<3.0.0)
25
25
  Requires-Dist: pyyaml (>=6.0.0,<6.1.0)
26
26
  Requires-Dist: xdg (>=6.0.0,<6.1.0)
27
+ Project-URL: Documentation, https://docs.lockss.org/en/latest/software/turtles
27
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
28
31
  Description-Content-Type: text/x-rst
29
32
 
30
33
  =======
@@ -28,7 +28,7 @@
28
28
 
29
29
  [project]
30
30
  name = "lockss-turtles"
31
- version = "0.6.0-dev1" # Always change in __init__.py, and at release time in README.rst and CHANGELOG.rst
31
+ version = "0.6.0-dev2" # 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"
@@ -60,7 +60,11 @@ classifiers = [
60
60
  "Topic :: Utilities",
61
61
  ]
62
62
 
63
+ # See https://docs.pypi.org/project_metadata/
63
64
  [project.urls]
65
+ changelog = "https://github.com/lockss/lockss-turtles/blob/main/CHANGELOG.rst"
66
+ documentation = "https://docs.lockss.org/en/latest/software/turtles"
67
+ issues = "https://github.com/lockss/lockss-turtles/issues"
64
68
  repository = "https://github.com/lockss/lockss-turtles"
65
69
 
66
70
  [tool.poetry]
@@ -5,7 +5,7 @@ Library and command line tool to manage LOCKSS plugin sets and LOCKSS plugin
5
5
  registries.
6
6
  """
7
7
 
8
- __version__ = '0.6.0-dev1'
8
+ __version__ = '0.6.0-dev2'
9
9
 
10
10
  __copyright__ = '''
11
11
  Copyright (c) 2000-2025, Board of Trustees of Leland Stanford Jr. University
@@ -45,11 +45,13 @@ from .util import YamlT, load_and_validate
45
45
 
46
46
  class TurtlesApp(object):
47
47
 
48
- XDG_CONFIG_DIR: Path = xdg.xdg_config_home().joinpath(__package__)
48
+ CONFIG_DIR_NAME = 'lockss-turtles'
49
49
 
50
- USR_CONFIG_DIR: Path = Path('/usr/local/share', __package__)
50
+ XDG_CONFIG_DIR: Path = xdg.xdg_config_home().joinpath(CONFIG_DIR_NAME)
51
51
 
52
- ETC_CONFIG_DIR: Path = Path('/etc', __package__)
52
+ USR_CONFIG_DIR: Path = Path('/usr/local/share', CONFIG_DIR_NAME)
53
+
54
+ ETC_CONFIG_DIR: Path = Path('/etc', CONFIG_DIR_NAME)
53
55
 
54
56
  CONFIG_DIRS: List[Path] = [XDG_CONFIG_DIR, USR_CONFIG_DIR, ETC_CONFIG_DIR]
55
57
 
@@ -71,7 +73,6 @@ class TurtlesApp(object):
71
73
  def build_plugin(self, plugin_ids: List[str]) -> Dict[str, Tuple[str, Path, Plugin]]:
72
74
  return {plugin_id: self._build_one_plugin(plugin_id) for plugin_id in plugin_ids}
73
75
 
74
- # Returns (src_path, plugin_id) -> list of (registry_id, layer_id, dst_path, plugin)
75
76
  def deploy_plugin(self, src_paths: List[Path], layer_ids: List[str], interactive: bool=False) -> Dict[Tuple[Path, str], List[Tuple[str, str, Optional[Path], Optional[Plugin]]]]:
76
77
  plugin_ids = [Plugin.id_from_jar(src_path) for src_path in src_paths]
77
78
  return {(src_path, plugin_id): self._deploy_one_plugin(src_path,
@@ -99,7 +100,6 @@ class TurtlesApp(object):
99
100
  with IR.path(__resources__, TurtlesApp.PLUGIN_SIGNING_CREDENTIALS_SCHEMA) as plugin_signing_credentials_schema_path:
100
101
  self._plugin_signing_credentials = load_and_validate(plugin_signing_credentials_schema_path, plugin_signing_credentials_path)
101
102
 
102
- # Returns plugin_id -> list of (registry_id, layer_id, dst_path, plugin)
103
103
  def release_plugin(self, plugin_ids: List[str], layer_ids: List[str], interactive: bool=False) -> Dict[str, List[Tuple[str, str, Path, Plugin]]]:
104
104
  # ... plugin_id -> (set_id, jar_path, plugin)
105
105
  ret1 = self.build_plugin(plugin_ids)
@@ -122,7 +122,6 @@ class TurtlesApp(object):
122
122
  def set_password(self, pw: Union[Callable[[], str], str]) -> None:
123
123
  self._password = pw if callable(pw) else lambda: pw
124
124
 
125
- # Returns (set_id, jar_path, plugin)
126
125
  def _build_one_plugin(self, plugin_id: str) -> Tuple[str, Optional[Path], Optional[Plugin]]:
127
126
  for plugin_set in self._plugin_sets:
128
127
  if plugin_set.has_plugin(plugin_id):
@@ -133,7 +132,6 @@ class TurtlesApp(object):
133
132
  return plugin_set.get_id(), bp[0] if bp else None, bp[1] if bp else None
134
133
  raise Exception(f'{plugin_id}: not found in any plugin set')
135
134
 
136
- # Returns list of (registry_id, layer_id, dst_path, plugin)
137
135
  def _deploy_one_plugin(self, src_jar: Path, plugin_id: str, layer_ids: List[str], interactive: bool=False) -> List[Tuple[str, str, Optional[Path], Optional[Plugin]]]:
138
136
  ret = list()
139
137
  for plugin_registry in self._plugin_registries: