From 752915e639a1c70002c885dba530a685b5174d08 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Tue, 7 Jan 2025 06:46:12 +0100 Subject: [PATCH 1/8] telescope: workaround nixpkgs extensions loading early force a reload when telescope is loaded to workaround #535 --- modules/plugins/utility/telescope/config.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/plugins/utility/telescope/config.nix b/modules/plugins/utility/telescope/config.nix index 76cfa8bd3..95f813274 100644 --- a/modules/plugins/utility/telescope/config.nix +++ b/modules/plugins/utility/telescope/config.nix @@ -22,6 +22,12 @@ in { package = "telescope"; setupModule = "telescope"; inherit (cfg) setupOpts; + + # HACK: workaround until https://github.com/NotAShelf/nvf/issues/535 gets resolved + before = '' + vim.g.loaded_telescope = nil + ''; + after = '' local telescope = require("telescope") ${optionalString config.vim.ui.noice.enable "telescope.load_extension('noice')"} From b0fb0a93cb757291bf4537d1cce8c58c77675e30 Mon Sep 17 00:00:00 2001 From: LilleAila Date: Fri, 10 Jan 2025 08:25:08 +0100 Subject: [PATCH 2/8] notes/obsidian: remove default dir-value --- modules/plugins/notes/obsidian/obsidian.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/modules/plugins/notes/obsidian/obsidian.nix b/modules/plugins/notes/obsidian/obsidian.nix index 2dae5a9c7..2da2127ba 100644 --- a/modules/plugins/notes/obsidian/obsidian.nix +++ b/modules/plugins/notes/obsidian/obsidian.nix @@ -24,12 +24,6 @@ in { enable = mkEnableOption "complementary neovim plugins for Obsidian editor"; setupOpts = mkPluginSetupOption "Obsidian.nvim" { - dir = mkOption { - type = str; - default = "~/my-vault"; - description = "Obsidian vault directory"; - }; - daily_notes = { folder = mkOption { type = nullOr str; From 6852120514356fb75a161b73f31f3ce864f6dbef Mon Sep 17 00:00:00 2001 From: LilleAila Date: Fri, 10 Jan 2025 08:53:22 +0100 Subject: [PATCH 3/8] notes/obsidian: add changelog entry --- docs/release-notes/rl-0.8.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 036b673c3..a7e9df873 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -36,3 +36,9 @@ - Add [aerial.nvim] - Add [nvim-ufo] + +[LilleAila](https://github.com/LilleAila): + +[obsidian.nvim](https://github.com/epwalsh/obsidian.nvim) + +- Remove `vim.notes.obsidian.setupOpts.dir`. Fixes issue with setting the workspace directory. From 4e949b3df8d152d9802f44b3fc32da3dc7aaa7fb Mon Sep 17 00:00:00 2001 From: raf Date: Fri, 10 Jan 2025 08:09:52 +0000 Subject: [PATCH 4/8] docs: remove redundant obsidian.nvim link --- docs/release-notes/rl-0.8.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index a7e9df873..e83a978d5 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -39,6 +39,5 @@ [LilleAila](https://github.com/LilleAila): -[obsidian.nvim](https://github.com/epwalsh/obsidian.nvim) - -- Remove `vim.notes.obsidian.setupOpts.dir`. Fixes issue with setting the workspace directory. +- Remove `vim.notes.obsidian.setupOpts.dir`, which was set by default. + Fixes issue with setting the workspace directory. From c734a81e4051cb65d48adbc7c826e5f234df1144 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 10 Jan 2025 12:52:11 +0300 Subject: [PATCH 5/8] languages/nix: deprecate `rnix` language server option Abandoned, archived and wildly outdated. --- flake.lock | 73 ------------------------------- flake.nix | 1 - flake/legacyPackages.nix | 4 +- modules/plugins/languages/nix.nix | 30 ++++++------- 4 files changed, 16 insertions(+), 92 deletions(-) diff --git a/flake.lock b/flake.lock index d4e745c1f..da38b9673 100644 --- a/flake.lock +++ b/flake.lock @@ -51,27 +51,6 @@ "type": "github" } }, - "naersk": { - "inputs": { - "nixpkgs": [ - "rnix-lsp", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1655042882, - "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", - "owner": "nix-community", - "repo": "naersk", - "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "naersk", - "type": "github" - } - }, "nil": { "inputs": { "flake-utils": [ @@ -124,22 +103,6 @@ "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1656753965, - "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nmd": { "flake": false, "locked": { @@ -2110,26 +2073,6 @@ "type": "github" } }, - "rnix-lsp": { - "inputs": { - "naersk": "naersk", - "nixpkgs": "nixpkgs_2", - "utils": "utils" - }, - "locked": { - "lastModified": 1669555118, - "narHash": "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=", - "owner": "nix-community", - "repo": "rnix-lsp", - "rev": "95d40673fe43642e2e1144341e86d0036abd95d9", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "rnix-lsp", - "type": "github" - } - }, "root": { "inputs": { "flake-parts": "flake-parts", @@ -2260,7 +2203,6 @@ "plugin-vim-repeat": "plugin-vim-repeat", "plugin-vim-startify": "plugin-vim-startify", "plugin-which-key": "plugin-which-key", - "rnix-lsp": "rnix-lsp", "systems": "systems_2" } }, @@ -2314,21 +2256,6 @@ "repo": "default", "type": "github" } - }, - "utils": { - "locked": { - "lastModified": 1656928814, - "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index c1fe0688d..89690cadd 100644 --- a/flake.nix +++ b/flake.nix @@ -89,7 +89,6 @@ }; # Language servers (use master instead of nixpkgs) - rnix-lsp.url = "github:nix-community/rnix-lsp"; nil = { url = "github:oxalica/nil"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix index 389ca0ce1..b77d057aa 100644 --- a/flake/legacyPackages.nix +++ b/flake/legacyPackages.nix @@ -8,8 +8,10 @@ inherit system; overlays = [ inputs.self.overlays.default + (_: _: { - rnix-lsp = inputs'.rnix-lsp.defaultPackage; + # Build nil from source to get most recent + # features as they are added. nil = inputs'.nil.packages.default; }) ]; diff --git a/modules/plugins/languages/nix.nix b/modules/plugins/languages/nix.nix index ffb69e923..1120633cf 100644 --- a/modules/plugins/languages/nix.nix +++ b/modules/plugins/languages/nix.nix @@ -26,22 +26,6 @@ then expToLua package else ''{"${package}/bin/${defaultCmd}"}''; servers = { - rnix = { - package = pkgs.rnix-lsp; - internalFormatter = cfg.format.type == "nixpkgs-fmt"; - lspConfig = '' - lspconfig.rnix.setup{ - capabilities = capabilities, - ${ - if (cfg.format.enable && cfg.format.type == "nixpkgs-fmt") - then useFormat - else noFormat - }, - cmd = ${packageToCmd cfg.lsp.package "rnix-lsp"}, - } - ''; - }; - nil = { package = pkgs.nil; internalFormatter = true; @@ -165,6 +149,7 @@ in { type = enum (attrNames formats); default = defaultFormat; }; + package = mkOption { description = "Nix formatter package"; type = package; @@ -188,7 +173,18 @@ in { assertions = [ { assertion = cfg.format.type != "nixpkgs-fmt"; - message = "nixpkgs-fmt has been archived upstream. Please use one of the following instead: ${concatStringsSep ", " (attrNames formats)}"; + message = '' + nixpkgs-fmt has been archived upstream. Please use one of the following available formatters: + ${concatStringsSep ", " (attrNames formats)} + ''; + } + + { + assertion = cfg.lsp.server != "rnix"; + message = '' + rnix-lsp has been archived upstream. Please use one of the following available language servers: + ${concatStringsSep ", " (attrNames servers)} + ''; } ]; vim.pluginRC.nix = '' From c5f16b96c0b1663e6d48ce30aa145cfec3f3698e Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 10 Jan 2025 12:52:49 +0300 Subject: [PATCH 6/8] docs: update v0.8 release notes --- docs/release-notes/rl-0.8.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 5cb58b5a9..c65defeb3 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -21,9 +21,11 @@ warning you that it is invalid. Do keep in mind that this value is no longer checked, so you will be responsible for ensuring its validity. -- Deprecated `vim.enableEditorconfig` in favor of +- Deprecate `vim.enableEditorconfig` in favor of [](#opt-vim.globals.editorconfig). +- Deprecate rnix-lsp as it has been abandoned and archived upstream. + [amadaluzia](https://github.com/amadaluzia): [haskell-tools.nvim]: https://github.com/MrcJkb/haskell-tools.nvim @@ -47,5 +49,5 @@ [LilleAila](https://github.com/LilleAila): -- Remove `vim.notes.obsidian.setupOpts.dir`, which was set by default. - Fixes issue with setting the workspace directory. +- Remove `vim.notes.obsidian.setupOpts.dir`, which was set by default. Fixes + issue with setting the workspace directory. From 6097f7eb11880c2111d4ff27dbbbef8d24adf32e Mon Sep 17 00:00:00 2001 From: raf Date: Fri, 10 Jan 2025 13:35:14 +0300 Subject: [PATCH 7/8] ci: build previews for the website on documentation changes (#494) --- .github/workflows/docs-preview.yml | 172 +++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 .github/workflows/docs-preview.yml diff --git a/.github/workflows/docs-preview.yml b/.github/workflows/docs-preview.yml new file mode 100644 index 000000000..dc5f65439 --- /dev/null +++ b/.github/workflows/docs-preview.yml @@ -0,0 +1,172 @@ +name: Build and Preview Manual + +on: + workflow_dispatch: + pull_request: + types: [opened, synchronize, reopened, closed] + paths: + - ".github/workflows/docs-preview.yml" + - "modules/**" + - "docs/**" + +# Defining permissions here passes it to all workflows. +# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/controlling-permissions-for-github_token +permissions: + contents: write + pull-requests: write + issues: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-preview: + runs-on: ubuntu-latest + steps: + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/magic-nix-cache-action@main + + - name: Checkout + uses: actions/checkout@v4 + + - name: Set default git branch (to reduce log spam) + run: git config --global init.defaultBranch main + + - name: Build documentation packages + run: nix build .#docs-html --print-build-logs + + - name: Deploy to GitHub Pages preview + run: | + PR_NUMBER=${{ github.event.pull_request.number }} + BRANCH_NAME="gh-pages" + PREVIEW_DIR="docs-preview-${PR_NUMBER}" + + # Clone the gh-pages branch and move to the preview subdirectory + git clone --single-branch --branch $BRANCH_NAME https://github.com/${{ github.repository }} gh-pages + cd gh-pages + + mkdir -p $PREVIEW_DIR + + # Copy the build files to the preview subdirectory + cp -rvf ../result/share/doc/nvf/* ./$PREVIEW_DIR + + # Configure git to use the GitHub Actions token for authentication + git config --global user.name "GitHub Actions" + git config --global user.email "actions@github.com" + + # Set the GitHub token for authentication + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} + + # Add and commit the changes + git add --all + git commit -m "Deploy PR #${PR_NUMBER} preview" || echo "No changes to commit" + git push --force origin $BRANCH_NAME + + comment-url: + needs: build-preview + runs-on: ubuntu-latest + steps: + - name: Prepare Environment + id: prelude + run: | + PR_NUMBER=${{ github.event.pull_request.number }} + URL="https://${{ github.repository_owner }}.github.io/nvf/docs-preview-${PR_NUMBER}/" + + # Propagate non-interpolatable environment vars + echo "URL=$URL" >> "$GITHUB_OUTPUT" + echo "REV=$GITHUB_SHA" >> "$GITHUB_OUTPUT" + echo "ACTOR=$GITHUB_ACTOR" >> "$GITHUB_OUTPUT" + echo "REF=$GITHUB_HEAD_REF" >> "$GITHUB_OUTPUT" + echo "RUNS=$GITHUB_RUN_NUMBER" >> "$GITHUB_OUTPUT" + + echo "Live Preview URL: $URL" + echo "Rev: $GITHUB_SHA" + echo "Actor: $GITHUB_ACTOR" + echo "Ref: "$GITHUB_HEAD_REF" + echo "Reruns: "$GITHUB_RUN_NUMBER" + + echo "### :rocket: Live Preview Deployed " >> "$GITHUB_STEP_SUMMARY" + echo "Preview can be found at ${URL}" >> "$GITHUB_STEP_SUMMARY" + + - name: Find Comment + uses: peter-evans/find-comment@v3 + id: fc + with: + comment-author: "github-actions[bot]" + issue-number: ${{ github.event.pull_request.number }} + body-includes: "Live preview deployed" + + - name: Post live preview comment + uses: peter-evans/create-or-update-comment@v4 + env: + COMMENT_ID: ${{ steps.fc.outputs.comment-id }} + URL: ${{ steps.prelude.outputs.URL }} + GITHUB_SHA: ${{ steps.prelude.outputs.REV }} + ACTOR: ${{ steps.prelude.outputs.ACTOR }} + REF: ${{ steps.prelude.outputs.REF }} + RUNS: ${{ steps.prelude.outputs.RUNS }} + with: + comment-id: ${{ env.COMMENT_ID }} + issue-number: ${{ github.event.pull_request.number }} # issue number also applies to pull requests + edit-mode: replace # replace previous body + body: | + ### :rocket: Live preview deployed from ${{ env.GITHUB_SHA }} + + View it [here](${{ env.URL }}): + +
+ Debug Information +

