Skip to content

Commit 2b91f6a

Browse files
committed
Merge remote-tracking branch 'origin/main' into belanger/workflow-search-bar
2 parents b75da6a + 633d4a2 commit 2b91f6a

125 files changed

Lines changed: 2715 additions & 2169 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.

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,18 @@ Include a minimal code snippet that reproduces the issue, error logs around the
2222

2323
**Additional context**
2424
Anything else that might help us understand or reproduce the problem — e.g. specific page URL, logged-in vs logged-out, related docs or workflows.
25+
26+
---
27+
28+
<details id="ai-disclosure">
29+
<summary><b>🤖 AI Disclosure</b></summary>
30+
31+
<!-- In accordance with Hatchet's AI_POLICY.md, LLM usage must be explicitly disclosed. -->
32+
33+
- [ ] _I acknowledge that an LLM was used in the creation of this Issue, in accordance with Hatchet's [AI_POLICY.md](./AI_POLICY.md)._
34+
35+
<!-- Please specify the tooling/model and the extent to which it was used. -->
36+
37+
- **Details**: [e.g. re-creation steps, initial diagnosis]
38+
39+
</details>

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,18 @@ A clear and concise description of any alternative solutions or features you've
1818

1919
**Additional context**
2020
Add any other context or screenshots about the feature request here.
21+
22+
---
23+
24+
<details id="ai-disclosure">
25+
<summary><b>🤖 AI Disclosure</b></summary>
26+
27+
<!-- In accordance with Hatchet's AI_POLICY.md, LLM usage must be explicitly disclosed. -->
28+
29+
- [ ] _I acknowledge that an LLM was used in the creation of this Issue, in accordance with Hatchet's [AI_POLICY.md](./AI_POLICY.md)._
30+
31+
<!-- Please specify the tooling/model and the extent to which it was used. -->
32+
33+
- **Details**: [e.g. scanning documentation, solution brain-storming]
34+
35+
</details>

.github/pull_request_template.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
<!-- Please refer to the contribution guidelines before raising a PR. https://github.com/hatchet-dev/hatchet/blob/main/CONTRIBUTING.md -->
2+
13
# Description
24

35
<!-- Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change. -->
@@ -21,3 +23,40 @@ Fixes # (issue)
2123
## What's Changed
2224

