diff options
Diffstat (limited to 'MAINTAIN.md')
-rw-r--r-- | MAINTAIN.md | 58 |
1 files changed, 47 insertions, 11 deletions
diff --git a/MAINTAIN.md b/MAINTAIN.md index ff5f3fe5a1..3c21b13276 100644 --- a/MAINTAIN.md +++ b/MAINTAIN.md @@ -73,13 +73,17 @@ When a (non-experimental) feature is slated to be removed it should: 1. Be _soft_ deprecated in the _next_ release - Use of the deprecated feature will still work. - - This means deprecating via documentation and annotation (`@deprecated`) only. + - This means deprecating via documentation and annotation (`@deprecated`). - Include a note in `news.txt` under `DEPRECATIONS`. + - For Lua features, use `vim.deprecate()`. The specified version is the + current minor version + 2. For example, if the current version is + `v0.10.0-dev-1957+gd676746c33` then use `0.12`. + - For Vimscript features, use `v:lua.vim.deprecate()`. Use the same version + as described for Lua features. 2. Be _hard_ deprecated in a following a release in which it was soft deprecated. - - Use of the deprecated feature will still work but should issue a warning - (typically via `vim.deprecate()` for Lua features). - - Features implemented in Vimscript or in C will need bespoke implementations - to communicate to users that the feature is deprecated + - Use of the deprecated feature will still work but should issue a warning. + - Features implemented in C will need bespoke implementations to communicate + to users that the feature is deprecated. 3. Be removed in a release following the release in which it was hard deprecated - Usually this will be the next release, but it may be a later release if a longer deprecation cycle is desired @@ -93,7 +97,7 @@ Example: ┆ ┆ ┆ ┆ Soft ┆ Hard ┆ ┆ Deprecation ┆ Deprecation ┆ - ┆ Period ┆ Preiod ┆ + ┆ Period ┆ Period ┆ ──────────────────────────────────────────────────────────── Version: 0.10 0.11 0.12 ──────────────────────────────────────────────────────────── @@ -113,6 +117,11 @@ should be stated explicitly and publicly. Third-party dependencies ------------------------ +For some dependencies we maintain temporary "forks", which are simply private +branches with a few extra patches, while we wait for the upstream project to +merge the patches. This is done instead of maintaining the patches as (fragile) +CMake `PATCH_COMMAND` steps. + These "bundled" dependencies can be updated by bumping their versions in `cmake.deps/deps.txt`. Some can be auto-bumped by `scripts/bump_deps.lua`. @@ -122,12 +131,13 @@ Some can be auto-bumped by `scripts/bump_deps.lua`. * When bumping, also sync [our bundled documentation](https://github.com/neovim/neovim/blob/master/runtime/doc/luvref.txt) with [the upstream documentation](https://github.com/luvit/luv/blob/master/docs.md). * [gettext](https://ftp.gnu.org/pub/gnu/gettext/) * [libiconv](https://ftp.gnu.org/pub/gnu/libiconv) -* [libtermkey](https://github.com/neovim/libtermkey) * [libuv](https://github.com/libuv/libuv) * [libvterm](http://www.leonerd.org.uk/code/libvterm/) + * Downloading from the original source is unreliable, so we use our [mirror](https://github.com/neovim/libvterm) instead. * [lua-compat](https://github.com/keplerproject/lua-compat-5.3) * [tree-sitter](https://github.com/tree-sitter/tree-sitter) * [unibilium](https://github.com/neovim/unibilium) + * The original project [was abandoned](https://github.com/neovim/neovim/issues/10302), so the [neovim/unibilium](https://github.com/neovim/unibilium) fork is considered "upstream" and is maintained on the `master` branch. * [treesitter parsers](https://github.com/neovim/neovim/blob/7e97c773e3ba78fcddbb2a0b9b0d572c8210c83e/cmake.deps/deps.txt#L47-L62) ### Vendored dependencies @@ -146,14 +156,14 @@ These dependencies are "vendored" (inlined), we must update the sources manually * Run `scripts/gen_lsp.lua` to update. * `runtime/lua/vim/_meta/lpeg.lua`: LPeg definitions. * Refer to [`LuaCATS/lpeg`](https://github.com/LuaCATS/lpeg) for updates. + * Update the git SHA revision from which the documentation was taken. * `runtime/lua/vim/re.lua`: LPeg regex module. * Vendored from LPeg. Needs to be updated when LPeg is updated. +* `runtime/lua/vim/_meta/re.lua`: docs for LPeg regex module. + * Needs to be updated when LPeg is updated. * `src/bit.c`: only for PUC lua: port of `require'bit'` from luajit https://bitop.luajit.org/ * `runtime/lua/coxpcall.lua`: coxpcall (only needed for PUC lua, builtin to luajit) - -### Forks - -We may maintain forks, if we are waiting on upstream changes: https://github.com/neovim/neovim/wiki/Deps +* `src/termkey`: [libtermkey](https://github.com/neovim/libtermkey) Non-technical dependencies -------------------------- @@ -168,6 +178,22 @@ Non-technical dependencies * pkgjson.org * DNS for the above domains is managed in https://cloudflare.com (not the domain registrar) + +Refactoring +----------- + +### Frozen legacy modules + +Refactoring Vim structurally and aesthetically is an important goal of Neovim. +But there are some modules that should not be changed significantly, because +they are maintained Vim, at present. Until someone takes "ownership" of these +modules, the cost of any significant changes (including style or structural +changes that re-arrange the code) to these modules outweighs the benefit. The +modules are: + +- `regexp.c` +- `indent_c.c` + Automation (CI) --------------- @@ -199,6 +225,16 @@ https://github.com/neovim/neovim-backup trying to produce images that work in the broadest number of environments, and therefore want to use older releases. +### Special labels + +Some github labels are used to trigger certain jobs: + +* `backport release-x.y` - backport to release branch +* `ci:s390x` - enable s390x CI +* `ci:skip-news` - skip news.yml workflows +* `needs:response` - close PR after a certain amount of time if author doesn't + respond + See also -------- |