DashboardfossilizeSession 1DWlTiuCY6H3

Session 1DWlTiuCY6H3

Full ID: 1DWlTiuCY6H3k54JA
Messages: 8
Distillations: 0
Time range: 2026-05-22 19:07:00 — 2026-05-22 19:08:48

Conversation (8 messages)

Explore the /home/byk/Code/superset repository to understand its Craft-based publishing setup. I need to find:

  1. Any files related to "Craft" - search for craft in filenames and file contents
  2. GitHub Actions workflows, especially any related to publishing/release (.github/workflows/)
  3. Package.json scripts related to publishing, release, craft
  4. Any craft configuration files (craft.config.*, .craft.yml, .craft.toml, etc.)
  5. The .craft.yml or equivalent craft config - read it fully
  6. Any changelog generation setup
  7. How versions are managed

Return complete file contents for craft configs and workflow files, not just summaries.

gateway · 2026-05-22 19:07:00

I'll systematically explore the Superset repository for all Craft-related publishing setup. Let me run multiple searches in parallel.

claude-opus-4-6 · 2026-05-22 19:07:00 · ~45 tokens
result
/home/byk/Code/superset/.craft.yml
result
/home/byk/Code/superset/.craft.yml
result
No files found
result
/home/byk/Code/superset/.github/workflows/publish.yml
/home/byk/Code/superset/.github/workflows/release.yml
/home/byk/Code/superset/.github/workflows/ci.yml
result
/home/byk/Code/superset/CHANGELOG.md
result
No files found
result
No files found
gateway · 2026-05-22 19:07:53

Good, found the key files. Let me now read all of them in parallel, plus search for craft references in content and check package.json.

claude-opus-4-6 · 2026-05-22 19:07:53 · ~46 tokens
result
<path>/home/byk/Code/superset/.craft.yml</path>
<type>file</type>
<content>
1: minVersion: '2.21.1'
2: changelog:
3:   policy: auto
4: versioning:
5:   policy: auto
6: artifactProvider:
7:   name: github
8:   config:
9:     artifacts:
10:       CI: npm-tarball
11: targets:
12:   - name: npm
13:     access: public
14:     oidc: true
15:   - name: github