2325
- [ ] Add a list of tasks or features here...
26+
27+
## Checklist
28+
29+
<!-- Check all that apply. -->
30+
31+
Changes have been:
32+
33+
- [ ] Tested (unit, integration, or manually with steps specified)
34+
- [ ] Linted and formatted
35+
- [ ] Documented (where applicable)
36+
- [ ] Added to CHANGELOG (where applicable) -- see [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
37+
38+
<!-- Optional: How are the proposed changes tested? -->
39+
<!-- ## Testing
40+
41+
-->
42+
43+
44+
<!-- Optional: Include additional material to supplement your changes (e.g screenshots for frontend changes) -->
45+
<!-- ## Related
46+
47+
-->
48+
49+
---
50+
51+
<details id="ai-disclosure">
52+
<summary><b>🤖 AI Disclosure</b></summary>
53+
54+
<!-- In accordance with Hatchet's AI_POLICY.md, LLM usage must be explicitly disclosed. -->
55+
56+
- [ ] _I acknowledge that an LLM was used in the creation of this Pull Request, in accordance with Hatchet's [AI_POLICY.md](./AI_POLICY.md)._
57+
58+
<!-- Please specify the tooling/model and the extent to which it was used. -->
59+
60+
- **Details**: [e.g. generating tests, writing docs]
61+
62+
</details>

.github/workflows/sdk-typescript.yml

Lines changed: 67 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,73 +17,116 @@ defaults:
1717
run:
1818
working-directory: ./sdks/typescript
1919

20+
x-pm-matrix: &pm-matrix
21+
include:
22+
- package-manager: pnpm
23+
install-cmd: pnpm install
24+
lint-cmd: pnpm lint:check
25+
tsc-cmd: pnpm exec tsc
26+
unit-test-cmd: pnpm test:unit
27+
e2e-test-cmd: pnpm test:e2e
28+
- package-manager: bun
29+
install-cmd: bun install
30+
lint-cmd: bun run lint:check
31+
tsc-cmd: bunx tsc
32+
unit-test-cmd: bun run test:unit
33+
e2e-test-cmd: bun run test:e2e
34+
2035
jobs:
2136
lint:
2237
runs-on: ubicloud-standard-4
38+
strategy:
39+
matrix: *pm-matrix
2340
steps:
2441
- name: Checkout
2542
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2643
with:
2744
submodules: recursive
2845

2946
- name: Install pnpm
47+
if: matrix.package-manager == 'pnpm'
3048
run: npm install -g pnpm@10.16.1
3149

3250
- name: Get pnpm store directory
51+
if: matrix.package-manager == 'pnpm'
3352
shell: bash
3453
run: |
3554
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
3655
3756
- name: Setup pnpm cache
57+
if: matrix.package-manager == 'pnpm'
3858
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
3959
with:
4060
path: ${{ env.STORE_PATH }}
4161
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
4262
restore-keys: |
4363
${{ runner.os }}-pnpm-store-
4464
65+
- name: Setup Bun
66+
if: matrix.package-manager == 'bun'
67+
uses: oven-sh/setup-bun@v2
68+
with:
69+
bun-version: latest
70+
cache: true
71+
cache-dependency-path: sdks/typescript/pnpm-lock.yaml
72+
4573
- name: Install dependencies
46-
run: pnpm install
74+
run: ${{ matrix.install-cmd }}
4775

4876
- name: Lint
49-
run: pnpm lint:check
77+
run: ${{ matrix.lint-cmd }}
5078

5179
- name: Type check
52-
run: pnpm exec tsc
80+
run: ${{ matrix.tsc-cmd }}
5381

5482
test-unit:
5583
runs-on: ubicloud-standard-4
84+
strategy:
85+
matrix: *pm-matrix
5686
steps:
5787
- name: Checkout
5888
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5989
with:
6090
submodules: recursive
6191

6292
- name: Install pnpm
93+
if: matrix.package-manager == 'pnpm'
6394
run: npm install -g pnpm@10.16.1
6495

6596
- name: Get pnpm store directory
97+
if: matrix.package-manager == 'pnpm'
6698
shell: bash
6799
run: |
68100
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
69101
70102
- name: Setup pnpm cache
103+
if: matrix.package-manager == 'pnpm'
71104
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
72105
with:
73106
path: ${{ env.STORE_PATH }}
74107
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
75108
restore-keys: |
76109
${{ runner.os }}-pnpm-store-
77110
111+
- name: Setup Bun
112+
if: matrix.package-manager == 'bun'
113+
uses: oven-sh/setup-bun@v2
114+
with:
115+
bun-version: latest
116+
cache: true
117+
cache-dependency-path: sdks/typescript/pnpm-lock.yaml
118+
78119
- name: Install dependencies
79-
run: pnpm install
120+
run: ${{ matrix.install-cmd }}
80121

81122
- name: Unit tests
82-
run: pnpm test:unit
123+
run: ${{ matrix.test-cmd }}
83124

84125
test-e2e:
85126
runs-on: ubicloud-standard-4
86127
timeout-minutes: 20
128+
strategy:
129+
matrix: *pm-matrix
87130
steps:
88131
- name: Checkout
89132
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -108,31 +151,42 @@ jobs:
108151
go-version: "1.25.9"
109152

110153
- name: Install pnpm
154+
if: matrix.package-manager == 'pnpm'
111155
run: npm install -g pnpm@10.16.1
112156

113-
- name: Install Atlas
114-
run: |
115-
curl -sSf https://atlasgo.sh | sh
116-
117157
- name: Get pnpm store directory
158+
if: matrix.package-manager == 'pnpm'
118159
shell: bash
119160
run: |
120161
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
121162
122163
- name: Setup pnpm cache
164+
if: matrix.package-manager == 'pnpm'
123165
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
124166
with:
125167
path: ${{ env.STORE_PATH }}
126168
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
127169
restore-keys: |
128170
${{ runner.os }}-pnpm-store-
129171
172+
- name: Setup Bun
173+
if: matrix.package-manager == 'bun'
174+
uses: oven-sh/setup-bun@v2
175+
with:
176+
bun-version: latest
177+
cache: true
178+
cache-dependency-path: sdks/typescript/pnpm-lock.yaml
179+
180+
- name: Install Atlas
181+
run: |
182+
curl -sSf https://atlasgo.sh | sh
183+
130184
- name: Compose
131185
working-directory: .
132186
run: docker compose up -d
133187

134188
- name: Install dependencies
135-
run: pnpm install
189+
run: ${{ matrix.install-cmd }}
136190

137191
- name: Generate
138192
working-directory: .
@@ -169,20 +223,20 @@ jobs:
169223
export HATCHET_CLIENT_TLS_ROOT_CA_FILE=../../certs/ca.cert
170224
export HATCHET_CLIENT_TLS_SERVER_NAME=cluster
171225
export NODE_TLS_REJECT_UNAUTHORIZED=0
172-
pnpm test:e2e
226+
${{ matrix.test-cmd }}
173227
174228
- name: Upload engine logs
175229
if: always()
176230
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
177231
with:
178-
name: sdk-typescript-engine-logs
232+
name: sdk-typescript-engine-logs-${{ matrix.package-manager }}
179233
path: engine.log
180234

181235
- name: Upload API logs
182236
if: always()
183237
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
184238
with:
185-
name: sdk-typescript-api-logs
239+
name: sdk-typescript-api-logs-${{ matrix.package-manager }}
186240
path: api.log
187241

188242
old-engine-new-sdk:

AI_POLICY.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# AI Usage Policy
2+
3+
The Hatchet project has strict rules for AI usage[^1]:
4+
5+
- **All AI usage in any form must be disclosed.** You must state
6+
the tool you used (e.g. Claude Code, Cursor, Amp) along with
7+
the extent that the work was AI-assisted.
8+
9+
- **Pull requests created in any way by AI may not be opened for issues marked as "good first
10+
issue".** These issues are intended for new contributors to learn the codebase, and are thus
11+
wasted if AI solves them.
12+
13+
- **Pull requests created in any way by AI can only be for accepted issues.** Drive-by pull requests
14+
that do not reference an accepted issue will be closed. If AI isn't disclosed but a maintainer
15+
suspects its use, the PR will be closed. If you want to share code for a non-accepted issue, open
16+
a discussion or attach it to an existing discussion.
17+
18+
- **Issues and discussions can use AI assistance but must have a full
19+
human-in-the-loop.** This means that any content generated with AI
20+
must have been reviewed _and edited_ by a human before submission.
21+
AI is very good at being overly verbose and including noise that
22+
distracts from the main point. Humans must do their research and
23+
trim this down.
24+
25+
[^1]: Adapted from [pola-rs/polars/AI_POLICY.md](https://github.com/pola-rs/polars/blob/09bf86ff9ea052d8ba05097b1e0cbc3ad99144bc/AI_POLICY.md).

CONTRIBUTING.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,35 @@
22

33
This guide will help you understand how to contribute effectively to the Hatchet project.
44

5+
6+
## Guidelines
7+
8+
The following requirements apply to all contributions.
9+
10+
- First-time contributors may have at most one open pull request at a time.
11+
- Issues labeled [![good first issue](https://img.shields.io/github/labels/hatchet-dev/hatchet/good%20first%20issue)](https://github.com/hatchet-dev/hatchet/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22) are reserved for first-time contributors.
12+
- Pull requests must reference a corresponding issue labeled [![accepted](https://img.shields.io/github/labels/hatchet-dev/hatchet/accepted)](https://github.com/hatchet-dev/hatchet/issues?q=is%3Aissue%20state%3Aopen%20label%3Aaccepted).
13+
- Your GitHub account's [Activity Overview](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/showing-an-overview-of-your-activity-on-your-profile) must be public.
14+
- AI usage must be disclosed and comply with [AI_POLICY.md](./AI_POLICY.md) (see [AI Usage](#ai-usage)).
15+
16+
### AI Usage
17+
18+
Pull requests, issues, and discussions that use AI require explicit disclosure. For example:
19+
20+
> <details open id="ai-disclosure">
21+
> <summary><b>🤖 AI Disclosure</b></summary>
22+
>
23+
> <!-- In accordance with Hatchet's AI_POLICY.md, LLM usage must be explicitly disclosed. -->
24+
>
25+
> - [x] _I acknowledge that an LLM was used in the creation of this Pull Request, in accordance with Hatchet's [AI_POLICY.md](./AI_POLICY.md)._
26+
>
27+
> <!-- Please specify the tooling/model and the extent to which it was used. -->
28+
>
29+
> - **Details**: Claude Code was used to generate the TypeScript SDK tests.
30+
>
31+
> </details>
32+
33+
534
## Getting Started
635

736
New to Hatchet? Start with our [Architecture](https://docs.hatchet.run/home/architecture) docs to familiarize yourself with Hatchet's core system design.
@@ -34,7 +63,7 @@ We recommend installing these tools individually using your preferred package ma
3463

3564
## Pull Requests
3665

37-
Before opening a PR, check if there's a related issue in our [backlog](https://github.com/hatchet-dev/hatchet/issues).
66+
Before opening a PR, check if there's a related and accepted issue in our [backlog](https://github.com/hatchet-dev/hatchet/issues).
3867

3968
For non-trivial changes (anything beyond typos or patch version bumps), please create an issue first so we can discuss the proposal and ensure it aligns with the project.
4069

0 commit comments

Comments
 (0)