Skip to content

Commit 2958935

Browse files
authored
ci[minor]: Add more packages to lowest/latest deps ci workflow (#5703)
* ci[minor]: Add more packages to lowest/latest deps ci workflow * update lc lowest deps to actual lc deps * cr * cr * langchain lowest and latest working * all passing * added openai * add missing ts-jest devdep to openai * add anthropic, add missing ts-jest dep to anthropic * install deps first in workflow * use overrides instead of resoultions, add missing step to workflow * refactor a lot of code into a shared script * fix anthropic and grammar * revert unwanted change
1 parent 6b6690f commit 2958935

40 files changed

+752
-67
lines changed

.github/workflows/compatibility.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ env:
2828
# Run a separate job for each check in the docker-compose file,
2929
# so that they run in parallel instead of overwhelming the default 2 CPU runner.
3030
jobs:
31+
# LangChain
3132
test-langchain-with-latest-deps:
3233
runs-on: ubuntu-latest
3334
steps:
@@ -37,6 +38,10 @@ jobs:
3738
with:
3839
node-version: ${{ env.NODE_VERSION }}
3940
cache: "yarn"
41+
- name: Install dependencies
42+
run: yarn install --immutable
43+
- name: Build `@langchain/standard-tests`
44+
run: yarn build --filter=@langchain/standard-tests
4045
- name: Test LangChain with latest deps
4146
run: docker compose -f dependency_range_tests/docker-compose.yml run test-langchain-with-latest-deps
4247

@@ -49,5 +54,108 @@ jobs:
4954
with:
5055
node-version: ${{ env.NODE_VERSION }}
5156
cache: "yarn"
57+
- name: Install dependencies
58+
run: yarn install --immutable
59+
- name: Build `@langchain/standard-tests`
60+
run: yarn build --filter=@langchain/standard-tests
5261
- name: Test LangChain with lowest deps
5362
run: docker compose -f dependency_range_tests/docker-compose.yml run test-langchain-with-lowest-deps
63+
64+
# Community
65+
test-community-with-latest-deps:
66+
runs-on: ubuntu-latest
67+
steps:
68+
- uses: actions/checkout@v4
69+
- name: Use Node.js ${{ env.NODE_VERSION }}
70+
uses: actions/setup-node@v3
71+
with:
72+
node-version: ${{ env.NODE_VERSION }}
73+
cache: "yarn"
74+
- name: Install dependencies
75+
run: yarn install --immutable
76+
- name: Build `@langchain/standard-tests`
77+
run: yarn build --filter=@langchain/standard-tests
78+
- name: Test `@langchain/community` with latest deps
79+
run: docker compose -f dependency_range_tests/docker-compose.yml run test-community-with-latest-deps
80+
81+
test-community-with-lowest-deps:
82+
runs-on: ubuntu-latest
83+
steps:
84+
- uses: actions/checkout@v4
85+
- name: Use Node.js ${{ env.NODE_VERSION }}
86+
uses: actions/setup-node@v3
87+
with:
88+
node-version: ${{ env.NODE_VERSION }}
89+
cache: "yarn"
90+
- name: Install dependencies
91+
run: yarn install --immutable
92+
- name: Build `@langchain/standard-tests`
93+
run: yarn build --filter=@langchain/standard-tests
94+
- name: Test `@langchain/community` with lowest deps
95+
run: docker compose -f dependency_range_tests/docker-compose.yml run test-community-with-lowest-deps
96+
97+
# OpenAI
98+
test-openai-with-latest-deps:
99+
runs-on: ubuntu-latest
100+
steps:
101+
- uses: actions/checkout@v4
102+
- name: Use Node.js ${{ env.NODE_VERSION }}
103+
uses: actions/setup-node@v3
104+
with:
105+
node-version: ${{ env.NODE_VERSION }}
106+
cache: "yarn"
107+
- name: Install dependencies
108+
run: yarn install --immutable
109+
- name: Build `@langchain/standard-tests`
110+
run: yarn build --filter=@langchain/standard-tests
111+
- name: Test `@langchain/openai` with latest deps
112+
run: docker compose -f dependency_range_tests/docker-compose.yml run test-openai-with-latest-deps
113+
114+
test-openai-with-lowest-deps:
115+
runs-on: ubuntu-latest
116+
steps:
117+
- uses: actions/checkout@v4
118+
- name: Use Node.js ${{ env.NODE_VERSION }}
119+
uses: actions/setup-node@v3
120+
with:
121+
node-version: ${{ env.NODE_VERSION }}
122+
cache: "yarn"
123+
- name: Install dependencies
124+
run: yarn install --immutable
125+
- name: Build `@langchain/standard-tests`
126+
run: yarn build --filter=@langchain/standard-tests
127+
- name: Test `@langchain/openai` with lowest deps
128+
run: docker compose -f dependency_range_tests/docker-compose.yml run test-openai-with-lowest-deps
129+
130+
# Anthropic
131+
test-anthropic-with-latest-deps:
132+
runs-on: ubuntu-latest
133+
steps:
134+
- uses: actions/checkout@v4
135+
- name: Use Node.js ${{ env.NODE_VERSION }}
136+
uses: actions/setup-node@v3
137+
with:
138+
node-version: ${{ env.NODE_VERSION }}
139+
cache: "yarn"
140+
- name: Install dependencies
141+
run: yarn install --immutable
142+
- name: Build `@langchain/standard-tests`
143+
run: yarn build --filter=@langchain/standard-tests
144+
- name: Test `@langchain/anthropic` with latest deps
145+
run: docker compose -f dependency_range_tests/docker-compose.yml run test-anthropic-with-latest-deps
146+
147+
test-anthropic-with-lowest-deps:
148+
runs-on: ubuntu-latest
149+
steps:
150+
- uses: actions/checkout@v4
151+
- name: Use Node.js ${{ env.NODE_VERSION }}
152+
uses: actions/setup-node@v3
153+
with:
154+
node-version: ${{ env.NODE_VERSION }}
155+
cache: "yarn"
156+
- name: Install dependencies
157+
run: yarn install --immutable
158+
- name: Build `@langchain/standard-tests`
159+
run: yarn build --filter=@langchain/standard-tests
160+
- name: Test `@langchain/anthropic` with lowest deps
161+
run: docker compose -f dependency_range_tests/docker-compose.yml run test-anthropic-with-lowest-deps
Lines changed: 96 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
version: "3"
22
services:
3+
# LangChain
34
test-langchain-with-latest-deps:
45
image: node:18
56
environment:
@@ -10,7 +11,7 @@ services:
1011
volumes:
1112
- ../langchain:/langchain
1213
- ./scripts:/scripts
13-
command: bash /scripts/test-langchain-with-latest-deps.sh
14+
command: bash /scripts/langchain/test-with-latest-deps.sh
1415
test-langchain-with-lowest-deps:
1516
image: node:18
1617
environment:
@@ -19,14 +20,99 @@ services:
1920
COHERE_API_KEY: ${COHERE_API_KEY}
2021
working_dir: /app
2122
volumes:
23+
- ../turbo.json:/turbo.json
24+
- ../package.json:/package.json
25+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
2226
- ../langchain:/langchain
2327
- ./scripts:/scripts
24-
command: bash /scripts/test-langchain-with-lowest-deps.sh
25-
success:
26-
image: alpine:3.14
27-
command: echo "Success"
28-
depends_on:
29-
test-langchain-with-latest-deps:
30-
condition: service_completed_successfully
31-
test-langchain-with-lowest-deps:
32-
condition: service_completed_successfully
28+
command: bash /scripts/langchain/test-with-lowest-deps.sh
29+
30+
# Community
31+
test-community-with-latest-deps:
32+
image: node:18
33+
environment:
34+
PUPPETEER_SKIP_DOWNLOAD: "true"
35+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true"
36+
COHERE_API_KEY: ${COHERE_API_KEY}
37+
working_dir: /app
38+
volumes:
39+
- ../turbo.json:/turbo.json
40+
- ../package.json:/package.json
41+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
42+
- ../libs/langchain-community:/libs/langchain-community
43+
- ./scripts:/scripts
44+
command: bash /scripts/with_standard_tests/community/test-with-latest-deps.sh
45+
test-community-with-lowest-deps:
46+
image: node:18
47+
environment:
48+
PUPPETEER_SKIP_DOWNLOAD: "true"
49+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true"
50+
COHERE_API_KEY: ${COHERE_API_KEY}
51+
working_dir: /app
52+
volumes:
53+
- ../turbo.json:/turbo.json
54+
- ../package.json:/package.json
55+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
56+
- ../libs/langchain-community:/libs/langchain-community
57+
- ./scripts:/scripts
58+
command: bash /scripts/with_standard_tests/community/test-with-lowest-deps.sh
59+
60+
# OpenAI
61+
test-openai-with-latest-deps:
62+
image: node:18
63+
environment:
64+
PUPPETEER_SKIP_DOWNLOAD: "true"
65+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true"
66+
COHERE_API_KEY: ${COHERE_API_KEY}
67+
working_dir: /app
68+
volumes:
69+
- ../turbo.json:/turbo.json
70+
- ../package.json:/package.json
71+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
72+
- ../libs/langchain-openai:/libs/langchain-openai
73+
- ./scripts:/scripts
74+
command: bash /scripts/with_standard_tests/openai/test-with-latest-deps.sh
75+
test-openai-with-lowest-deps:
76+
image: node:18
77+
environment:
78+
PUPPETEER_SKIP_DOWNLOAD: "true"
79+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true"
80+
COHERE_API_KEY: ${COHERE_API_KEY}
81+
working_dir: /app
82+
volumes:
83+
- ../turbo.json:/turbo.json
84+
- ../package.json:/package.json
85+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
86+
- ../libs/langchain-openai:/libs/langchain-openai
87+
- ./scripts:/scripts
88+
command: bash /scripts/with_standard_tests/openai/test-with-lowest-deps.sh
89+
90+
# Anthropic
91+
test-anthropic-with-latest-deps:
92+
image: node:18
93+
environment:
94+
PUPPETEER_SKIP_DOWNLOAD: "true"
95+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true"
96+
COHERE_API_KEY: ${COHERE_API_KEY}
97+
working_dir: /app
98+
volumes:
99+
- ../turbo.json:/turbo.json
100+
- ../package.json:/package.json
101+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
102+
- ../libs/langchain-anthropic:/libs/langchain-anthropic
103+
- ./scripts:/scripts
104+
command: bash /scripts/with_standard_tests/anthropic/test-with-latest-deps.sh
105+
test-anthropic-with-lowest-deps:
106+
image: node:18
107+
environment:
108+
PUPPETEER_SKIP_DOWNLOAD: "true"
109+
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true"
110+
COHERE_API_KEY: ${COHERE_API_KEY}
111+
working_dir: /app
112+
volumes:
113+
- ../turbo.json:/turbo.json
114+
- ../package.json:/package.json
115+
- ../libs/langchain-standard-tests:/libs/langchain-standard-tests
116+
- ../libs/langchain-anthropic:/libs/langchain-anthropic
117+
- ./scripts:/scripts
118+
command: bash /scripts/with_standard_tests/anthropic/test-with-lowest-deps.sh
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const fs = require("fs");
2+
const semver = require("semver");
3+
4+
const communityPackageJsonPath = "package.json";
5+
6+
const currentPackageJson = JSON.parse(fs.readFileSync(communityPackageJsonPath));
7+
8+
if (currentPackageJson.dependencies["@langchain/core"] && !currentPackageJson.dependencies["@langchain/core"].includes("rc")) {
9+
const minVersion = semver.minVersion(
10+
currentPackageJson.dependencies["@langchain/core"]
11+
).version;
12+
currentPackageJson.overrides = {
13+
...currentPackageJson.overrides,
14+
"@langchain/core": minVersion,
15+
};
16+
currentPackageJson.dependencies = {
17+
...currentPackageJson.dependencies,
18+
"@langchain/core": minVersion,
19+
};
20+
}
21+
22+
if (currentPackageJson.dependencies["@langchain/openai"] && !currentPackageJson.dependencies["@langchain/openai"].includes("rc")) {
23+
const minVersion = semver.minVersion(
24+
currentPackageJson.dependencies["@langchain/openai"]
25+
).version;
26+
currentPackageJson.overrides = {
27+
...currentPackageJson.overrides,
28+
"@langchain/openai": minVersion,
29+
};
30+
currentPackageJson.dependencies = {
31+
...currentPackageJson.dependencies,
32+
"@langchain/openai": minVersion,
33+
};
34+
}
35+
36+
if (currentPackageJson.dependencies["@langchain/textsplitters"] && !currentPackageJson.dependencies["@langchain/textsplitters"].includes("rc")) {
37+
const minVersion = semver.minVersion(
38+
currentPackageJson.dependencies["@langchain/textsplitters"]
39+
).version;
40+
currentPackageJson.overrides = {
41+
...currentPackageJson.overrides,
42+
"@langchain/textsplitters": minVersion,
43+
};
44+
currentPackageJson.dependencies = {
45+
...currentPackageJson.dependencies,
46+
"@langchain/textsplitters": minVersion,
47+
};
48+
}
49+
50+
fs.writeFileSync(communityPackageJsonPath, JSON.stringify(currentPackageJson, null, 2));

dependency_range_tests/scripts/test-langchain-with-lowest-deps.sh renamed to dependency_range_tests/scripts/langchain/test-with-lowest-deps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ shopt -s extglob
1111
cp -r ../langchain/!(node_modules|dist|dist-cjs|dist-esm|build|.next|.turbo) ./
1212

1313
mkdir -p /updater_script
14-
cp -r /scripts/node/!(node_modules|dist|dist-cjs|dist-esm|build|.next|.turbo) /updater_script/
14+
cp -r /scripts/langchain/node/!(node_modules|dist|dist-cjs|dist-esm|build|.next|.turbo) /updater_script/
1515

1616
cd /updater_script
1717

dependency_range_tests/scripts/node/update_resolutions_lowest.js

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "dependency-range-tests",
3+
"version": "0.0.0",
4+
"private": true,
5+
"description": "Tests dependency ranges for LangChain.",
6+
"dependencies": {
7+
"semver": "^7.5.4"
8+
}
9+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const fs = require("fs");
2+
const semver = require("semver");
3+
4+
const communityPackageJsonPath = "/app/monorepo/libs/langchain-anthropic/package.json";
5+
6+
const currentPackageJson = JSON.parse(fs.readFileSync(communityPackageJsonPath));
7+
8+
if (currentPackageJson.dependencies["@langchain/core"] && !currentPackageJson.dependencies["@langchain/core"].includes("rc")) {
9+
const minVersion = semver.minVersion(
10+
currentPackageJson.dependencies["@langchain/core"]
11+
).version;
12+
currentPackageJson.overrides = {
13+
...currentPackageJson.overrides,
14+
"@langchain/core": minVersion,
15+
};
16+
currentPackageJson.dependencies = {
17+
...currentPackageJson.dependencies,
18+
"@langchain/core": minVersion,
19+
};
20+
}
21+
22+
fs.writeFileSync(communityPackageJsonPath, JSON.stringify(currentPackageJson, null, 2));

0 commit comments

Comments
 (0)