(End of file - total 15 lines)
</content>
result
<path>/home/byk/Code/superset/.github/workflows/publish.yml</path>
<type>file</type>
<content>
1: name: Publish
2: on:
3:   issues:
4:     types: [labeled]
5: 
6: jobs:
7:   publish:
8:     if: github.event.label.name == 'accepted' && github.event.issue.state == 'open'
9:     runs-on: ubuntu-latest
10:     name: Publish release
11:     environment: production
12:     permissions:
13:       contents: write
14:       id-token: write
15:       issues: write
16:     timeout-minutes: 15
17:     steps:
18:       - uses: actions/create-github-app-token@v3
19:         id: app-token
20:         with:
21:           app-id: ${{ vars.APP_ID }}
22:           private-key: ${{ secrets.APP_PRIVATE_KEY }}
23: 
24:       - name: Parse publish request
25:         id: inputs
26:         env:
27:           ISSUE_TITLE: ${{ github.event.issue.title }}
28:         run: |
29:           # Title format: "publish: owner/repo@VERSION"
30:           VERSION=$(echo "$ISSUE_TITLE" | grep -oP '@\K[^\s]+$')
31:       ...
result
<path>/home/byk/Code/superset/.github/workflows/release.yml</path>
<type>file</type>
<content>
1: name: Release
2: on:
3:   workflow_dispatch:
4:     inputs:
5:       version:
6:         description: Version to release (or "auto")
7:         required: false
8:       force:
9:         description: Force a release even when there are release-blockers
10:         type: boolean
11:         default: false
12: 
13: jobs:
14:   release:
15:     runs-on: ubuntu-latest
16:     name: Release a new version
17:     environment: production
18:     permissions:
19:       contents: write
20:       issues: write
21:     steps:
22:       - uses: actions/create-github-app-token@v3
23:         id: app-token
24:         with:
25:           app-id: ${{ vars.APP_ID }}
26:           private-key: ${{ secrets.APP_PRIVATE_KEY }}
27: 
28:       - uses: actions/checkout@v6
29:         with:
30:           token: ${{ steps.app-token.outputs.token }}
31:           fetch-depth: 0
32: 
33:       - uses: ...
result
<path>/home/byk/Code/superset/.github/workflows/ci.yml</path>
<type>file</type>
<content>
1: name: CI
2: 
3: on:
4:   push:
5:     branches: [master, 'release/**']
6:   pull_request:
7:     branches: [master]
8: 
9: jobs:
10:   test:
11:     runs-on: ubuntu-latest
12:     strategy:
13:       matrix:
14:         node: ['20', '22']
15:     name: Node ${{ matrix.node }}
16:     steps:
17:       - uses: actions/checkout@v6
18:       - uses: pnpm/action-setup@v4
19:       - uses: actions/setup-node@v6
20:         with:
21:           node-version: ${{ matrix.node }}
22:           cache: pnpm
23:       - name: Install
24:         run: pnpm install --frozen-lockfile
25:       - name: Test
26:         run: pnpm test
27: 
28:   coverage:
29:     name: Coverage
30:     needs: test
31:     runs-on: ubuntu-latest
32:     steps:
33:       - uses: actions/checkout@v6
34:       - uses: pnpm/action-setup@v4
35:       - uses: actions/setup-node@v6
36:         with:
37:           node-version: '22'
38:  ...
result
<path>/home/byk/Code/superset/CHANGELOG.md</path>
<type>file</type>
<content>
1: # Changelog
2: 
3: ## 3.0.3
4: 
5: ### Bug Fixes 🐛
6: 
7: - Patch 8 open Dependabot security alerts by @BYK in [#29](https://github.com/BYK/superset/pull/29)
8: 
9: ## 3.0.2
10: 
11: ### Bug Fixes 🐛
12: 
13: - Patch flatted CVE-2026-32141 unbounded recursion DoS by @BYK in [#27](https://github.com/BYK/superset/pull/27)
14: 
15: ## 3.0.1
16: 
17: ### Bug Fixes 🐛
18: 
19: - Update README badges for renamed CI workflow and Codecov by @BYK in [f96c1c6b](https://github.com/BYK/superset/commit/f96c1c6b7a2455cb582d5a7fe9d292d35e079a88)
20: 
21: ## 3.0.0
22: 
23: ### New Features ✨
24: 
25: - Upgrade to Craft v2 publishing pipeline by @BYK in [bfe96d36](https://github.com/BYK/superset/commit/bfe96d36968322756f37fff5a08aaa1a34c6f75a)
26: 
27: ### Bug Fixes 🐛
28: 
29: - Update codecov action to v5 with token support by @BYK in ...
result
<path>/home/byk/Code/superset/package.json</path>
<type>file</type>
<content>
1: {
2:   "name": "superset",
3:   "version": "3.0.3",
4:   "description": "A library that provides the missing Set methods such as map and filter.",
5:   "main": "index.js",
6:   "packageManager": "pnpm@10.28.0",
7:   "engines": {
8:     "node": ">= 20.0.0"
9:   },
10:   "pnpm": {
11:     "overrides": {
12:       "serialize-javascript": ">=7.0.5",
13:       "diff": ">=8.0.3",
14:       "flatted": ">=3.4.0",
15:       "brace-expansion@^1": "~1.1.13",
16:       "brace-expansion@^2": "~2.0.3",
17:       "brace-expansion@^5": ">=5.0.5",
18:       "yaml": ">=2.8.3",
19:       "picomatch@^2": "~2.3.2",
20:       "picomatch@^4": ">=4.0.4"
21:     }
22:   },
23:   "devDependencies": {
24:     "@stylistic/eslint-plugin": "^4.4.1",
25:     "c8": "^10.1.3",
26:     "chai": "^4.5.0",
27:     "eslint": "^9.28.0",
28:     "globals": "^16.1.0",
29:     "mocha": "^11.5.0",
30:     "remark-cli": "^12.0.1",
31:     ...
result
Found 6 matches
/home/byk/Code/superset/.github/workflows/publish.yml:
  Line 54:           CRAFT_URL=$(curl -fsSL https://api.github.com/repos/getsentry/craft/releases/latest \

  Line 55:             | jq -r '.assets[] | select(.name == "craft") | .browser_download_url')

  Line 56:           sudo curl -fsSL -o /usr/local/bin/craft "$CRAFT_URL"

  Line 57:           sudo chmod +x /usr/local/bin/craft

  Line 60:         run: craft publish "${{ steps.inputs.outputs.version }}" --no-input --no-status-check


/home/byk/Code/superset/.github/workflows/release.yml:
  Line 33:       - uses: getsentry/craft@v2
gateway · 2026-05-22 19:07:57

Now let me also check for version management files and any additional configuration.

claude-opus-4-6 · 2026-05-22 19:07:57 · ~29 tokens
result
/home/byk/Code/superset/.remarkrc.mjs
result
/home/byk/Code/superset/.npmignore
result
Found 48 matches
/home/byk/Code/superset/.github/workflows/publish.yml:
  Line 7:   publish:

  Line 10:     name: Publish release

  Line 24:       - name: Parse publish request

  Line 29:           # Title format: "publish: owner/repo@VERSION"

  Line 32:             echo "::error::Could not parse version from issue title: $ISSUE_TITLE"

  Line 35:           echo "version=$VERSION" >> "$GITHUB_OUTPUT"

  Line 39:           ref: release/${{ steps.inputs.outputs.version }}

  Line 50:           node-version: 24

  Line 54:           CRAFT_URL=$(curl -fsSL https://api.github.com/repos/getsentry/craft/releases/latest \

  Line 60:         run: craft publish "${{ steps.inputs.outputs.version }}" --no-input --no-status-check

  Line 70:             --comment "Published **${{ steps.inputs.outputs.version }}** successfully.


/home/byk/Code/superset/pnpm-lock.yaml:
  Line 24:         version: 4.4.1(eslint@9.39.4)(typescript@6.0.2)

  Line 27:         version: 10.1.3

  Line 30:         ...
gateway · 2026-05-22 19:08:48

Here is a complete summary of the Craft-based publishing setup in the /home/byk/Code/superset repository.


1. Craft Configuration File

File: /home/byk/Code/superset/.craft.yml

minVersion: '2.21.1'
changelog:
  policy: auto
versioning:
  policy: auto
artifactProvider:
  name: github
  config:
    artifacts:
      CI: npm-tarball
targets:
  - name: npm
    access: public
    oidc: true
  - name: github

What this means:

  • minVersion: '2.21.1' -- Requires Craft CLI version 2.21.1 or newer.
  • changelog.policy: auto -- Craft auto-generates the changelog from commit messages/PR titles when preparing a release.
  • versioning.policy: auto -- Craft automatically determines the next version (likely from conventional commits or PR labels).
  • artifactProvider -- Artifacts come from GitHub Actions. It looks for the npm-tarball artifact uploaded by the CI workflow (see the artifacts job in ci.yml).
  • Publish targets:
    1. npm -- Publishes to the npm registry with public access, using OIDC token authentication (no npm secret needed).
    2. github -- Creates a GitHub Release.

2. GitHub Actions Workflows

2a. CI Workflow

File: /home/byk/Code/superset/.github/workflows/ci.yml (69 lines)

name: CI

on:
  push:
    branches: [master, 'release/**']
  pull_request:
    branches: [master]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node: ['20', '22']
    name: Node ${{ matrix.node }}
    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node }}
          cache: pnpm
      - name: Install
        run: pnpm install --frozen-lockfile
      - name: Test
        run: pnpm test

  coverage:
    name: Coverage
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - ...
claude-opus-4-6 · 2026-05-22 19:08:48 · ~3.6K tokens