* Split kondo ratchet budgets into separate prod and test files Prod and test kondo suppressions shared one .clj-kondo/ratchets.edn budget per linter, so a pile of test-code ignores could mask a prod-code regression (or vice versa) inside the same number. Adds .clj-kondo/ratchets-test.edn, tracking :ignore-counts for anything under a `test` directory, independent of the prod file's budget. :config-counts (.clj-kondo/config.edn suppressions) stays combined in the prod file -- config.edn's own scoping mixes test and prod namespaces in several groups, so it can't be reliably split per suppression. Updates every consumer: dev.kondo-ratchet's fix!/check, bin/merge-kondo-ratchets, the backport and release-cut disable scripts, the shrink workflow, and file-paths.yaml/.gitignore. * Fix test-ratchets validation and exemption-suggestion bugs from roborev fix!/check read the test ratchets file with *ratchets-file* rebound to *test-ratchets-file*, but validated it after that binding ended, so an unknown linter there was reported against the prod path instead. Validation now runs inside the binding, and both now reject a nonempty :config-counts on the test file instead of letting fix! silently drop it. kondo-insert-ignores also only ever suggested adding a new linter's :comment-exempt to the prod file, even when every unjustified occurrence was test-only. It now checks prod and test occurrences against each file's own exemptions independently and names whichever file(s) actually need it. * Dedupe test-ratchets read+validate, simplify test-occurrence? fix! and check each rebuilt the same read-validate-test-file sequence inline; extracted into read-validated-test-ratchets. test-occurrence? no longer builds a throwaway set just to check one membership. * Note what splitting :config-counts later would actually cost * Fix Eastwood reflection warning in new test helper empty-test-ratchets-file! returned an untyped value, so .getPath on it needed reflection at each call site. Hinting the return type as java.io.File fixes it -- CI's changed-tests Eastwood run caught this. * Move return type hint onto the arg vector Clj-Kondo prefers the hint on the arg vector to the one on the fn name. * Move shrink PR body file reading into dev.kondo-ratchet The bb task only parses its arguments now; reading and combining the ratchet files lives next to shrink-pr-body, with a test. * Give the test ratchets file its own header and drop its :config-counts The test file was rendered with the prod header, whose last lines point readers at ratchets-test.edn and say :config-counts "stays here" -- both wrong inside the test file. It also carried an empty :config-counts that the check rejects whenever it's nonempty. render-test writes the test file with its own header and no :config-counts, and throws on a nonempty one rather than dropping it. fix!, the normalization check, and the three-way merge (a new "test" kind) all use it.
221 lines
4.3 KiB
Plaintext
221 lines
4.3 KiB
Plaintext
*.class
|
|
*.*.rej
|
|
*.d.css
|
|
*.iml
|
|
*.jar
|
|
*.log
|
|
*.po~
|
|
*.sqlite
|
|
*.trace.db
|
|
*.trace.db.old
|
|
*.xcworkspacedata
|
|
.DS_Store
|
|
.\#*
|
|
.cpcache
|
|
.eastwood
|
|
.bot
|
|
.idea/
|
|
.nrepl-port
|
|
.portal
|
|
.vscode
|
|
/.zed
|
|
/*.h2.db
|
|
/*.lock.db
|
|
/*.mv.db
|
|
/*.sql
|
|
/*.trace.db
|
|
/.babel_cache
|
|
/.env*
|
|
!/.env.example
|
|
/.envrc
|
|
/.workmux.yaml
|
|
/.lein-env
|
|
/.lein-failures
|
|
/.lein-plugins
|
|
/.lein-repl-history
|
|
/.sqlite.db
|
|
/backend-checksums.txt
|
|
/backend-docs
|
|
/build.xml
|
|
/checkouts
|
|
/classes
|
|
/coverage
|
|
/crate-*
|
|
/jars
|
|
/cypress
|
|
cypress.env.json
|
|
/deploy/artifacts/*
|
|
**/node_modules
|
|
/docs/**/package.json
|
|
/docs/**/yarn.lock
|
|
/frontend/test/snapshots/*
|
|
/e2e/snapshots/*
|
|
/e2e/tmp/*
|
|
!/e2e/tmp/db_dumps
|
|
/e2e/tmp/db_dumps/*
|
|
!/e2e/tmp/db_dumps/.gitkeep
|
|
/e2e/support/assets/example_custom_viz_plugin*.tgz
|
|
# Coverage artifacts
|
|
/e2e/coverage-manifest-raw
|
|
/e2e/coverage-manifest
|
|
/e2e/coverage/analysis
|
|
/e2e/coverage/spec-file-manifest.json
|
|
/e2e/coverage/spec-test-manifest.json
|
|
/e2e/coverage/openapi.json
|
|
/e2e/support/.nyc_output
|
|
/e2e/support/coverage
|
|
/e2e/support/e2e
|
|
/.nyc_output
|
|
|
|
/lein-plugins/*/target
|
|
/local
|
|
/locales/metabase-*.pot
|
|
# Pseudo-locale generated at build time
|
|
/locales/en-ZZ.po
|
|
/logs
|
|
/modules/drivers/*/resources/namespaces.edn
|
|
/modules/drivers/*/target
|
|
# Generated in-process embedder model bundles and build outputs.
|
|
/modules/embedder/resources/metabase-embedder
|
|
/modules/embedder/target
|
|
/plugins
|
|
/process.yml
|
|
/reset-password-artifacts
|
|
/resources/frontend_client/app/**/*.br
|
|
/resources/frontend_client/app/**/*.gz
|
|
/resources/frontend_client/app/**/*.hot-update.js
|
|
/resources/frontend_client/app/**/*.hot-update.json
|
|
/resources/frontend_client/app/dist/
|
|
/resources/frontend_client/app/locales/*
|
|
# Keep the directory itself: the frontend build resolves `locales/<locale>.json`
|
|
# through it, and rspack fails on a context whose directory does not exist. The
|
|
# `:translations` build step fills it in.
|
|
!/resources/frontend_client/app/locales/.gitkeep
|
|
/resources/frontend_client/app/embed.js
|
|
/resources/frontend_client/app/embedding-sdk.js
|
|
/resources/frontend_client/app/embedding-sdk.js.map
|
|
/resources/frontend_client/app/embedding-sdk/
|
|
/resources/frontend_client/tmp-*/
|
|
/resources/frontend_client/data-app.html
|
|
/resources/frontend_client/embed.html
|
|
/resources/frontend_client/embed-sdk.html
|
|
/resources/frontend_client/embed-mcp.html
|
|
/resources/frontend_client/index.html
|
|
/resources/frontend_client/public.html
|
|
/resources/embedding-sdk
|
|
/resources/i18n/*.edn
|
|
/resources/instance_analytics.zip
|
|
/resources/license-backend-third-party.txt
|
|
/resources/license-frontend-third-party.txt
|
|
/resources/metabase/config/modules.edn
|
|
/resources/namespaces.edn
|
|
/resources/sample-dataset.db.trace.db
|
|
!/resources/sample-database.*
|
|
/resources/version.properties
|
|
/screenshots
|
|
/sqlite.db
|
|
/stats.json
|
|
/storybook-static
|
|
/target
|
|
/test-report-*
|
|
/temp
|
|
**/cli-snippets-tmp/**
|
|
\#*\#
|
|
bin/release/aws-eb/metabase-aws-eb.zip
|
|
coverage-summary.json
|
|
junit.xml
|
|
pom.xml
|
|
pom.xml.asc
|
|
/profiles.clj
|
|
target/checksum.txt
|
|
xcshareddata
|
|
xcuserdata
|
|
dev/src/dev/nocommit/
|
|
dev/serialization_deltas/
|
|
*~
|
|
|
|
# TypeScript compilation artifacts
|
|
/build/
|
|
*.tsbuildinfo
|
|
/trace-output/
|
|
/temp-types/
|
|
/frontend/src/metabase-types/openapi
|
|
|
|
**/cypress_sample_database.json
|
|
**/cypress_sample_instance_data.json
|
|
/frontend/src/cljs
|
|
/frontend/src/cljs_release
|
|
.shadow-cljs
|
|
.clerk
|
|
mise.local.toml
|
|
|
|
# lsp: ignore all but the config file
|
|
**/.lsp/*
|
|
!**/.lsp/config.edn
|
|
**/.clj-kondo/.cache
|
|
|
|
# clj-kondo: ignore all except our defined config
|
|
**/.clj-kondo/*
|
|
!**/.clj-kondo/README.md
|
|
!**/.clj-kondo/config.edn
|
|
!**/.clj-kondo/ratchets.edn
|
|
!**/.clj-kondo/ratchets-test.edn
|
|
!**/.clj-kondo/config/
|
|
!**/.clj-kondo/src/
|
|
!**/.clj-kondo/test/
|
|
!**/.clj-kondo/macros/
|
|
|
|
# Editor- or environment-specific local files
|
|
*.code-workspace
|
|
.java-version
|
|
.calva/
|
|
|
|
# malli + clj-kondo: ignore malli-types
|
|
.clj-kondo/metosin/malli-types-clj
|
|
|
|
.github/static-viz-sources.yaml
|
|
|
|
|
|
# swc
|
|
.swc/
|
|
|
|
*storybook.log
|
|
|
|
# jar downloader
|
|
/jars/
|
|
|
|
# metabot
|
|
llm-payloads
|
|
|
|
/bin/bb
|
|
|
|
.aider*
|
|
/config.yml
|
|
CLAUDE.local.md
|
|
.claude/settings.local.json
|
|
.claude/agent-memory/
|
|
|
|
.eslintcache
|
|
|
|
/logs
|
|
/.clojure-mcp
|
|
|
|
# Python dependencies (pip-installed, not committed)
|
|
/resources/python-sources/sqlglot/
|
|
/resources/python-sources/sqlglot-*.dist-info/
|
|
/resources/python-sources/.lock
|
|
__pycache__/
|
|
.mcp.json
|
|
.config/wt.toml
|
|
.claude/worktrees
|
|
.claude/scheduled_tasks.lock
|
|
.playwright-mcp
|
|
.ci_reports/
|
|
|
|
# dependency-cruiser output
|
|
dependency-graph.json
|
|
.playwright-cli/
|
|
|
|
# mage modules-tree --html output
|
|
/modules.html
|