summaryrefslogtreecommitdiffstatshomepage
path: root/.github
AgeCommit message (Collapse)AuthorFiles
2026-04-21fix(build): more changes to make zig 0.16.0 workbfredl1
2026-04-21feat(build.zig): update to zig 0.16Chinmay Dalal1
2026-04-20ci(backport): drop `needs:backport` label #39244Justin M. Keyes1
Problem: When auto-backport fails, it adds a `needs:backport` label. But that label isn't being used AFAIK, based on the fact there were 30+ old PRs with that label from last year (I have since cleaned those up). So the extra step of having to remove the label is unnecessary friction. In practice, when a manual backport is needed, it's best to either do it immediately or just remove the `backport-xx` label. Also, the presence of an unresolved "Failed backport" comment from the bot is already a kind of marker that indicates a backport is needed. Solution: Don't add `needs:backport` label on failed backport. Reverts https://github.com/neovim/neovim/pull/30363
2026-04-20docs: misc #39207Justin M. Keyes2
2026-04-18docs: misc #39045Justin M. Keyes2
2026-04-17ci: bump the github-actions group across 2 directories with 2 updatesdependabot[bot]2
Bumps the github-actions group with 1 update in the / directory: [github/codeql-action](https://github.com/github/codeql-action). Bumps the github-actions group with 1 update in the /.github/actions/cache directory: [actions/cache](https://github.com/actions/cache). Updates `github/codeql-action` from 4 to 4.35.1 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v4...v4.35.1) Updates `actions/cache` from 5 to 5.0.4 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v5...v5.0.4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: actions/cache dependency-version: 5.0.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
2026-04-16test: lint EXX error codes #8155Justin M. Keyes1
Problem: - Choosing a new EXX error code is tedious. - It's possible to accidentally use an EXX error code for different purposes. Solution: Add a lint check which requires EXX error codes to have a :help tag. This also avoids duplicates because `make doc` does `:helptags ++t doc` which fails if duplicates are found.
2026-04-16ci: bump actions/github-script from 8 to 9 in the github-actions group ↵dependabot[bot]6
across 1 directory (#39121) ci: bump actions/github-script Bumps the github-actions group with 1 update in the / directory: [actions/github-script](https://github.com/actions/github-script). Updates `actions/github-script` from 8 to 9 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15test: replace busted with local harnessLewis Russell1
Replace the busted-based Lua test runner with a repo-local harness. The new harness runs spec files directly under `nvim -ll`, ships its own reporter and lightweight `luassert` shim, and keeps the helper/preload flow used by the functional and unit test suites. Keep the file boundary model shallow and busted-like by restoring `_G`, `package.loaded`, `package.preload`, `arg`, and the process environment between files, without carrying extra reset APIs or custom assertion machinery. Update the build and test entrypoints to use the new runner, add black-box coverage for the harness itself, and drop the bundled busted/luacheck dependency path. AI-assisted: Codex
2026-04-14build: update clang v21, fix warningsdundargoc1
- `src/nvim/ex_cmds_defs.h`: use "U" instead of "u" per `readability-uppercase-literal-suffix`
2026-04-14ci: mention "backport" in PR title #39040Justin M. Keyes1
This doesn't affect the merged commit(s), only the PR title.
2026-04-14docs: lsp, options, api #38980Justin M. Keyes1
docs: lsp, options - revert bogus change to `_meta/builtin_types.lua` from 3a4a66017b74 Close #38991 Co-authored-by: David Mejorado <david.mejorado@gmail.com>
2026-04-02ci: bump korthout/backport-actiondependabot[bot]1
Bumps the github-actions group with 1 update in the / directory: [korthout/backport-action](https://github.com/korthout/backport-action). Updates `korthout/backport-action` from 4.2.0 to 4.3.0 - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/4aaf0e03a94ff0a619c9a511b61aeb42adea5b02...3c06f323a58619da1e8522229ebc8d5de2633e46) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-version: 4.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
2026-03-30ci: bump msys2/setup-msys2 from 2.30.0 to 2.31.0 in the github-actions group ↵dependabot[bot]1
across 1 directory (#38601) ci: bump msys2/setup-msys2 Bumps the github-actions group with 1 update in the / directory: [msys2/setup-msys2](https://github.com/msys2/setup-msys2). Updates `msys2/setup-msys2` from 2.30.0 to 2.31.0 - [Release notes](https://github.com/msys2/setup-msys2/releases) - [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md) - [Commits](https://github.com/msys2/setup-msys2/compare/4f806de0a5a7294ffabaff804b38a9b435a73bda...cafece8e6baf9247cf9b1bf95097b0b983cc558d) --- updated-dependencies: - dependency-name: msys2/setup-msys2 dependency-version: 2.31.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-26ci: bump actions/cachedependabot[bot]1
Bumps the github-actions group with 1 update in the /.github/actions/cache directory: [actions/cache](https://github.com/actions/cache). Updates `actions/cache` from 4 to 5 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23ci: bump actions/create-github-app-token #38436dependabot[bot]1
Bumps the github-actions group with 1 update in the / directory: [actions/create-github-app-token](https://github.com/actions/create-github-app-token). Updates `actions/create-github-app-token` from 2 to 3 - [Release notes](https://github.com/actions/create-github-app-token/releases) - [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/create-github-app-token dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20vim-patch:ecf90b9: CI: make dependabot monitor `.github/actions` directory ↵zeertzjq1
(#38383) and also set `cooldown`, `groups` related: vim/vim#19747 closes: vim/vim#19756 https://github.com/vim/vim/commit/ecf90b92f1175c6185d135847bd0959fe2ff8f97 Co-authored-by: ichizok <gclient.gaap@gmail.com>
2026-03-13build: noisy readability-implicit-bool-conversion warning #38282Justin M. Keyes1
Problem: clangd shows `Implicit conversion 'int' -> 'bool'` warnings. This is mostly noise in this codebase. Solution: - Disable the warning. - Get latest clang-tidy in CI.
2026-03-13ci: label disclosed AI-assisted PRsLewis Russell1
Add a simple AGENTS.md rule for the AI-Assisted trailer in commit messages and a workflow that adds the AI assisted label when PR commits include that trailer. AI-Assisted: Codex
2026-03-12ci: fix broken workflows after Zizmor fixes (#38264)zeertzjq2
- Backport workflow needs to use the credentials. - Release workflow can specify the credentials on the command line.
2026-03-10ci: Zizmor GHA security analysis #38230Daniel Hast1
Add workflow that runs Zizmor, a static analysis tool for GitHub Actions. This will automatically flag various common security issues with CI workflows.
2026-03-09ci: ignore known Zizmor findingsDaniel Hast3
This avoids false positives from existing uses of `GITHUB_ENV` and `pull_request_target` that are safe, as well as from cache usage in a workflow that doesn't produce release artifacts.
2026-03-09ci: eliminate template expansion in code contextsDaniel Hast7
Replace all template expansions in code contexts with environment variable substitutions. Template expansion in code contexts can be a source of code injection vulnerabilities; for more info, see: https://docs.zizmor.sh/audits/#template-injection
2026-03-09ci: set default permissions for workflowsDaniel Hast20
The default workflow permissions are overly broad; setting permissions explicitly at the workflow level ensures excessive permissions are not unintentionally granted to jobs. For details, see: https://docs.zizmor.sh/audits/#excessive-permissions
2026-03-09ci: don't persist git credentials on diskDaniel Hast16
Set `persist-credentials: false` for all uses of `actions/checkout`. This prevents git credentials from being stored on disk, and fixes the following Zizmor audit: https://docs.zizmor.sh/audits/#artipacked
2026-03-09ci: pin third-party action dependencies to commit hashesDaniel Hast5
This improves CI security by ensuring that action dependencies cannot be changed by upstream repositories without updating the use of the dependency in this repo. Official GitHub-maintained actions are excluded from this requirement and are left pinned by a tag instead of a commit hash. This action dependency pinning policy is codified in `.github/zizmor.yml` so that Zizmor (a static analysis tool for GitHub Actions) doesn't flag these as unpinned dependencies. Also add cooldown timer for Dependabot. This fixes these two Zizmor audits: * https://docs.zizmor.sh/audits/#dependabot-cooldown * https://docs.zizmor.sh/audits/#unpinned-uses
2026-03-06ci(cirrus): use parallel functionaltests (#38145)zeertzjq1
Try this since Cirrus CI ran out of compute credits last month. Previously the tests use less than 1 CPU out of the 2 provided by Cirrus runner. I'm not sure if CPU usage is taken into account when counting compute credits, or if it always fully counts the 2 CPUs. But perhaps this will help in either case?
2026-03-04build: adjust parallel functionaltest target names (#38144)zeertzjq2
- Use double underscores for the group targets as these targets usually shouldn't be used directly. - Use dash instead of underscore in the two targets that need to be used directly. I'm not entirely sure about this, as both chars are used in many targets, but a dash is easier to type than an underscore.
2026-02-27ci: bump actions/download-artifact from 7 to 8dependabot[bot]1
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2026-02-27ci: bump actions/upload-artifact from 6 to 7dependabot[bot]1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2026-02-21ci: lint and format treesitter queriesRiley Bruins1
This also adds a `formatquery` rule to write the new format to the query files.
2026-02-18ci(deps): don't brew install ninja on macOSChristian Clason1
Problem: `install_deps.sh` tries to install `ninja` on macOS, but it is installed on the runners by default, triggering warnings (and wasting time) on CI. Solution: Don't `brew install ninja`.
2026-02-18feat(logging): rename ".nvimlog" => "nvim.log" #37935Justin M. Keyes1
- Rename ".nvimlog" to "nvim.log" - doesn't need to be "hidden"/dotfile - ".log" extension helps with filetype detection - Also rename "nvim/log" => "nvim/nvim.log"
2026-02-18test: support running functionaltests in parallel by directory (#37918)zeertzjq2
Define a CMake target for every subdirectory of test/functional that contains functional tests, and a functionaltest_parallel target that depends on all those targets, allowing multiple test runners to run in parallel. On CI, use at most 2 parallel test runners, as using more may increase system load and make tests unstable.
2026-02-17feat(ftplugin): treesitter default highlighting for markdownChristian Clason1
2026-02-14fix(terminal): resuming doesn't work with command in fish (#37857)zeertzjq1
Problem: Resuming terminal process doesn't work with command in fish. Solution: Send SIGCONT to the entire process group. Use killpg() like what bash and zsh do on `fg`: https://cgit.git.savannah.gnu.org/cgit/bash.git/tree/jobs.c?id=637f5c8696a6adc9b4519f1cd74aa78492266b7f#n3928 https://sourceforge.net/p/zsh/code/ci/77045ef899e53b9598bebc5a41db93a548a40ca6/tree/Src/jobs.c#l2674 https://sourceforge.net/p/zsh/code/ci/77045ef899e53b9598bebc5a41db93a548a40ca6/tree/Src/signals.c#l538 Install fish on CI to test this.
2026-02-03ci(test): bump Windows runners to windows-2025 and unskip tests (#37666)zeertzjq2
Bumping to windows-2025 seems to fix at least one case of spaces having wrong attributes in TUI tests, which allow unskipping dozens of tests.
2026-01-23docs: add sections to PR template (#37495)Maria Solano1
2026-01-15build(ci): test zig build -Doptimize=ReleaseSafebfredl1
the ReleaseSafe build mode activates UBSAN rules which was previously untested, most notably `-fsanitize=object-size`
2026-01-11Revert "docs(gh): replace gitter with discussion link"Christian Clason1
This reverts commit a296fcfed49c85b208e1d3c668099b14498672f8.
2026-01-11docs(gh): replace gitter with discussion linkChristian Clason1
2025-12-30build: ship "_core/*" as bytecode (built-into Nvim binary)Justin M. Keyes1
Problem: We want to encourage implementing core features in Lua instead of C, but it's clumsy because: - Core Lua code (built into `nvim` so it is available even if VIMRUNTIME is missing/invalid) requires manually updating CMakeLists.txt, or stuffing it into `_editor.lua`. - Core Lua modules are not organized similar to C modules, `_editor.lua` is getting too big. Solution: - Introduce `_core/` where core Lua code can live. All Lua modules added there will automatically be included as bytecode in the `nvim` binary. - Move these core modules into `_core/*`: ``` _defaults.lua _editor.lua _options.lua _system.lua shared.lua ``` TODO: - Move `_extui/ => _core/ui2/`
2025-12-15ci: bump korthout/backport-action from 3 to 4dependabot[bot]1
Bumps [korthout/backport-action](https://github.com/korthout/backport-action) from 3 to 4. - [Release notes](https://github.com/korthout/backport-action/releases) - [Commits](https://github.com/korthout/backport-action/compare/v3...v4) --- updated-dependencies: - dependency-name: korthout/backport-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15ci: bump actions/upload-artifact from 5 to 6dependabot[bot]1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15ci: bump actions/download-artifact from 6 to 7dependabot[bot]1
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12Merge pull request #36819 from bfredl/zigrtbfredl1
feat(build): make build.zig useful for full runtime install
2025-12-09feat(build): support full runtime distribution workbfredl1
Working towards making the build.zig build actually useful for users.. For building a full runtime distribution in /usr or /opt/nvim or whatever, use sudo zig build install -p /usr by default "zig build" will now work like "make" e.g. just build the binary and the generated parts of the runtime. This will work for development, but you need to use both parts of the runtime, just like with an "uninstalled" cmake build: zig build VIM=. ./zig-out/bin/nvim --clean --cmd "set rtp+=./zig-out/runtime" As a wrapper, `zig build run_dev` can be used
2025-12-08refactor: clint.py => clint.luaJustin M. Keyes1
Problem: `clint.py` is the last python in our codebase, and beyond that it needs some cleanup. And it lacks tests, so modifying it can be painful. Also, we need a way to add ad-hoc lint rules for *Lua*, so it will help to have our ad-hoc rules for C in the same language (the scripts may share functions/techniques): https://github.com/neovim/neovim/issues/28372 Solution: - convert to `clint.lua` (mostly AI-generated, but it now has test coverage, unlike `clint.py`) - drop rules that are no longer needed: - "readability/multiline_string" - technially still relevant, but very uncommon so doesn't really matter. - "--line-length" - Not used in the old clint.py, nor the new clint.lua. - "comment whitespace" check - It is enforced by uncrustify. - "TODO" check - The `-google-readability-function-size` clang-tidy rule enforces "TODO(user)" format. (It was already enabled long ago.)
2025-12-01ci(lintdocurls): use sed `-e` flag to mark argument as command #36776Yochem van Rosmalen1
Problem: Sed thinks the argument starting with `1i` (and triple backticks) is the suffix for the backup file because it comes right after the `-i` flag. See for example https://github.com/neovim/neovim/actions/runs/19774967693/job/56665991723. Solution: Explicitly mark it as command using the `-e` flag.
2025-11-23docs: miscJustin M. Keyes2
Close #36441 Close #36631 Close #36656 Co-authored-by: Maria José Solano <majosolano99@gmail.com> Co-authored-by: glepnir <glephunter@gmail.com> Co-authored-by: "Mike J. McGuirk" <mike.j.mcguirk@gmail.com>