Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions .clj-kondo/config.edn
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
{:linters
{:aliased-namespace-symbol {:level :error}
:aliased-namespace-var-usage {:level :error}
:aliased-referred-var {:level :error}
:case-quoted-test {:level :error}
:case-symbol-test {:level :error}
:clj-kondo-config {:level :error}
:cond-else {:level :error}
:condition-always-true {:level :error}
:consistent-alias {:level :error
:aliases {clojure.edn edn
clojure.set set
clojure.spec.alpha s
clojure.spec.gen.alpha gen
clojure.string str
clojure.test t}}
:def-fn {:level :error}
:deprecated-namespace {:level :error}
:deprecated-var {:level :error}
:destructured-or-always-evaluates {:level :error}
:destructured-or-binding-of-same-map {:level :error}
:discouraged-java-method {:level :error}
:discouraged-namespace {:level :error}
:discouraged-tag {:level :error}
:discouraged-var {:level :error}
:do-template {:level :error}
:docstring-leading-trailing-whitespace {:level :error}
:docstring-no-summary {:level :error}
:duplicate-key-args {:level :error}
:duplicate-refer {:level :error}
:earmuffed-var-not-dynamic {:level :error}
:equals-expected-position {:level :error
:position :first}
:equals-false {:level :error}
:equals-float {:level :error}
:equals-nil {:level :error}
:equals-true {:level :error}
:if-nil-return {:level :error}
:inline-def {:level :error}
:is-message-not-string {:level :error}
:keyword-binding {:level :error}
:line-length {:level :error
:max-line-length 120}
:locking-suspicious-lock {:level :error}
:loop-without-recur {:level :error}
:main-without-gen-class {:level :error}
:min-clj-kondo-version {:level :error}
:minus-one {:level :error}
:missing-body-in-when {:level :error}
:missing-clause-in-try {:level :error}
:missing-docstring {:level :error}
:missing-else-branch {:level :error}
:missing-protocol-method {:level :error}
:missing-test-assertion {:level :error}
:multiple-async-in-deftest {:level :error}
:non-arg-vec-return-type-hint {:level :error}
:not-empty? {:level :error}
:plus-one {:level :error}
:reduce-without-init {:level :error}
:redundant-call {:level :error}
:redundant-do {:level :error}
:redundant-expression {:level :error}
:redundant-fn-wrapper {:level :error}
:redundant-format {:level :error}
:redundant-ignore {:level :error}
:redundant-let {:level :error}
:redundant-let-binding {:level :error}
:redundant-nested-call {:level :error}
:redundant-primitive-coercion {:level :error}
:redundant-str-call {:level :error}
:refer {:level :error}
:refer-all {:level :error}
:redefined-var {:level :error}
:schema-misplaced-return {:level :error}
:self-requiring-namespace {:level :error}
:shadowed-fn-param {:level :error}
:shadowed-var {:level :error}
:single-key-in {:level :error}
:single-logical-operand {:level :error}
:single-operand-comparison {:level :error}
:underscore-in-namespace {:level :error}
:unbound-destructuring-default {:level :error}
:uninitialized-var {:level :error}
:unreachable-code {:level :error}
:unresolved-excluded-var {:level :error}
:unresolved-namespace {:level :error}
:unresolved-protocol-method {:level :error}
:unresolved-var {:level :error}
:unquote-not-syntax-quoted {:level :error}
:unsorted-imports {:level :error}
:unsorted-required-namespaces {:level :error
:sort :case-insensitive}
:unused-alias {:level :error}
:unused-binding {:level :error
:exclude-destructured-keys-in-fn-args false
:exclude-destructured-as false
:exclude-defmulti-args false}
:unused-excluded-var {:level :error}
:unused-import {:level :error}
:unused-namespace {:level :error
:simple-libspec false}
:unused-private-var {:level :error}
:unused-referred-var {:level :error}
:unused-value {:level :error}
:use {:level :error}
:used-underscored-binding {:level :error}
:var-same-name-except-case {:level :error}
:warn-on-reflection {:level :error
:warn-only-on-interop true}}}
88 changes: 72 additions & 16 deletions .github/workflows/clojure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
name: Set up Java
with:
distribution: temurin
java-version: 11
java-version: 21
- uses: actions/setup-python@v4
name: Set up Python
with:
Expand All @@ -34,10 +34,6 @@ jobs:
with:
path: ~/.cache/pre-commit
key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
- name: Docker cache
uses: ScribeMD/docker-cache@0.3.6
with:
key: ${{ runner.os }}-docker-${{ hashFiles('.pre-commit-config.yaml') }}
- uses: actions/cache@v3
name: Clojure cache
with:
Expand All @@ -47,19 +43,79 @@ jobs:
~/.clojure
~/.cpcache
key: ${{ runner.os }}-clojure-${{ hashFiles('deps.edn') }}
- name: Install Clojure
run: |
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/posix-install.sh
chmod +x posix-install.sh
sudo ./posix-install.sh
rm posix-install.sh
- name: Install Clojure tools
uses: DeLaGuardo/setup-clojure@13
with:
cli: latest
bb: latest
clj-kondo: 2026.01.19
cljstyle: 0.15.0
- name: Run pre-commit hooks
run: |
pip install -r requirements.txt
pre-commit run --all-files
- name: Run clj tests
run: bin/test clj
- name: Run cljs tests
SKIP=kaocha-test pre-commit run --all-files
- name: Run tests
run: |
npm install
bin/test cljs
bin/kaocha
- name: Upload coverage artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: target/coverage
if-no-files-found: warn
- name: Upload JUnit XML artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: junit-xml
path: target/test-results/junit.xml
if-no-files-found: warn

