Compare commits

..

1 commit

Author SHA1 Message Date
d393deec8b
build: add luarocks packaging and bump stylua
Problem: oil.nvim had no luarocks rockspec, so users of rocks.nvim
and similar tools could not install it from the registry. The stylua
CI action was also pinned to an older version.

Solution: add scm-1 rockspec and a luarocks publish workflow that
gates on tests passing before publishing on version tags. Bump
stylua action from v2.0.2 to v2.1.0.

Closes: barrettruth/oil.nvim#14
2026-02-21 23:20:26 -05:00
10 changed files with 79 additions and 99 deletions

4
.envrc
View file

@ -1 +1,3 @@
use flake export VIRTUAL_ENV=venv
layout python
python -c 'import pyparsing' 2>/dev/null || pip install -r scripts/requirements.txt

21
.github/workflows/luarocks.yml vendored Normal file
View file

@ -0,0 +1,21 @@
name: luarocks
on:
push:
tags:
- 'v*'
jobs:
tests:
uses: ./.github/workflows/tests.yml
publish:
needs: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nvim-neorocks/luarocks-tag-release@v7
env:
LUAROCKS_API_KEY: ${{ secrets.LUAROCKS_API_KEY }}

View file

@ -10,14 +10,21 @@ on:
- main - main
jobs: jobs:
selene: luacheck:
name: Selene name: Luacheck
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: NTBBloodbath/selene-action@v1.0.0
with: - name: Prepare
args: --display-style quiet . run: |
sudo apt-get update
sudo add-apt-repository universe
sudo apt install luarocks -y
sudo luarocks install luacheck
- name: Run Luacheck
run: luacheck lua tests
stylua: stylua:
name: StyLua name: StyLua
@ -28,7 +35,7 @@ jobs:
uses: JohnnyMorganz/stylua-action@v4 uses: JohnnyMorganz/stylua-action@v4
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
version: v2.0.2 version: v2.1.0
args: --check lua tests args: --check lua tests
typecheck: typecheck:

19
.luacheckrc Normal file
View file

@ -0,0 +1,19 @@
max_comment_line_length = false
codes = true
exclude_files = {
"tests/treesitter",
}
ignore = {
"212", -- Unused argument
"631", -- Line is too long
"122", -- Setting a readonly global
"542", -- Empty if branch
}
read_globals = {
"vim",
"a",
"assert",
}

View file

@ -1,17 +0,0 @@
minimum_pre_commit_version: '3.5.0'
repos:
- repo: https://github.com/JohnnyMorganz/StyLua
rev: v2.3.1
hooks:
- id: stylua-github
name: stylua (Lua formatter)
files: \.lua$
pass_filenames: true
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.8
hooks:
- id: prettier
name: prettier
files: \.(md|toml|yaml|yml|sh)$

View file

@ -17,7 +17,7 @@ test:
.PHONY: lint .PHONY: lint
lint: scripts/nvim-typecheck-action lint: scripts/nvim-typecheck-action
./scripts/nvim-typecheck-action/typecheck.sh --workdir scripts/nvim-typecheck-action lua ./scripts/nvim-typecheck-action/typecheck.sh --workdir scripts/nvim-typecheck-action lua
selene --display-style quiet . luacheck lua tests --formatter plain
stylua --check lua tests stylua --check lua tests
## profile: use LuaJIT profiler to profile the plugin ## profile: use LuaJIT profiler to profile the plugin
@ -45,4 +45,4 @@ scripts/benchmark.nvim:
## clean: reset the repository to a clean state ## clean: reset the repository to a clean state
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf scripts/nvim-typecheck-action .testenv perf/tmp profile.json rm -rf scripts/nvim-typecheck-action venv .testenv perf/tmp profile.json

43
flake.lock generated
View file

@ -1,43 +0,0 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1771207753,
"narHash": "sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d1c15b7d5806069da59e819999d70e1cec0760bf",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"systems": "systems"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View file

@ -1,29 +0,0 @@
{
description = "oil.nvim Neovim file explorer: edit your filesystem like a buffer";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
systems.url = "github:nix-systems/default";
};
outputs =
{
nixpkgs,
systems,
...
}:
let
forEachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
in
{
devShells = forEachSystem (pkgs: {
default = pkgs.mkShell {
packages = [
pkgs.prettier
pkgs.stylua
pkgs.selene
];
};
});
};
}

21
oil.nvim-scm-1.rockspec Normal file
View file

@ -0,0 +1,21 @@
rockspec_format = '3.0'
package = 'oil.nvim'
version = 'scm-1'
source = {
url = 'git+https://github.com/barrettruth/oil.nvim.git',
}
description = {
summary = 'Neovim file explorer: edit your filesystem like a buffer',
homepage = 'https://github.com/barrettruth/oil.nvim',
license = 'MIT',
}
dependencies = {
'lua >= 5.1',
}
build = {
type = 'builtin',
}

View file

@ -1 +0,0 @@
std = 'vim'