Skip to content

Commit 7df57e0

Browse files
committed
Merge branch 'release/0.18.1'
2 parents d0896ea + 776f035 commit 7df57e0

121 files changed

Lines changed: 3427 additions & 5280 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude-plugin/marketplace.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "naymspace-backpex",
3+
"owner": {
4+
"name": "Naymspace"
5+
},
6+
"metadata": {
7+
"description": "Official Backpex plugin for Claude Code"
8+
},
9+
"plugins": [
10+
{
11+
"name": "backpex",
12+
"source": "./",
13+
"description": "Skills and agents for building with Backpex — the Phoenix LiveView admin panel",
14+
"version": "0.1.0",
15+
"homepage": "https://github.com/naymspace/backpex",
16+
"keywords": ["elixir", "phoenix", "liveview", "admin", "backpex"]
17+
}
18+
]
19+
}

.claude-plugin/plugin.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "backpex",
3+
"description": "Skills and agents for building with Backpex",
4+
"version": "0.1.0",
5+
"author": {
6+
"name": "Naymspace"
7+
}
8+
}

.claude/launch.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"version": "0.0.1",
3+
"configurations": [
4+
{
5+
"name": "Demo App (Phoenix LiveView)",
6+
"runtimeExecutable": "docker",
7+
"runtimeArgs": ["compose", "up"],
8+
"port": 4000
9+
}
10+
]
11+
}

