diff --git a/docs/_toc.yml b/docs/_toc.yml index af1d6061f..5351efcb0 100644 --- a/docs/_toc.yml +++ b/docs/_toc.yml @@ -207,6 +207,7 @@ subtrees: - entries: - file: developers/contributing/documentation/docs_template - file: developers/contributing/documentation/docs_deployment + - file: developers/repositories - file: developers/coredev/core_dev_guide subtrees: - entries: diff --git a/docs/developers/contributing/index.md b/docs/developers/contributing/index.md index 5ba7b626b..e658439d1 100644 --- a/docs/developers/contributing/index.md +++ b/docs/developers/contributing/index.md @@ -5,6 +5,7 @@ We welcome your contributions! Here you will find a guide to the contribution workflow and tips for contributing to napari. If you are looking to learn more about the napari code base, see the [napari architecture guide](architecture-index). +If you are looking for an overview of all the repositories in the napari organization, see the [repository map](napari-repositories). Please [contact](contact) us if you have any queries. ```{note} diff --git a/docs/developers/index.md b/docs/developers/index.md index 176ef77a8..c1e44f22e 100644 --- a/docs/developers/index.md +++ b/docs/developers/index.md @@ -16,6 +16,7 @@ If you are looking to create and deploy your own napari workshop material, check Resources for contributors +- [Repository map](napari-repositories) - [Contributing guide](napari-contributing) - [Development installation](dev-installation) - [Testing](napari-testing) diff --git a/docs/developers/repositories.md b/docs/developers/repositories.md new file mode 100644 index 000000000..762ec1219 --- /dev/null +++ b/docs/developers/repositories.md @@ -0,0 +1,147 @@ +(napari-repositories)= + +# napari repository map + +This page gives contributors a high-level map of the repositories in the +[napari GitHub organization](https://github.com/napari) and related projects. + +The status labels are approximate and should be read as contributor guidance: + +- **Active**: regular feature work or frequent cross-repository coordination. + We welcome contributors to these repositories to help drive forward new features and improvements. + Contributions to these repositories are likely to be more visible, but + may also require more coordination with the core team and other contributors. +- **Maintenance**: stable and useful; bug fixes, documentation updates, and + dependency work are usually the most common changes. + Contributions within this scope will be attended to in a timely manner, while + larger feature contributions may require more discussion and coordination to + ensure they fit with the current direction and scope of the project. +- **Early Development**: new or still changing quickly. Contributions are especially + welcome and can help shape the direction of these projects. These repositories + may be fast changing, but can be easier to contribute to since they have + fewer established conventions and patterns. +- **Backlog**: still relevant, but not a current priority for the core team. + We encourage contributions to these repos to bring them up to speed and + bring functionality to match the original vision for the project. + +## Core application and extensions + +These are the repositories that are most central to the central napari experience. +See [](upstream-dependencies) for libraries that are fundamental to napari functionality +but are developed outside of the napari organization. + +| Repo | Description | Status | +| --- | --- | --- | +| [napari](https://github.com/napari/napari) | Main viewer application and the central repo for layers, events, settings, rendering integration, and releases. | **Active** | +| [napari-console](https://github.com/napari/napari-console) | In-viewer Python console plugin. | Maintenance | +| [napari-svg](https://github.com/napari/napari-svg) | SVG export plugin for napari layers. | Backlog | +| [napari-metadata](https://github.com/napari/napari-metadata) | Metadata editing plugin for layers; included with bundled installs and `napari[optional]`. | Active | + +## Documentation, websites, and communication + +These repos shape how users and contributors discover napari, learn about it, +and interact with project resources online. These repositories are a great place to +contribute, even if you don't have experience with Python, since they mostly involve +writing and design. + +| Repo | Description | Status | +| --- | --- | --- | +| [docs](https://github.com/napari/docs) | Main narrative documentation sources for napari.org, excluding most autogenerated API docs. | Active | +| [workshops](https://github.com/napari/workshops) | Current workshop materials and publishing infrastructure for napari workshops. | Active | +| [napari-sphinx-theme](https://github.com/napari/napari-sphinx-theme) | Shared Sphinx theme and site UI used across napari websites. | Active | +| [island-dispatch](https://github.com/napari/island-dispatch) | Blog for napari news, announcements, and community updates. | Active | +| [weather-report](https://github.com/napari/weather-report) | Public analytics dashboard for project and ecosystem metrics. | Maintenance | +| [resources](https://github.com/napari/resources) | Shared graphics, copy, and brand resources for the project. | Maintenance | +| [napari.github.io](https://github.com/napari/napari.github.io) | Website content and generated assets used to publish napari/docs on napari.org. | Maintenance | +| [meeting-notes](https://github.com/napari/meeting-notes) | Notes from recurring project meetings. | Active | + +## Plugin System + +The plugin ecosystem is built around the `npe2` plugin engine and manifest specification. +The repositories below are focused on supporting the plugin ecosystem, +whether through core plugin infrastructure and development resources. + +| Repo | Description | Status | +| --- | --- | --- | +| [npe2](https://github.com/napari/npe2) | Plugin manifest and engine v2 for the napari plugin ecosystem. | Active | +| [napari-plugin-manager](https://github.com/napari/napari-plugin-manager) | Graphical plugin installer and management UI inside the viewer. | Active | +| [napari-plugin-template](https://github.com/napari/napari-plugin-template) | Main template for creating new napari plugins. | Active | +| [npe2api](https://github.com/napari/npe2api) | API documentation and schema reference site for the npe2 plugin manifest system. | Active | +| [hub-lite](https://github.com/napari/hub-lite) | Static implementation of the napari plugin hub website. | Active | +| [napari-plugin-checks](https://github.com/napari/napari-plugin-checks) | Checks and helper tooling for validating napari plugins. | Backlog | + +## Specialized plugins + +These repos are useful to contributors working on particular workflows or newer +features, but they are not as central as the core application and docs repos. + +| Repo | Description | Status | +| --- | --- | --- | +| [napari-animation](https://github.com/napari/napari-animation) | Plugin for building and exporting animations from viewer state. | Active | +| [napari-geojson](https://github.com/napari/napari-geojson) | GeoJSON support for reading and writing geographic annotation data in napari. | Active | +| [napari-graph](https://github.com/napari/napari-graph) | Graph data structures and algorithms for visualization and editing workflows. | Backlog | +| [napari-tiff](https://github.com/napari/napari-tiff) | TIFF reader and writer plugin maintained by the napari team. | Active | +| [napari-xarray](https://github.com/napari/napari-xarray) | Integration work for xarray-based data and labeled nD arrays in napari. | Backlog | +| [bermuda](https://github.com/napari/bermuda) | Performance-oriented spatial algorithms project, including compiled Rust components. | Maintenance | +| [midi-app-controller](https://github.com/napari/midi-app-controller) | MIDI controller integration for driving the napari UI. | Maintenance | +| [update-checker](https://github.com/napari/update-checker) | Viewer extension for checking whether a bundled napari app has an available update. | Backlog | + +## Release, packaging, and ecosystem tooling + +These repos support packaging, automation, plugin infrastructure, and other +project-level operations. + +| Repo | Description | Status | +| --- | --- | --- | +| [packaging](https://github.com/napari/packaging) | Build and packaging infrastructure for bundled installers and app distribution. | Maintenance | +| [napari-release-tools](https://github.com/napari/napari-release-tools) | Scripts and automation used to streamline the release process. | Active | +| [shared-workflows](https://github.com/napari/shared-workflows) | Reusable GitHub Actions workflows shared across napari repositories. | Active | +| [pins](https://github.com/napari/pins) | Version constraints and compatibility pins for the napari plugin ecosystem. | Backlog | +| [constructor-manager](https://github.com/napari/constructor-manager) | Tooling related to managing constructor-based app bundles. | Backlog | + +(upstream-dependencies)= +## Important upstream dependencies + +The repositories below are not in the `napari` GitHub organization, but they +are important friends of napari that are contributed to by members of the napari community. +The following `pyapp-kit` projects were largely spun out of napari and +continue to be developed in close coordination with napari's needs. + +- [vispy/vispy](https://github.com/vispy/vispy): rendering backend and canvas + infrastructure used by napari. +- [pyapp-kit/magicgui](https://github.com/pyapp-kit/magicgui): automatic widget + generation from Python type hints, widely used in plugins and some napari UI. +- [pyapp-kit/superqt](https://github.com/pyapp-kit/superqt): extended Qt widgets + used by napari and related plugins. +- [pyapp-kit/app-model](https://github.com/pyapp-kit/app-model): action and + command model used by modern napari UI infrastructure. +- [pyapp-kit/psygnal](https://github.com/pyapp-kit/psygnal): typed event and + signal system used across the pyapp-kit and napari ecosystem. + +````{dropdown} Archived and historical repositories + +Archived repositories are included here for completeness. In most cases, new +work should start in a different repository. + +- [cookiecutter-napari-plugin](https://github.com/napari/cookiecutter-napari-plugin): predecessor to `napari-plugin-template`. +- [dummy-test-plugin](https://github.com/napari/dummy-test-plugin): testing plugin used for plugin-system development. +- [image-types](https://github.com/napari/image-types): type-definition experiment for image-oriented Python code. +- [jupyterlab-bot](https://github.com/napari/jupyterlab-bot): historical fork. +- [magicgui](https://github.com/napari/magicgui): mirror of the upstream `pyapp-kit/magicgui` project. +- [napari-core](https://github.com/napari/napari-core): early core repository from before the current `napari` layout. +- [napari-data](https://github.com/napari/napari-data): example-data repository. +- [napari-hello-world](https://github.com/napari/napari-hello-world): example plugin repository. +- [napari-io](https://github.com/napari/napari-io): early IO plugin repository. +- [napari-language-packs](https://github.com/napari/napari-language-packs): repository for downloadable language packs for the napari UI. +- [napari-plugin-devtools](https://github.com/napari/napari-plugin-devtools): tooling repo for plugin developers. +- [napari-plugin-engine](https://github.com/napari/napari-plugin-engine): legacy plugin engine based on pluggy. +- [napari-scipy2025-workshop](https://github.com/napari/napari-scipy2025-workshop): workshop-specific repository for the SciPy 2025 napari tutorial materials. +- [napari-web-experimental](https://github.com/napari/napari-web-experimental): archived exploration of a possible web front end. +- [napari-workshop-template](https://github.com/napari/napari-workshop-template): template for creating napari workshop websites and materials. +- [old-docs](https://github.com/napari/old-docs): documentation repository from an older docs system. +- [plugin-cookiecutter](https://github.com/napari/plugin-cookiecutter): early plugin cookiecutter repository. +- [product-heuristics-2020](https://github.com/napari/product-heuristics-2020): product-heuristics snapshot from 2020. +- [superqt](https://github.com/napari/superqt): mirror of the upstream `pyapp-kit/superqt` project. +- [surveys](https://github.com/napari/surveys): Analysis workflows for napari survey data. + +```` \ No newline at end of file