Skip to content

Commit caffc46

Browse files
authored
Merge branch 'feast-dev:master' into patch-rag-scenario
2 parents 4d7f174 + a16cd55 commit caffc46

332 files changed

Lines changed: 32159 additions & 12863 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/pull_request_template.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
# What this PR does / why we need it:
1313
<!--
14-
Outline what you're doing
14+
Outline what you're doing and why.
1515
-->
1616

1717
# Which issue(s) this PR fixes:
@@ -20,6 +20,16 @@ Outline what you're doing
2020
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
2121
-->
2222

23+
# Checks
24+
- [ ] I've made sure the tests are passing.
25+
- [ ] My commits are signed off (`git commit -s`)
26+
- [ ] My PR title follows [conventional commits](https://www.conventionalcommits.org/) format
27+
28+
## Testing Strategy
29+
- [ ] Unit tests
30+
- [ ] Integration tests
31+
- [ ] Manual tests
32+
- [ ] Testing is not required for this change
2333

2434
# Misc
2535
<!--

.github/workflows/operator-e2e-integration-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
- name: Set up Go
5353
uses: actions/setup-go@v5
5454
with:
55-
go-version: 1.22.9
55+
go-version: 1.24.12
5656

5757
- name: Create KIND cluster
5858
run: |

.github/workflows/operator_pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- name: Install Go
1515
uses: actions/setup-go@v5
1616
with:
17-
go-version: 1.22.9
17+
go-version: 1.24.12
1818
- name: Operator tests
1919
run: make -C infra/feast-operator test
2020
- name: After code formatting, check for uncommitted differences

.github/workflows/pr_integration_tests.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,80 @@ jobs:
9696
run: make test-python-integration
9797
- name: Minimize uv cache
9898
run: uv cache prune --ci
99+
100+
mcp-feature-server-runtime:
101+
if:
102+
((github.event.action == 'labeled' && (github.event.label.name == 'approved' || github.event.label.name == 'lgtm' || github.event.label.name == 'ok-to-test')) ||
103+
(github.event.action != 'labeled' && (contains(github.event.pull_request.labels.*.name, 'ok-to-test') || contains(github.event.pull_request.labels.*.name, 'approved') || contains(github.event.pull_request.labels.*.name, 'lgtm')))) &&
104+
github.repository == 'feast-dev/feast'
105+
runs-on: ubuntu-latest
106+
steps:
107+
- uses: actions/checkout@v4
108+
with:
109+
ref: refs/pull/${{ github.event.pull_request.number }}/merge
110+
submodules: recursive
111+
persist-credentials: false
112+
- name: Setup Python
113+
uses: actions/setup-python@v5
114+
with:
115+
python-version: "3.11"
116+
architecture: x64
117+
- name: Install the latest version of uv
118+
uses: astral-sh/setup-uv@v5
119+
with:
120+
enable-cache: true
121+
- name: Install dependencies
122+
run: make install-python-dependencies-ci
123+
- name: Start feature server (MCP HTTP)
124+
run: |
125+
cd examples/mcp_feature_store
126+
uv run python -m feast.cli.cli serve --host 127.0.0.1 --port 6566 --workers 1 --no-access-log &
127+
SERVER_PID=$!
128+
echo $SERVER_PID > /tmp/feast_server_pid
129+
for i in $(seq 1 60); do
130+
kill -0 "$SERVER_PID" || { echo "server died"; exit 1; }
131+
if curl -fsS http://127.0.0.1:6566/health >/dev/null; then
132+
break
133+
fi
134+
sleep 1
135+
done
136+
curl -fsS http://127.0.0.1:6566/health >/dev/null
137+
- name: Validate MCP endpoint
138+
run: |
139+
rm -f /tmp/mcp_headers /tmp/mcp_headers2 /tmp/mcp_body2
140+
141+
curl -sS -D /tmp/mcp_headers -o /dev/null --max-time 10 \
142+
-X POST \
143+
-H "Accept: application/json, text/event-stream" \
144+
-H "Content-Type: application/json" \
145+
-H "mcp-protocol-version: 2025-03-26" \
146+
--data '{}' \
147+
http://127.0.0.1:6566/mcp
148+
149+
SESSION_ID=$(grep -i "^mcp-session-id:" /tmp/mcp_headers | head -1 | awk '{print $2}' | tr -d '\r')
150+
if [ -z "${SESSION_ID}" ]; then
151+
cat /tmp/mcp_headers || true
152+
exit 1
153+
fi
154+
155+
curl -sS -D /tmp/mcp_headers2 -o /tmp/mcp_body2 --max-time 10 \
156+
-X POST \
157+
-H "Accept: application/json, text/event-stream" \
158+
-H "Content-Type: application/json" \
159+
-H "mcp-protocol-version: 2025-03-26" \
160+
-H "mcp-session-id: ${SESSION_ID}" \
161+
--data '{}' \
162+
http://127.0.0.1:6566/mcp
163+
164+
grep -Eq "^HTTP/.* 400" /tmp/mcp_headers2
165+
grep -Eiq "^content-type: application/json" /tmp/mcp_headers2
166+
grep -Eiq "^mcp-session-id: ${SESSION_ID}" /tmp/mcp_headers2
167+
- name: Stop feature server
168+
if: always()
169+
run: |
170+
if [ -f /tmp/feast_server_pid ]; then
171+
kill "$(cat /tmp/feast_server_pid)" || true
172+
fi
173+
- name: Minimize uv cache
174+
if: always()
175+
run: uv cache prune --ci

.github/workflows/pr_local_integration_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
- name: Install Go
6060
uses: actions/setup-go@v5
6161
with:
62-
go-version: 1.22.9
62+
go-version: 1.24.12
6363
- name: Operator Data Source types test
6464
run: make -C infra/feast-operator test-datasources
6565
- name: Minimize uv cache

.github/workflows/registry-rest-api-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
- name: Set up Go
5151
uses: actions/setup-go@v5
5252
with:
53-
go-version: 1.22.9
53+
go-version: 1.24.12
5454

5555
- name: Create KIND cluster
5656
run: |

.github/workflows/release.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ jobs:
4949
- name: Checkout
5050
uses: actions/checkout@v4
5151
with:
52+
fetch-depth: 0
5253
persist-credentials: false
5354
- name: Setup Node.js
5455
uses: actions/setup-node@v3
@@ -76,6 +77,8 @@ jobs:
7677
NEXT_VERSION: ${{ needs.get_dry_release_versions.outputs.next_version }}
7778
steps:
7879
- uses: actions/checkout@v4
80+
with:
81+
fetch-depth: 0
7982
- name: Setup Node.js
8083
uses: actions/setup-node@v3
8184
with:
@@ -108,7 +111,7 @@ jobs:
108111
- name: Install Go
109112
uses: actions/setup-go@v2
110113
with:
111-
go-version: 1.22.9
114+
go-version: 1.24.12
112115
- name: Build & version operator-specific release files
113116
run: make -C infra/feast-operator build-installer bundle
114117

@@ -126,6 +129,7 @@ jobs:
126129
- name: Checkout
127130
uses: actions/checkout@v4
128131
with:
132+
fetch-depth: 0
129133
persist-credentials: false
130134
- name: Setup Node.js
131135
uses: actions/setup-node@v3
@@ -140,7 +144,7 @@ jobs:
140144
- name: Install Go
141145
uses: actions/setup-go@v2
142146
with:
143-
go-version: 1.22.9
147+
go-version: 1.24.12
144148
- name: Compile Go Test Binaries
145149
run: |
146150
cd infra/feast-operator
@@ -172,6 +176,7 @@ jobs:
172176
- name: Checkout code
173177
uses: actions/checkout@v4
174178
with:
179+
fetch-depth: 0
175180
persist-credentials: false
176181

177182
- name: Set up Git credentials

.secrets.baseline

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)