.credo.exs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1+
alias_usage_defaults = Credo.Check.Design.AliasUsage.param_defaults()
2+
13
overwrite_checks = [
4+
{Credo.Check.Design.AliasUsage,
5+
excluded_namespaces: alias_usage_defaults[:excluded_namespaces] ++ ["Backpex.Fields"],
6+
excluded_lastnames: alias_usage_defaults[:excluded_lastnames] ++ ["Type"],
7+
if_nested_deeper_than: 2,
8+
if_called_more_often_than: 1},
29
{Credo.Check.Design.TagTODO, false},
310
{Credo.Check.Readability.AliasAs, false},
411
{Credo.Check.Readability.OnePipePerLine, false},

.formatter.exs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,5 @@ locals_without_parens = [
99
plugins: [Phoenix.LiveView.HTMLFormatter, Quokka],
1010
inputs: ["*.{heex,ex,exs}", "priv/*/seeds.exs", "{config,lib,test}/**/*.{heex,ex,exs}"],
1111
locals_without_parens: locals_without_parens,
12-
export: [locals_without_parens: locals_without_parens],
13-
quokka: [
14-
exclude: [
15-
:module_directives
16-
]
17-
]
12+
export: [locals_without_parens: locals_without_parens]
1813
]

.github/workflows/ci.yml

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,18 @@ jobs:
3939
- name: Checkout code
4040
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4141

42-
- uses: erlef/setup-beam@9d5b75ddfda22fb979d2270283237aef8aa68d6b # v1.22.0
42+
- uses: erlef/setup-beam@fc68ffb90438ef2936bbb3251622353b3dcb2f93 # v1.24.0
4343
with:
4444
otp-version: ${{ matrix.otp }}
4545
elixir-version: ${{ matrix.elixir }}
4646

47-
- name: Setup node
48-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
47+
- name: Setup bun
48+
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
4949
with:
50-
node-version: 24
51-
cache: "yarn"
52-
cache-dependency-path: yarn.lock
50+
bun-version: "1.3.13"
5351

5452
- name: Restore the deps and _build cache
55-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
53+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
5654
id: restore-cache
5755
env:
5856
MIX_LOCK_HASH: ${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
@@ -75,23 +73,23 @@ jobs:
7573
run: mix compile --warnings-as-errors --force
7674

7775
- name: Cache node modules
78-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
79-
id: yarn-cache
76+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
77+
id: bun-cache
8078
with:
8179
path: node_modules
82-
key: ${{ runner.os }}-node-24-yarn-${{ hashFiles('yarn.lock') }}
80+
key: ${{ runner.os }}-node-24-bun-${{ hashFiles('bun.lock') }}
8381
restore-keys: |
84-
${{ runner.os }}-node-24-yarn-
82+
${{ runner.os }}-node-24-bun-
8583
8684
- name: Install node dependencies
87-
if: steps.yarn-cache.outputs.cache-hit != 'true'
88-
run: yarn install --pure-lockfile
85+
if: steps.bun-cache.outputs.cache-hit != 'true'
86+
run: bun install --frozen-lockfile
8987

9088
- name: Check formatting
9189
run: mix format --check-formatted
9290

9391
- name: JavaScript Standard
94-
run: yarn run lint:standard
92+
run: bun run lint:standard
9593

9694
- name: Build docs with warnings as errors
9795
run: mix docs --warnings-as-errors
@@ -131,7 +129,7 @@ jobs:
131129
- name: Checkout code
132130
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
133131

134-
- uses: erlef/setup-beam@9d5b75ddfda22fb979d2270283237aef8aa68d6b # v1.22.0
132+
- uses: erlef/setup-beam@fc68ffb90438ef2936bbb3251622353b3dcb2f93 # v1.24.0
135133
id: beam
136134
with:
137135
version-file: .tool-versions
@@ -154,7 +152,7 @@ jobs:
154152

155153
services:
156154
postgres:
157-
image: postgres:16.13@sha256:2586e2a95d1c9b31cb2967feb562948f7d364854453d703039b6efa45fe48417
155+
image: postgres:16.13@sha256:5d143123fdf80462d1778cd4f24b9f7ca13c87174bca19141fb194c5a1ebca59
158156
env:
159157
POSTGRES_PASSWORD: postgres
160158
options: >-
@@ -170,21 +168,24 @@ jobs:
170168
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
171169

172170
- name: Setup beam
173-
uses: erlef/setup-beam@9d5b75ddfda22fb979d2270283237aef8aa68d6b # v1.22.0
171+
uses: erlef/setup-beam@fc68ffb90438ef2936bbb3251622353b3dcb2f93 # v1.24.0
174172
id: beam
175173
with:
176174
version-file: .tool-versions
177175
version-type: strict
178176

179177
- name: Setup node
180-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
178+
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
181179
with:
182180
node-version: 24
183-
cache: "yarn"
184-
cache-dependency-path: demo/yarn.lock
181+
182+
- name: Setup bun
183+
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
184+
with:
185+
bun-version: "1.3.13"
185186

186187
- name: Restore the deps and _build cache
187-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
188+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
188189
id: restore-cache
189190
env:
190191
OTP_VERSION: ${{ steps.beam.outputs.otp-version }}
@@ -212,31 +213,31 @@ jobs:
212213
run: mix compile --warnings-as-errors --force
213214

214215
- name: Cache node modules
215-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
216-
id: yarn-cache
216+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
217+
id: bun-cache
217218
with:
218219
path: demo/node_modules
219-
key: ${{ runner.os }}-node-24-yarn-demo-${{ hashFiles('demo/yarn.lock') }}
220+
key: ${{ runner.os }}-node-24-bun-demo-${{ hashFiles('demo/bun.lock') }}
220221
restore-keys: |
221-
${{ runner.os }}-node-24-yarn-demo-
222+
${{ runner.os }}-node-24-bun-demo-
222223
223224
- name: Install node dependencies
224-
if: steps.yarn-cache.outputs.cache-hit != 'true'
225+
if: steps.bun-cache.outputs.cache-hit != 'true'
225226
working-directory: demo
226-
run: yarn install --pure-lockfile
227+
run: bun install --frozen-lockfile
227228

228229
- name: Cache Backpex node modules
229-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
230-
id: yarn-cache-backpex
230+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
231+
id: bun-cache-backpex
231232
with:
232233
path: node_modules
233-
key: ${{ runner.os }}-node-24-yarn-backpex-${{ hashFiles('yarn.lock') }}
234+
key: ${{ runner.os }}-node-24-bun-backpex-${{ hashFiles('bun.lock') }}
234235
restore-keys: |
235-
${{ runner.os }}-node-24-yarn-backpex-
236+
${{ runner.os }}-node-24-bun-backpex-
236237
237238
- name: Install Backpex node dependencies
238-
if: steps.yarn-cache-backpex.outputs.cache-hit != 'true'
239-
run: yarn install --pure-lockfile
239+
if: steps.bun-cache-backpex.outputs.cache-hit != 'true'
240+
run: bun install --frozen-lockfile
240241

241242
- name: Setup assets
242243
working-directory: demo
@@ -248,31 +249,31 @@ jobs:
248249

249250
- name: lint:mix
250251
working-directory: demo
251-
run: yarn lint:mix
252+
run: bun run lint:mix
252253

253254
- name: lint:credo
254255
working-directory: demo
255-
run: yarn lint:credo
256+
run: bun run lint:credo
256257

257258
- name: lint:sobelow
258259
working-directory: demo
259-
run: yarn lint:sobelow
260+
run: bun run lint:sobelow
260261

261262
- name: lint:style
262263
working-directory: demo
263-
run: yarn lint:style
264+
run: bun run lint:style
264265

265266
- name: lint:standard
266267
working-directory: demo
267-
run: yarn lint:standard
268+
run: bun run lint:standard
268269

269270
- name: lint:deps-unused
270271
working-directory: demo
271-
run: yarn lint:deps-unused
272+
run: bun run lint:deps-unused
272273

273274
- name: lint:gettext
274275
working-directory: demo
275-
run: yarn lint:gettext
276+
run: bun run lint:gettext
276277

277278
- name: Deps audit
278279
working-directory: demo
@@ -286,21 +287,21 @@ jobs:
286287
DB_USERNAME: postgres
287288
DB_PASSWORD: postgres
288289
DB_DATABASE: test
289-
run: yarn test
290+
run: bun run test
290291

291292
- name: Cache Playwright browsers
292-
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
293+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
293294
id: playwright-cache
294295
with:
295296
path: ~/.cache/ms-playwright
296-
key: ${{ runner.os }}-playwright-${{ hashFiles('demo/yarn.lock') }}
297+
key: ${{ runner.os }}-playwright-${{ hashFiles('demo/bun.lock') }}
297298
restore-keys: |
298299
${{ runner.os }}-playwright-
299300
300301
- name: Install playwright
301302
if: steps.playwright-cache.outputs.cache-hit != 'true'
302303
working-directory: demo
303-
run: yarn playwright install chromium --with-deps --only-shell
304+
run: bun x playwright install chromium --with-deps --only-shell
304305

305306
- name: Run playwright test
306307
working-directory: demo
@@ -309,11 +310,11 @@ jobs:
309310
DB_USERNAME: postgres
310311
DB_PASSWORD: postgres
311312
DB_DATABASE: test
312-
run: yarn test:playwright || if [[ $? = 2 ]]; then PW_TRACE=true yarn test:playwright --max-cases 1 --failed; else false; fi
313+
run: bun run test:playwright || if [[ $? = 2 ]]; then PW_TRACE=true bun run test:playwright --max-cases 1 --failed; else false; fi
313314

314315
- name: Upload Playwright traces
315316
if: failure()
316-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
317+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
317318
with:
318319
name: playwright-traces
319320
path: tmp/
@@ -339,7 +340,7 @@ jobs:
339340

340341
- name: Log in to the container registry
341342
if: env.PUSH_IMAGE == 'true'
342-
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
343+
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
343344
with:
344345
registry: ${{ env.REGISTRY }}
345346
username: ${{ github.actor }}
@@ -352,7 +353,7 @@ jobs:
352353
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_RUNTIME }}
353354

354355
- name: Build container
355-
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
356+
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
356357
with:
357358
push: ${{ env.PUSH_IMAGE }}
358359
tags: ${{ steps.meta.outputs.tags }}

0 commit comments

Comments
 (0)