aboutsummaryrefslogtreecommitdiffstats
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md66
1 files changed, 3 insertions, 63 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 227de6c7..4163cfde 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,11 +1,5 @@
- [Contribution policy](#contribution-policy)
- [Adding a new package](#adding-a-new-package)
- - [The anatomy of a package](#the-anatomy-of-a-package)
- - [Package name](#package-name)
- - [Package homepage](#package-homepage)
- - [Package categories](#package-categories)
- - [Package languages](#package-languages)
- - [Package installer](#package-installer)
- [Code style](#code-style)
- [Generated code](#generated-code)
- [Tests](#tests)
@@ -25,63 +19,9 @@ RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as de
# Adding a new package
-Package definitions reside within the `lua/mason-registry` directory. Each package MUST reside in its own directory with
-a main entrypoint file `init.lua`. The name of the directory MUST be the same as the package name. The `init.lua` file
-MUST return a `Package` (`mason-core.package`) instance.
-
-## The anatomy of a package
-
-Each package consists of a specification ([`PackageSpec`](https://github.com/williamboman/mason.nvim/blob/main/doc/reference.md#packagespec)), describing metadata about
-the package as well as its installation instructions. The [`Package`](https://github.com/williamboman/mason.nvim/blob/main/doc/reference.md#package) class encapsulates a
-specification and provides utility methods such as `Package:install()` and `Package:check_new_version({callback})`.
-
-### Package name
-
-The name of a package MUST follow the following naming scheme:
-
-1. If the upstream package name is sufficiently unambiguous, or otherwise widely recognized, that name MUST be used
-1. If the upstream package provides a single executable with a name that is sufficiently unambiguous, or otherwise
- widely recognized, the name of the executable MUST be used
-1. If either the package or executable name is ambiguous, a name where a clarifying prefix or suffix is added SHOULD be
- used
-1. As a last resort, the name of the package should be constructed to best convey its target language and scope, e.g.
- `json-lsp` for a JSON language server.
-
-### Package homepage
-
-A package MUST have a homepage associated with it. The homepage SHOULD be a URL to the landing page of a public website.
-If no public website exists, the homepage MUST be a URL to the source code of the package (e.g. a GitHub repository).
-
-### Package categories
-
-See: [`Package.Cat`](https://github.com/williamboman/mason.nvim/blob/main/doc/reference.md#packagecat)
-
-A package SHOULD belong to one or more categories. Should no category apply, it is a sign that the package's scope
-exceeds that of mason.nvim.
-
-### Package languages
-
-See: [`Package.Lang`](https://github.com/williamboman/mason.nvim/blob/main/doc/reference.md#packagelang)
-
-A package SHOULD belong to one or more languages. There are however situations where no languages apply, in which case
-no languages should be applied.
-
-### Package installer
-
-A package installer MUST be a function. It MAY be an asynchronous function that MUST use the `mason-core.async`
-implementation. The installer function will be invoked by mason when the package is requested to be installed. It will
-be invoked with a single argument of type
-[`InstallContext`](https://github.com/williamboman/mason.nvim/blob/main/doc/reference.md#installcontext). The parameter
-name of the function MUST be `ctx` (abbreviation of context).
-
-Package installers SHOULD make use of the [built-in
-managers](https://github.com/williamboman/mason.nvim/tree/main/lua/mason-core/managers), which provide a high-level API
-for common installation instructions.
-
-A package installer MUST provide a "primary source" describing how, and where, the package was installed from. This is
-done via the `InstallContext` API (`ctx.receipt:with_primary_source({source})`) or via some other API provided by a
-manager. The provided `{source}` MUST be a table with a field `type` that MUST be supported by mason (e.g. `"npm"`,
-`"pip3"`).
+Core `mason.nvim` package definitions reside within the [`github:mason-org/mason-registry`
+registry](https://github.com/mason-org/mason-registry/). Contributions to add new packages MUST be done there (refer to
+the README and existing package definitions).
# Code style