From bcba7ee125f6bf24848e158844c9a37742ed049c Mon Sep 17 00:00:00 2001 From: Alisue Date: Sun, 12 May 2024 21:21:54 +0900 Subject: [PATCH 1/6] :coffee: Follow supported versions of Denops v7 https://github.com/vim-denops/denops.vim/pull/344 --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1f1b2e2..d4454f2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,11 +52,11 @@ jobs: - macos-latest - ubuntu-latest deno_version: - - "1.38.x" + - "1.43.x" - "1.x" host_version: - - vim: "v9.0.2189" - nvim: "v0.9.4" + - vim: "v9.1.0399" + nvim: "v0.9.5" runs-on: ${{ matrix.runner }} From d26cf1156aa9fd210ea9645d5dc6fab2fc174c9a Mon Sep 17 00:00:00 2001 From: Alisue Date: Sun, 12 May 2024 22:42:24 +0900 Subject: [PATCH 2/6] :coffee: Refine `update/update:commit` task --- .github/workflows/update.yml | 2 +- deno.jsonc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index 6feeba9..081d3ea 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -18,7 +18,7 @@ jobs: git config user.name github-actions[bot] git config user.email github-actions[bot]@users.noreply.github.com - name: Update dependencies and commit changes - run: deno task -q upgrade:commit --summary ../title.txt --report ../body.md + run: deno task -q update:commit --summary ../title.txt --report ../body.md - name: Check result id: result uses: andstor/file-existence-action@v2 diff --git a/deno.jsonc b/deno.jsonc index ab93487..17f4ae3 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -4,8 +4,8 @@ "test": "deno test -A --doc --parallel --shuffle", "test:coverage": "deno task test --coverage=.coverage", "coverage": "deno coverage .coverage", - "upgrade": "deno run -q -A https://deno.land/x/molt@0.14.2/cli.ts ./**/*.ts", - "upgrade:commit": "deno task -q upgrade --commit --prefix :package: --pre-commit=fmt" + "update": "deno run --allow-env --allow-read --allow-write=. --allow-run=git,deno --allow-net=jsr.io,registry.npmjs.org jsr:@molt/cli ./*.ts", + "update:commit": "deno task -q update --commit --pre-commit=fmt,lint" }, "imports": { "https://deno.land/x/denops_test@$MODULE_VERSION/": "./" From a9db24cbea83da8bfa74dbb74c5e1b6d9c3d8e9e Mon Sep 17 00:00:00 2001 From: Alisue Date: Sun, 12 May 2024 21:33:57 +0900 Subject: [PATCH 3/6] :boom: Use packages in JSR --- README.md | 16 ++++++++-------- conf.ts | 2 +- deno.jsonc | 10 +++++++++- denops.ts | 9 ++------- error.ts | 4 ++-- mod.ts | 8 ++++---- plugin.ts | 13 +++---------- runner.ts | 6 +++--- stub.ts | 7 +------ stub_test.ts | 9 +++------ tester.ts | 12 ++++++------ tester_test.ts | 6 +----- with.ts | 18 ++++++------------ with_test.ts | 13 +++---------- 14 files changed, 52 insertions(+), 81 deletions(-) diff --git a/README.md b/README.md index 8488417..a7f1509 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,8 @@ If you want to test denops plugins with a real Vim and/or Neovim process, use the `test` function to define a test case, as shown below: ```typescript -import { - assert, - assertEquals, - assertFalse, -} from "https://deno.land/std@0.210.0/assert/mod.ts"; -import { test } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; +import { assert, assertEquals, assertFalse } from "jsr:@std/assert"; +import { test } from "jsr:@denops/test"; test("vim", "Start Vim to test denops features", async (denops) => { assertFalse(await denops.call("has", "nvim")); @@ -72,8 +68,8 @@ the `DenopsStub` class to create a stub instance of the `Denops` interface, as shown below: ```typescript -import { assertEquals } from "https://deno.land/std@0.210.0/assert/mod.ts"; -import { DenopsStub } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; +import { assertEquals } from "jsr:@std/assert"; +import { DenopsStub } from "jsr:@denops/test"; Deno.test("denops.call", async () => { const denops = new DenopsStub({ @@ -158,6 +154,10 @@ jobs: run: deno test -A ``` +## For developers + +This library may be called from denops itself so import map is not available. + ## License The code follows the MIT license, as stated in [LICENSE](./LICENSE). diff --git a/conf.ts b/conf.ts index 51a0499..38763e1 100644 --- a/conf.ts +++ b/conf.ts @@ -1,4 +1,4 @@ -import { resolve } from "https://deno.land/std@0.210.0/path/mod.ts"; +import { resolve } from "jsr:@std/path@0.225.0/resolve"; let conf: Config | undefined; diff --git a/deno.jsonc b/deno.jsonc index 17f4ae3..4434efb 100644 --- a/deno.jsonc +++ b/deno.jsonc @@ -1,4 +1,12 @@ { + "name": "@denops/test", + "version": "0.0.0", + "exports": { + ".": "./mod.ts", + "./stub": "./stub.ts", + "./tester": "./tester.ts", + "./with": "./with.ts" + }, "tasks": { "check": "deno check **/*.ts", "test": "deno test -A --doc --parallel --shuffle", @@ -8,6 +16,6 @@ "update:commit": "deno task -q update --commit --pre-commit=fmt,lint" }, "imports": { - "https://deno.land/x/denops_test@$MODULE_VERSION/": "./" + "jsr:@denops/test": "./mod.ts" } } diff --git a/denops.ts b/denops.ts index ca83dd8..72b668a 100644 --- a/denops.ts +++ b/denops.ts @@ -1,10 +1,5 @@ -import type { - Context, - Denops, - Dispatcher, - Meta, -} from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; -import { Client } from "https://deno.land/x/messagepack_rpc@v2.0.3/mod.ts"; +import type { Context, Denops, Dispatcher, Meta } from "jsr:@denops/core@6.0.6"; +import { Client } from "jsr:@lambdalisue/messagepack-rpc@2.1.1"; export class DenopsImpl implements Denops { readonly name: string; diff --git a/error.ts b/error.ts index 90c0854..d119d4b 100644 --- a/error.ts +++ b/error.ts @@ -1,10 +1,10 @@ -import { is } from "https://deno.land/x/unknownutil@v3.11.0/mod.ts"; +import { is } from "jsr:@core/unknownutil@3.18.0"; import { fromErrorObject, isErrorObject, toErrorObject, tryOr, -} from "https://deno.land/x/errorutil@v0.1.1/mod.ts"; +} from "jsr:@lambdalisue/errorutil@1.0.0"; export function errorSerializer(err: unknown): unknown { if (err instanceof Error) { diff --git a/mod.ts b/mod.ts index 11b5b5e..41e1523 100644 --- a/mod.ts +++ b/mod.ts @@ -27,8 +27,8 @@ * assert, * assertEquals, * assertFalse, - * } from "https://deno.land/std@0.210.0/assert/mod.ts"; - * import { test } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; + * } from "jsr:@std/assert"; + * import { test } from "jsr:@denops/test"; * * test( * "vim", @@ -68,8 +68,8 @@ * shown below: * * ```typescript - * import { assertEquals } from "https://deno.land/std@0.210.0/assert/mod.ts"; - * import { DenopsStub } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; + * import { assertEquals } from "jsr:@std/assert"; + * import { DenopsStub } from "jsr:@denops/test"; * * Deno.test("denops.call", async () => { * const denops = new DenopsStub({ diff --git a/plugin.ts b/plugin.ts index 752fca7..4085044 100644 --- a/plugin.ts +++ b/plugin.ts @@ -1,13 +1,6 @@ -import type { Denops } from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; -import { - assert, - ensure, - is, -} from "https://deno.land/x/unknownutil@v3.11.0/mod.ts"; -import { - Client, - Session, -} from "https://deno.land/x/messagepack_rpc@v2.0.3/mod.ts"; +import type { Denops } from "jsr:@denops/core@6.0.6"; +import { assert, ensure, is } from "jsr:@core/unknownutil@3.18.0"; +import { Client, Session } from "jsr:@lambdalisue/messagepack-rpc@2.1.1"; import { errorDeserializer, errorSerializer } from "./error.ts"; export async function main(denops: Denops): Promise { diff --git a/runner.ts b/runner.ts index 48df795..8b84062 100644 --- a/runner.ts +++ b/runner.ts @@ -1,6 +1,6 @@ -import { mergeReadableStreams } from "https://deno.land/std@0.210.0/streams/merge_readable_streams.ts"; -import { is } from "https://deno.land/x/unknownutil@v3.11.0/mod.ts"; -import { unreachable } from "https://deno.land/x/errorutil@v0.1.1/mod.ts"; +import { mergeReadableStreams } from "jsr:@std/streams@0.224.0/merge-readable-streams"; +import { is } from "jsr:@core/unknownutil@3.18.0"; +import { unreachable } from "jsr:@lambdalisue/errorutil@1.0.0"; import { Config, getConfig } from "./conf.ts"; /** diff --git a/stub.ts b/stub.ts index 9ad39df..ac735ac 100644 --- a/stub.ts +++ b/stub.ts @@ -1,9 +1,4 @@ -import { - Context, - Denops, - Dispatcher, - Meta, -} from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; +import { Context, Denops, Dispatcher, Meta } from "jsr:@denops/core@6.0.6"; /** * Represents a stubber object for `Denops`. diff --git a/stub_test.ts b/stub_test.ts index 6f6dc97..4f9c887 100644 --- a/stub_test.ts +++ b/stub_test.ts @@ -1,9 +1,6 @@ -import { - assertSpyCall, - spy, -} from "https://deno.land/std@0.210.0/testing/mock.ts"; -import { assertEquals } from "https://deno.land/std@0.210.0/assert/mod.ts"; -import { Denops } from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; +import { assertSpyCall, spy } from "jsr:@std/testing@0.224.0/mock"; +import { assertEquals } from "jsr:@std/assert@0.225.1"; +import { Denops } from "jsr:@denops/core@6.0.6"; import { DenopsStub } from "./stub.ts"; Deno.test("`DenopsStub`", async (t) => { diff --git a/tester.ts b/tester.ts index 8ae2770..35e5503 100644 --- a/tester.ts +++ b/tester.ts @@ -1,5 +1,5 @@ -import { sample } from "https://deno.land/std@0.210.0/collections/sample.ts"; -import type { Denops } from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; +import { sample } from "jsr:@std/collections@0.224.1/sample"; +import type { Denops } from "jsr:@denops/core@6.0.6"; import type { RunMode } from "./runner.ts"; import { withDenops } from "./with.ts"; @@ -45,8 +45,8 @@ export interface TestDefinition extends Omit { * tests by passing a `denops` instance to the registered test function. * * ```ts - * import { assert, assertFalse } from "https://deno.land/std@0.210.0/assert/mod.ts"; - * import { test } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; + * import { assert, assertFalse } from "jsr:@std/assert"; + * import { test } from "jsr:@denops/test"; * * test("vim", "Test with Vim", async (denops) => { * assertFalse(await denops.call("has", "nvim")); @@ -74,8 +74,8 @@ export function test( * tests by passing a `denops` instance to the registered test function. * * ```ts - * import { assert, assertFalse } from "https://deno.land/std@0.210.0/assert/mod.ts"; - * import { test } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; + * import { assert, assertFalse } from "jsr:@std/assert"; + * import { test } from "jsr:@denops/test"; * * test({ * mode: "nvim", diff --git a/tester_test.ts b/tester_test.ts index a018459..4205fee 100644 --- a/tester_test.ts +++ b/tester_test.ts @@ -1,8 +1,4 @@ -import { - assert, - assertEquals, - assertFalse, -} from "https://deno.land/std@0.210.0/assert/mod.ts"; +import { assert, assertEquals, assertFalse } from "jsr:@std/assert@0.225.1"; import { test } from "./tester.ts"; test({ diff --git a/with.ts b/with.ts index 7490472..025a9f0 100644 --- a/with.ts +++ b/with.ts @@ -1,13 +1,7 @@ -import { deadline } from "https://deno.land/std@0.210.0/async/mod.ts"; -import { assert, is } from "https://deno.land/x/unknownutil@v3.11.0/mod.ts"; -import { - Client, - Session, -} from "https://deno.land/x/messagepack_rpc@v2.0.3/mod.ts"; -import type { - Denops, - Meta, -} from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; +import { deadline } from "jsr:@std/async@0.224.0/deadline"; +import { assert, is } from "jsr:@core/unknownutil@3.18.0"; +import { Client, Session } from "jsr:@lambdalisue/messagepack-rpc@2.1.1"; +import type { Denops, Meta } from "jsr:@denops/core@6.0.6"; import { getConfig } from "./conf.ts"; import { run, RunMode } from "./runner.ts"; import { DenopsImpl } from "./denops.ts"; @@ -46,8 +40,8 @@ export interface WithDenopsOptions { * internally spawns a Vim/Neovim sub-process, which performs the tests. * * ```ts - * import { assert, assertFalse } from "https://deno.land/std@0.210.0/assert/mod.ts"; - * import { withDenops } from "https://deno.land/x/denops_test@$MODULE_VERSION/mod.ts"; + * import { assert, assertFalse } from "jsr:@std/assert"; + * import { withDenops } from "jsr:@denops/test"; * * Deno.test("Test Denops (Vim)", async () => { * await withDenops("vim", async (denops) => { diff --git a/with_test.ts b/with_test.ts index 4fce556..88f8b5d 100644 --- a/with_test.ts +++ b/with_test.ts @@ -1,13 +1,6 @@ -import { - assert, - assertFalse, - assertRejects, -} from "https://deno.land/std@0.210.0/assert/mod.ts"; -import { - assertSpyCalls, - spy, -} from "https://deno.land/std@0.210.0/testing/mock.ts"; -import type { Denops } from "https://deno.land/x/denops_core@v6.0.2/mod.ts"; +import { assert, assertFalse, assertRejects } from "jsr:@std/assert@0.225.1"; +import { assertSpyCalls, spy } from "jsr:@std/testing@0.224.0/mock"; +import type { Denops } from "jsr:@denops/core@6.0.6"; import { withDenops } from "./with.ts"; Deno.test("test(mode:vim) start vim to test denops features", async () => { From aae0ceb063a26e5c5ee0e0a992914439ce78ef0a Mon Sep 17 00:00:00 2001 From: Alisue Date: Mon, 13 May 2024 02:18:34 +0900 Subject: [PATCH 4/6] :herb: Fix lint errors --- denops.ts | 2 +- runner.ts | 2 +- stub.ts | 2 +- stub_test.ts | 2 +- with.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/denops.ts b/denops.ts index 72b668a..4981c62 100644 --- a/denops.ts +++ b/denops.ts @@ -1,5 +1,5 @@ import type { Context, Denops, Dispatcher, Meta } from "jsr:@denops/core@6.0.6"; -import { Client } from "jsr:@lambdalisue/messagepack-rpc@2.1.1"; +import type { Client } from "jsr:@lambdalisue/messagepack-rpc@2.1.1"; export class DenopsImpl implements Denops { readonly name: string; diff --git a/runner.ts b/runner.ts index 8b84062..e844a8b 100644 --- a/runner.ts +++ b/runner.ts @@ -1,7 +1,7 @@ import { mergeReadableStreams } from "jsr:@std/streams@0.224.0/merge-readable-streams"; import { is } from "jsr:@core/unknownutil@3.18.0"; import { unreachable } from "jsr:@lambdalisue/errorutil@1.0.0"; -import { Config, getConfig } from "./conf.ts"; +import { type Config, getConfig } from "./conf.ts"; /** * Represents the mode in which the runner operates. diff --git a/stub.ts b/stub.ts index ac735ac..e6bbf65 100644 --- a/stub.ts +++ b/stub.ts @@ -1,4 +1,4 @@ -import { Context, Denops, Dispatcher, Meta } from "jsr:@denops/core@6.0.6"; +import type { Context, Denops, Dispatcher, Meta } from "jsr:@denops/core@6.0.6"; /** * Represents a stubber object for `Denops`. diff --git a/stub_test.ts b/stub_test.ts index 4f9c887..3aaad26 100644 --- a/stub_test.ts +++ b/stub_test.ts @@ -1,6 +1,6 @@ import { assertSpyCall, spy } from "jsr:@std/testing@0.224.0/mock"; import { assertEquals } from "jsr:@std/assert@0.225.1"; -import { Denops } from "jsr:@denops/core@6.0.6"; +import type { Denops } from "jsr:@denops/core@6.0.6"; import { DenopsStub } from "./stub.ts"; Deno.test("`DenopsStub`", async (t) => { diff --git a/with.ts b/with.ts index 025a9f0..20a017a 100644 --- a/with.ts +++ b/with.ts @@ -3,7 +3,7 @@ import { assert, is } from "jsr:@core/unknownutil@3.18.0"; import { Client, Session } from "jsr:@lambdalisue/messagepack-rpc@2.1.1"; import type { Denops, Meta } from "jsr:@denops/core@6.0.6"; import { getConfig } from "./conf.ts"; -import { run, RunMode } from "./runner.ts"; +import { run, type RunMode } from "./runner.ts"; import { DenopsImpl } from "./denops.ts"; import { errorDeserializer, errorSerializer } from "./error.ts"; From c1d68cc3cdf35f8daee84ee8086cdb0f9f98839b Mon Sep 17 00:00:00 2001 From: Alisue Date: Sun, 12 May 2024 21:35:21 +0900 Subject: [PATCH 5/6] :coffee: Add GitHub Action for JSR --- .github/workflows/jsr.yml | 27 +++++++++++++++++++++++++++ .github/workflows/test.yml | 11 +++++++++++ 2 files changed, 38 insertions(+) create mode 100644 .github/workflows/jsr.yml diff --git a/.github/workflows/jsr.yml b/.github/workflows/jsr.yml new file mode 100644 index 0000000..2de3f3a --- /dev/null +++ b/.github/workflows/jsr.yml @@ -0,0 +1,27 @@ +name: jsr + +env: + DENO_VERSION: 1.x + +on: + push: + tags: + - "v*" + +permissions: + contents: read + id-token: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: denoland/setup-deno@v1 + with: + deno-version: ${{ env.DENO_VERSION }} + - name: Publish + run: | + deno run -A jsr:@david/publish-on-tag@0.1.3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d4454f2..def7bc9 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -113,3 +113,14 @@ jobs: os: ${{ runner.os }} files: ./coverage.lcov token: ${{ secrets.CODECOV_TOKEN }} + + jsr-publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: denoland/setup-deno@v1 + with: + deno-version: "1.x" + - name: Publish (dry-run) + run: | + deno publish --dry-run From 62224e54274d369d2074ebdf145c67a19e5304aa Mon Sep 17 00:00:00 2001 From: Alisue Date: Mon, 13 May 2024 02:20:32 +0900 Subject: [PATCH 6/6] :memo: Add JSR badge and remove deno.land badges --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index a7f1509..1edef61 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # 📝 denops_test +[![JSR](https://jsr.io/badges/@denops/test)](https://jsr.io/@denops/test) [![Test](https://github.com/vim-denops/deno-denops-test/actions/workflows/test.yml/badge.svg)](https://github.com/vim-denops/deno-denops-test/actions/workflows/test.yml) -[![deno doc](https://doc.deno.land/badge.svg)](https://doc.deno.land/https/deno.land/x/denops_test/mod.ts) -[![deno land](http://img.shields.io/badge/available%20on-deno.land/x/denops__test-lightgrey.svg?logo=deno)](https://deno.land/x/denops_test) [![codecov](https://codecov.io/github/vim-denops/deno-denops-test/branch/main/graph/badge.svg?token=X9O5XB4O1S)](https://codecov.io/github/vim-denops/deno-denops-test) A [Deno] module designed for testing [denops.vim]. This module is intended to be