napari-plugin-manager 0.1.1__tar.gz → 0.1.3__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 (49) hide show
  1. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/.pre-commit-config.yaml +3 -3
  2. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/PKG-INFO +7 -7
  3. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/README.md +6 -6
  4. napari_plugin_manager-0.1.3/RELEASE.md +21 -0
  5. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_tests/test_qt_plugin_dialog.py +1 -40
  6. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_version.py +2 -2
  7. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/qt_plugin_dialog.py +1 -3
  8. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager.egg-info/PKG-INFO +7 -7
  9. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager.egg-info/SOURCES.txt +1 -0
  10. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/.github/dependabot.yml +0 -0
  11. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/.github/workflows/deploy_docs.yml +0 -0
  12. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/.github/workflows/test_and_deploy.yml +0 -0
  13. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/.gitignore +0 -0
  14. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/LICENSE +0 -0
  15. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/Makefile +0 -0
  16. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/__init__.py +0 -0
  17. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/_static/custom.css +0 -0
  18. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/_static/favicon/logo-noborder-180.png +0 -0
  19. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/_static/favicon/logo-silhouette-192.png +0 -0
  20. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/_static/favicon/logo-silhouette-dark-light.svg +0 -0
  21. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/_templates/navbar-project.html +0 -0
  22. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/_toc.yml +0 -0
  23. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/conf.py +0 -0
  24. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/developers/contributing.md +0 -0
  25. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/docs/index.md +0 -0
  26. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/description.png +0 -0
  27. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/filter.png +0 -0
  28. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/install.png +0 -0
  29. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/logo.png +0 -0
  30. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/status.png +0 -0
  31. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/uninstall.png +0 -0
  32. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/images/update.png +0 -0
  33. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/__init__.py +0 -0
  34. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_tests/__init__.py +0 -0
  35. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_tests/conftest.py +0 -0
  36. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_tests/test_installer_process.py +0 -0
  37. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_tests/test_npe2api.py +0 -0
  38. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/_tests/test_utils.py +0 -0
  39. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/npe2api.py +0 -0
  40. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/qt_package_installer.py +0 -0
  41. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/qt_widgets.py +0 -0
  42. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/styles.qss +0 -0
  43. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager/utils.py +0 -0
  44. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager.egg-info/dependency_links.txt +0 -0
  45. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager.egg-info/requires.txt +0 -0
  46. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/napari_plugin_manager.egg-info/top_level.txt +0 -0
  47. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/pyproject.toml +0 -0
  48. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/setup.cfg +0 -0
  49. {napari_plugin_manager-0.1.1 → napari_plugin_manager-0.1.3}/tox.ini +0 -0
@@ -8,12 +8,12 @@ repos:
8
8
  hooks:
9
9
  - id: pycln
10
10
  - repo: https://github.com/psf/black-pre-commit-mirror
11
- rev: 24.4.2
11
+ rev: 24.8.0
12
12
  hooks:
13
13
  - id: black
14
14
  pass_filenames: true
15
15
  - repo: https://github.com/astral-sh/ruff-pre-commit
16
- rev: v0.5.6
16
+ rev: v0.6.3
17
17
  hooks:
18
18
  - id: ruff
19
19
  - repo: https://github.com/seddonym/import-linter
@@ -22,7 +22,7 @@ repos:
22
22
  - id: import-linter
23
23
  stages: [manual]
24
24
  - repo: https://github.com/python-jsonschema/check-jsonschema
25
- rev: 0.29.1
25
+ rev: 0.29.2
26
26
  hooks:
27
27
  - id: check-github-workflows
28
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: napari-plugin-manager
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: Install plugins for napari, in napari.
5
5
  Author-email: napari team <napari-steering-council@googlegroups.com>
6
6
  License: BSD 3-Clause License
@@ -112,7 +112,7 @@ This package currently provides:
112
112
  the [npe2api service](https://api.napari.org).
113
113
  - The ability to install other packages via URL of by dragging and dropping artifacts from [PyPI].
114
114
 
115
- ![Screenshot of the napari-plugin-manager interface, showcasing the plugin descriptions](./images/description.png)
115
+ ![Screenshot of the napari-plugin-manager interface, showcasing the plugin descriptions](https://raw.githubusercontent.com/napari/napari-plugin-manager/refs/heads/main/images/description.png)
116
116
 
117
117
  `napari-plugin-manager` knows how to detect if napari was installed using `conda` or `pip` and
118
118
  provide the appropriate default installer tool on the `Installation Info` dropdown for each plugin.
@@ -161,7 +161,7 @@ In the image below filtering by the word `arcos` yields a single plugin, the
161
161
  `arcos-gui` plugin. Notice that plugins that provide a display name, will show
162
162
  the package name to the right in parenthesis.
163
163
 
164
- ![Screenshot of the napari-plugin-manager interface showcasing the filtering features with the query 'arcos'](./images/filter.png)
164
+ ![Screenshot of the napari-plugin-manager interface showcasing the filtering features with the query 'arcos'](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/filter.png)
165
165
 
166
166
  ### Refreshing
167
167
 
@@ -184,7 +184,7 @@ You can cancel the process at any time by clicking the `Cancel` button of each p
184
184
  [conda-forge channel](https://anaconda.org/conda-forge/). Some plugins will require
185
185
  a restart to be properly configured.
186
186
 
187
- ![Screenshot of the napari-plugin-manager showing the process of installing a plugin](./images/install.png)
187
+ ![Screenshot of the napari-plugin-manager showing the process of installing a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/install.png)
188
188
 
189
189
  ### Uninstalling a plugin
190
190
 
@@ -198,7 +198,7 @@ You can cancel the process at any time by clicking the `Cancel` button of each p
198
198
 
199
199
  **Note**: Some plugins will require a restart to be properly removed.
200
200
 
201
- ![Screenshot of the napari-plugin-manager showing the process of uninstalling a plugin](./images/uninstall.png)
201
+ ![Screenshot of the napari-plugin-manager showing the process of uninstalling a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/uninstall.png)
202
202
 
203
203
  ### Updating a plugin
204
204
 
@@ -213,7 +213,7 @@ filtering by name or description.
213
213
 
214
214
  You can cancel the process at any time by clicking the `Cancel` button of each plugin.
215
215
 
216
- ![Screenshot of the napari-plugin-manager showing the process of updating a plugin](./images/update.png)
216
+ ![Screenshot of the napari-plugin-manager showing the process of updating a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/update.png)
217
217
 
218
218
  ### Batch actions
219
219
 
@@ -236,7 +236,7 @@ Some issues that you might experience when using the installer include:
236
236
  * Incompatible packages due to conflicting dependencies.
237
237
  * Network connectivity errors.
238
238
 
239
- ![Screenshot of the napari-plugin-amanger interface showcasing the status information, which is initially hidden by default.](./images/status.png)
239
+ ![Screenshot of the napari-plugin-manager interface showcasing the status information, which is initially hidden by default.](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/status.png)
240
240
 
241
241
  ## License
242
242
 
@@ -30,7 +30,7 @@ This package currently provides:
30
30
  the [npe2api service](https://api.napari.org).
31
31
  - The ability to install other packages via URL of by dragging and dropping artifacts from [PyPI].
32
32
 
33
- ![Screenshot of the napari-plugin-manager interface, showcasing the plugin descriptions](./images/description.png)
33
+ ![Screenshot of the napari-plugin-manager interface, showcasing the plugin descriptions](https://raw.githubusercontent.com/napari/napari-plugin-manager/refs/heads/main/images/description.png)
34
34
 
35
35
  `napari-plugin-manager` knows how to detect if napari was installed using `conda` or `pip` and
36
36
  provide the appropriate default installer tool on the `Installation Info` dropdown for each plugin.
@@ -79,7 +79,7 @@ In the image below filtering by the word `arcos` yields a single plugin, the
79
79
  `arcos-gui` plugin. Notice that plugins that provide a display name, will show
80
80
  the package name to the right in parenthesis.
81
81
 
82
- ![Screenshot of the napari-plugin-manager interface showcasing the filtering features with the query 'arcos'](./images/filter.png)
82
+ ![Screenshot of the napari-plugin-manager interface showcasing the filtering features with the query 'arcos'](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/filter.png)
83
83
 
84
84
  ### Refreshing
85
85
 
@@ -102,7 +102,7 @@ You can cancel the process at any time by clicking the `Cancel` button of each p
102
102
  [conda-forge channel](https://anaconda.org/conda-forge/). Some plugins will require
103
103
  a restart to be properly configured.
104
104
 
105
- ![Screenshot of the napari-plugin-manager showing the process of installing a plugin](./images/install.png)
105
+ ![Screenshot of the napari-plugin-manager showing the process of installing a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/install.png)
106
106
 
107
107
  ### Uninstalling a plugin
108
108
 
@@ -116,7 +116,7 @@ You can cancel the process at any time by clicking the `Cancel` button of each p
116
116
 
117
117
  **Note**: Some plugins will require a restart to be properly removed.
118
118
 
119
- ![Screenshot of the napari-plugin-manager showing the process of uninstalling a plugin](./images/uninstall.png)
119
+ ![Screenshot of the napari-plugin-manager showing the process of uninstalling a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/uninstall.png)
120
120
 
121
121
  ### Updating a plugin
122
122
 
@@ -131,7 +131,7 @@ filtering by name or description.
131
131
 
132
132
  You can cancel the process at any time by clicking the `Cancel` button of each plugin.
133
133
 
134
- ![Screenshot of the napari-plugin-manager showing the process of updating a plugin](./images/update.png)
134
+ ![Screenshot of the napari-plugin-manager showing the process of updating a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/update.png)
135
135
 
136
136
  ### Batch actions
137
137
 
@@ -154,7 +154,7 @@ Some issues that you might experience when using the installer include:
154
154
  * Incompatible packages due to conflicting dependencies.
155
155
  * Network connectivity errors.
156
156
 
157
- ![Screenshot of the napari-plugin-amanger interface showcasing the status information, which is initially hidden by default.](./images/status.png)
157
+ ![Screenshot of the napari-plugin-manager interface showcasing the status information, which is initially hidden by default.](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/status.png)
158
158
 
159
159
  ## License
160
160
 
@@ -0,0 +1,21 @@
1
+ # Release Procedure
2
+
3
+ Here you can find some information about how to trigger a new release over PyPI and subsequent `conda-forge` update.
4
+
5
+ ## PyPI
6
+
7
+ To release on PyPI you will need to create a new tag. To do so you can:
8
+
9
+ * Create a [new GitHub release](https://github.com/napari/napari-plugin-manager/releases/new)
10
+ * Use over the new release GitHub page the `Choose a tag` dropdown to create a new tag (it should be something like `vX.Y.Z` incrementing the major, minor or patch number as required).
11
+ * Once the tag is defined you should be able to click `Generate release notes`.
12
+ * Put as release title the tag that was created (`vX.Y.Z`).
13
+ * Publish the release, check that the deploy step was run successfully and that the new version is available at [PyPI](https://pypi.org/project/napari-plugin-manager/#history)
14
+
15
+ ## conda-forge
16
+
17
+ To update the `conda-forge` package you will need to update the [`napari-plugin-manager` feedstock](https://github.com/conda-forge/napari-plugin-manager-feedstock). **If a new version is already available from PyPI**, you can either wait for the automated PR or trigger one manually:
18
+
19
+ * Create an issue over the feedstock with the title: [`@conda-forge-admin, please update version`](https://conda-forge.org/docs/maintainer/infrastructure/#conda-forge-admin-please-update-version)
20
+ * Tweak the generated PR if necessary (dependencies changes for example).
21
+ * Merge the generated PR.
@@ -1,6 +1,5 @@
1
1
  import importlib.metadata
2
2
  import os
3
- import platform
4
3
  import sys
5
4
  from typing import Generator, Optional, Tuple
6
5
  from unittest.mock import patch
@@ -14,9 +13,7 @@ from napari.utils.translations import trans
14
13
  from qtpy.QtCore import QMimeData, QPointF, Qt, QUrl
15
14
  from qtpy.QtGui import QDropEvent
16
15
 
17
- if (qtpy.API_NAME == 'PySide2') or (
18
- sys.version_info[:2] > (3, 10) and platform.system() == "Linux"
19
- ):
16
+ if qtpy.API_NAME == 'PySide2' and sys.version_info[:2] > (3, 10):
20
17
  pytest.skip(
21
18
  "Known PySide2 x Python incompatibility: "
22
19
  "... object cannot be interpreted as an integer",
@@ -408,12 +405,6 @@ def test_add_items_outdated_and_update(plugin_dialog, qtbot):
408
405
  assert widget.version.toolTip() == updated_version
409
406
 
410
407
 
411
- @pytest.mark.skipif(
412
- qtpy.API_NAME.lower().startswith('pyside')
413
- and sys.version_info[:2] > (3, 10)
414
- and platform.system() == "Darwin",
415
- reason='pyside specific bug',
416
- )
417
408
  def test_refresh(qtbot, plugin_dialog):
418
409
  with qtbot.waitSignal(plugin_dialog._add_items_timer.timeout, timeout=500):
419
410
  plugin_dialog.refresh(clear_cache=False)
@@ -425,12 +416,6 @@ def test_refresh(qtbot, plugin_dialog):
425
416
  plugin_dialog._refresh_and_clear_cache()
426
417
 
427
418
 
428
- @pytest.mark.skipif(
429
- qtpy.API_NAME.lower().startswith('pyside')
430
- and sys.version_info[:2] > (3, 10)
431
- and platform.system() == "Darwin",
432
- reason='pyside specific bug',
433
- )
434
419
  def test_toggle_status(plugin_dialog):
435
420
  plugin_dialog.toggle_status(True)
436
421
  assert plugin_dialog.stdout_text.isVisible()
@@ -438,22 +423,10 @@ def test_toggle_status(plugin_dialog):
438
423
  assert not plugin_dialog.stdout_text.isVisible()
439
424
 
440
425
 
441
- @pytest.mark.skipif(
442
- qtpy.API_NAME.lower().startswith('pyside')
443
- and sys.version_info[:2] > (3, 10)
444
- and platform.system() == "Darwin",
445
- reason='pyside specific bug',
446
- )
447
426
  def test_exec(plugin_dialog):
448
427
  plugin_dialog.exec_()
449
428
 
450
429
 
451
- @pytest.mark.skipif(
452
- qtpy.API_NAME.lower().startswith('pyside')
453
- and sys.version_info[:2] > (3, 10)
454
- and platform.system() == "Darwin",
455
- reason='pyside specific bug',
456
- )
457
430
  def test_search_in_available(plugin_dialog):
458
431
  idxs = plugin_dialog._search_in_available("test")
459
432
  assert idxs == [0, 1, 2, 3]
@@ -476,9 +449,6 @@ def test_drop_event(plugin_dialog, tmp_path):
476
449
  assert plugin_dialog.direct_entry_edit.text() == str(path_1)
477
450
 
478
451
 
479
- @pytest.mark.skipif(
480
- qtpy.API_NAME.lower().startswith('pyside'), reason='pyside specific bug'
481
- )
482
452
  def test_installs(qtbot, tmp_virtualenv, plugin_dialog, request):
483
453
  if "[constructor]" in request.node.name:
484
454
  pytest.skip(
@@ -499,9 +469,6 @@ def test_installs(qtbot, tmp_virtualenv, plugin_dialog, request):
499
469
  qtbot.wait(5000)
500
470
 
501
471
 
502
- @pytest.mark.skipif(
503
- qtpy.API_NAME.lower().startswith('pyside'), reason='pyside specific bug'
504
- )
505
472
  def test_cancel(qtbot, tmp_virtualenv, plugin_dialog, request):
506
473
  if "[constructor]" in request.node.name:
507
474
  pytest.skip(
@@ -524,9 +491,6 @@ def test_cancel(qtbot, tmp_virtualenv, plugin_dialog, request):
524
491
  assert plugin_dialog.installed_list.count() == 2
525
492
 
526
493
 
527
- @pytest.mark.skipif(
528
- qtpy.API_NAME.lower().startswith('pyside'), reason='pyside specific bug'
529
- )
530
494
  def test_cancel_all(qtbot, tmp_virtualenv, plugin_dialog, request):
531
495
  if "[constructor]" in request.node.name:
532
496
  pytest.skip(
@@ -547,9 +511,6 @@ def test_cancel_all(qtbot, tmp_virtualenv, plugin_dialog, request):
547
511
  assert plugin_dialog.installed_list.count() == 2
548
512
 
549
513
 
550
- @pytest.mark.skipif(
551
- qtpy.API_NAME.lower().startswith('pyside'), reason='pyside specific bug'
552
- )
553
514
  def test_direct_entry_installs(qtbot, tmp_virtualenv, plugin_dialog, request):
554
515
  if "[constructor]" in request.node.name:
555
516
  pytest.skip(
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.1.1'
16
- __version_tuple__ = version_tuple = (0, 1, 1)
15
+ __version__ = version = '0.1.3'
16
+ __version_tuple__ = version_tuple = (0, 1, 3)
@@ -104,9 +104,7 @@ class PluginListItem(QFrame):
104
104
  author, source, version, and buttons to update, install/uninstall, etc."""
105
105
 
106
106
  # item, package_name, action_name, version, installer_choice
107
- actionRequested = Signal(
108
- QListWidgetItem, str, InstallerActions, str, InstallerTools
109
- )
107
+ actionRequested = Signal(QListWidgetItem, str, object, str, object)
110
108
 
111
109
  def __init__(
112
110
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: napari-plugin-manager
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: Install plugins for napari, in napari.
5
5
  Author-email: napari team <napari-steering-council@googlegroups.com>
6
6
  License: BSD 3-Clause License
@@ -112,7 +112,7 @@ This package currently provides:
112
112
  the [npe2api service](https://api.napari.org).
113
113
  - The ability to install other packages via URL of by dragging and dropping artifacts from [PyPI].
114
114
 
115
- ![Screenshot of the napari-plugin-manager interface, showcasing the plugin descriptions](./images/description.png)
115
+ ![Screenshot of the napari-plugin-manager interface, showcasing the plugin descriptions](https://raw.githubusercontent.com/napari/napari-plugin-manager/refs/heads/main/images/description.png)
116
116
 
117
117
  `napari-plugin-manager` knows how to detect if napari was installed using `conda` or `pip` and
118
118
  provide the appropriate default installer tool on the `Installation Info` dropdown for each plugin.
@@ -161,7 +161,7 @@ In the image below filtering by the word `arcos` yields a single plugin, the
161
161
  `arcos-gui` plugin. Notice that plugins that provide a display name, will show
162
162
  the package name to the right in parenthesis.
163
163
 
164
- ![Screenshot of the napari-plugin-manager interface showcasing the filtering features with the query 'arcos'](./images/filter.png)
164
+ ![Screenshot of the napari-plugin-manager interface showcasing the filtering features with the query 'arcos'](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/filter.png)
165
165
 
166
166
  ### Refreshing
167
167
 
@@ -184,7 +184,7 @@ You can cancel the process at any time by clicking the `Cancel` button of each p
184
184
  [conda-forge channel](https://anaconda.org/conda-forge/). Some plugins will require
185
185
  a restart to be properly configured.
186
186
 
187
- ![Screenshot of the napari-plugin-manager showing the process of installing a plugin](./images/install.png)
187
+ ![Screenshot of the napari-plugin-manager showing the process of installing a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/install.png)
188
188
 
189
189
  ### Uninstalling a plugin
190
190
 
@@ -198,7 +198,7 @@ You can cancel the process at any time by clicking the `Cancel` button of each p
198
198
 
199
199
  **Note**: Some plugins will require a restart to be properly removed.
200
200
 
201
- ![Screenshot of the napari-plugin-manager showing the process of uninstalling a plugin](./images/uninstall.png)
201
+ ![Screenshot of the napari-plugin-manager showing the process of uninstalling a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/uninstall.png)
202
202
 
203
203
  ### Updating a plugin
204
204
 
@@ -213,7 +213,7 @@ filtering by name or description.
213
213
 
214
214
  You can cancel the process at any time by clicking the `Cancel` button of each plugin.
215
215
 
216
- ![Screenshot of the napari-plugin-manager showing the process of updating a plugin](./images/update.png)
216
+ ![Screenshot of the napari-plugin-manager showing the process of updating a plugin](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/update.png)
217
217
 
218
218
  ### Batch actions
219
219
 
@@ -236,7 +236,7 @@ Some issues that you might experience when using the installer include:
236
236
  * Incompatible packages due to conflicting dependencies.
237
237
  * Network connectivity errors.
238
238
 
239
- ![Screenshot of the napari-plugin-amanger interface showcasing the status information, which is initially hidden by default.](./images/status.png)
239
+ ![Screenshot of the napari-plugin-manager interface showcasing the status information, which is initially hidden by default.](https://raw.githubusercontent.com/napari/napari-plugin-manager/main/images/status.png)
240
240
 
241
241
  ## License
242
242
 
@@ -3,6 +3,7 @@
3
3
  LICENSE
4
4
  Makefile
5
5
  README.md
6
+ RELEASE.md
6
7
  pyproject.toml
7
8
  tox.ini
8
9
  .github/dependabot.yml