spec-parity:
runs-on: ubuntu-latest

env:
SQIDS_SPEC_DIR: ${{ github.workspace }}/target/sqids-spec

steps:
- uses: actions/checkout@v3
name: Check out repository
- uses: actions/checkout@v3
name: Check out sqids-spec
with:
repository: sqids/sqids-spec
ref: main
path: target/sqids-spec
- uses: actions/setup-node@v4
name: Set up Node
with:
node-version: lts/*
cache: npm
cache-dependency-path: |
package-lock.json
target/sqids-spec/package-lock.json
- uses: actions/setup-java@v4
name: Set up Java
with:
distribution: temurin
java-version: 21
- uses: actions/cache@v3
name: Clojure cache
with:
path: |
~/.m2/repository
~/.gitlibs
~/.clojure
~/.cpcache
key: ${{ runner.os }}-clojure-${{ hashFiles('deps.edn') }}
- name: Install Clojure tools
uses: DeLaGuardo/setup-clojure@13
with:
cli: latest
- name: Install sqids-spec dependencies
working-directory: target/sqids-spec
run: npm ci
- name: Run sqids-spec parity
run: bin/parity
14 changes: 13 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.class *.iml
*.class
*.iml
*.jar
*.log
*.swp
Expand All @@ -7,13 +8,19 @@
.calva/output-window/
.classpath
.clj-kondo/.cache
.cljs_node_repl/
.cpcache
.cpcache/
.eastwood
.factorypath
.hg/
.hgignore
.idea
.lein-*
.lein-deps-sum
.lein-failures
.lein-plugins/
.lein-repl-history
.lsp/.cache
.lsp/sqlite.db
.nrepl-*
Expand All @@ -28,9 +35,14 @@
.sw*
.vscode
/checkouts
/checkouts/
/classes
/classes/
/lib/
/out
/src/gen
/target
/target/
Brewfile.lock.json
cljs-test-runner-out/
node_modules/
Expand Down
5 changes: 5 additions & 0 deletions .markdownlint-cli2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
config:
MD013: false
ignores:
- node_modules/**
40 changes: 27 additions & 13 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,38 +1,52 @@
repos:
- repo: https://github.com/clj-kondo/clj-kondo
rev: v2023.10.20
hooks:
- id: clj-kondo-docker
pass_filenames: false
require_serial: true
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
rev: v6.0.0
hooks:
- id: check-shebang-scripts-are-executable
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-added-large-files
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.7.0-4
rev: v3.12.0-2
hooks:
- id: shfmt-docker
entry: mvdan/shfmt:v3.7.0
- id: shfmt
args: [-w, -s, -i, "2"]
- repo: https://github.com/koalaman/shellcheck-precommit
rev: v0.9.0
rev: v0.11.0
hooks:
- id: shellcheck
- repo: local
hooks:
- id: clj-kondo
name: clj-kondo
entry: bin/_clj-kondo --lint src test bin/update-blocklist build.clj deps.edn tests.edn shadow-cljs.edn
language: system
pass_filenames: false
require_serial: true
- id: cljstyle
name: cljstyle
entry: bin/_cljstyle fix
language: system
types: [file]
- id: kaocha-test
name: kaocha-test
entry: bin/kaocha
language: system
pass_filenames: false
always_run: true
require_serial: true
- id: markdownlint-cli2
name: markdownlint-cli2
language: node
entry: markdownlint-cli2
additional_dependencies: ["markdownlint-cli2@0.21.0"]
types: [markdown]
args: ["--config", ".markdownlint-cli2.yaml", "--fix"]
- id: prettier
name: prettier
language: docker_image
entry: tmknom/prettier
language: node
entry: prettier
additional_dependencies: ["prettier@3.8.1"]
types: [text]
args: [--write, --list-different, --ignore-unknown]
- id: git-diff
Expand Down
Loading
Loading