Triggered by: ${{ env.ACTOR }}

+

HEAD at: ${{ env.REF }}

+

Reruns: ${{ env.RUNS }}

+
+ + cleanup: + if: ${{ github.event.pull_request.merged == true || github.event.pull_request.state == 'closed' }} + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Delete preview for closed/merged PR + run: | + PR_NUMBER=${{ github.event.pull_request.number }} + BRANCH_NAME="gh-pages" + PREVIEW_DIR="docs-preview-${PR_NUMBER}" + + # Clone the gh-pages branch + git clone --single-branch --branch $BRANCH_NAME https://github.com/${{ github.repository }} gh-pages + cd gh-pages + + # Check if the preview directory exists, and delete it if it does + if [ -d "$PREVIEW_DIR" ]; then + echo "Deleting preview directory $PREVIEW_DIR" + rm -rf $PREVIEW_DIR + else + echo "Preview directory $PREVIEW_DIR does not exist. Skipping deletion." + fi + + # Configure git to use the GitHub Actions token for authentication + git config --global user.name "GitHub Actions" + git config --global user.email "actions@github.com" + + # Set the GitHub token for authentication + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} + + # Add and commit the changes (only if there's something to delete) + git add . + git diff --quiet || git commit -m "Remove preview for PR #${PR_NUMBER}" + git push origin $BRANCH_NAME + + cleanup-comment: + needs: cleanup + runs-on: ubuntu-latest + steps: + - name: Post cleanup verification + uses: peter-evans/create-or-update-comment@v4 + with: + issue-number: ${{ github.event.pull_request.number }} + body: | + ✅ Preview has been deleted successfully! From 9c8fbc774ffcba67b517649795eba9bc4a99a4f0 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Fri, 10 Jan 2025 13:56:24 +0300 Subject: [PATCH 8/8] ci/docs-preview: double check preview directory deletion --- .github/workflows/docs-preview.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/docs-preview.yml b/.github/workflows/docs-preview.yml index dc5f65439..c38be9da8 100644 --- a/.github/workflows/docs-preview.yml +++ b/.github/workflows/docs-preview.yml @@ -164,6 +164,19 @@ jobs: needs: cleanup runs-on: ubuntu-latest steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Double check preview directory deletion + run: | + # Check if the preview directory exists, and delete it if it does + if [ -d "docs-preview-${{ github.event.pull_request.number }}" ]; then + echo "Something went wrong, preview directory is not deleted." + exit 1 + else + echo "Preview directory has been deleted successfully, proceeding." + fi + - name: Post cleanup verification uses: peter-evans/create-or-update-comment@v4 with: