@reventlessdev/reventless-infra 3.0.0-alpha.101 → 3.0.0-alpha.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 3.0.0-alpha.103 (2026-07-22)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @reventlessdev/reventless-infra
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# 3.0.0-alpha.102 (2026-07-17)
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **runtime:** platform-supplied EP/task pod runtime floors ([37544d0](https://github.com/ReventlessDev/reventless-core/commit/37544d029d278bbcae6eeb0f583da07d6ce70f04))
|
|
19
|
+
|
|
20
|
+
|
|
6
21
|
# 3.0.0-alpha.101 (2026-07-16)
|
|
7
22
|
|
|
8
23
|
### Features
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/reventless-infra",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.103",
|
|
4
4
|
"description": "Infrastructure types for Reventless framework",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"sury": "11.0.0-alpha.4",
|
|
17
17
|
"sury-ppx": "11.0.0-alpha.2",
|
|
18
18
|
"uuid": "^13.0.0",
|
|
19
|
-
"@reventlessdev/rescript-
|
|
20
|
-
"@reventlessdev/rescript-
|
|
21
|
-
"@reventlessdev/
|
|
22
|
-
"@reventlessdev/
|
|
19
|
+
"@reventlessdev/rescript-effect": "0.1.0-alpha.30",
|
|
20
|
+
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.17",
|
|
21
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.80",
|
|
22
|
+
"@reventlessdev/rescript-uuid": "1.1.0-alpha.17"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"rescript": "12.3.0",
|
|
26
|
-
"@reventlessdev/rescript-jest": "1.0.0-alpha.
|
|
26
|
+
"@reventlessdev/rescript-jest": "1.0.0-alpha.9"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"rescript": "12.3.0"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
36
|
"url": "git+https://github.com/ReventlessDev/reventless-core.git",
|
|
37
|
-
"directory": "reventless/
|
|
37
|
+
"directory": "reventless/infra"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "rescript build",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Platform-supplied per-kind runtime floor for pods that are sized straight from
|
|
3
|
+
core's resolved value (extension-point and task pods).
|
|
4
|
+
|
|
5
|
+
`RuntimeHints.resolveMemory`/`resolveTimeout` take a `~default` that is the
|
|
6
|
+
per-kind floor an override can only raise (`Math.Int.max`). For EP/task pods that
|
|
7
|
+
default is a *deployment* fact — how big a pod this platform wants — not a domain
|
|
8
|
+
fact, so the platform (not a core constant) supplies it. Each platform binds this
|
|
9
|
+
module at the seam where it applies the core `ExtensionPoint_Builder.Make` /
|
|
10
|
+
`Task_Builder.Make` functor; core feeds the two `let`s into `resolveMemory` /
|
|
11
|
+
`resolveTimeout` in place of the old hardcoded literals.
|
|
12
|
+
|
|
13
|
+
See docs/plans/runtime-hints-platform-supplied-defaults.md.
|
|
14
|
+
*/
|
|
15
|
+
module type T = {
|
|
16
|
+
let memorySize: int // MiB floor for this pod kind on this platform
|
|
17
|
+
let timeout: int // seconds
|
|
18
|
+
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
|
|
3
|
-
import * as DeployBootstrap$ReventlessInfra from "../src/components/DeployBootstrap.res.mjs";
|
|
4
|
-
|
|
5
|
-
globalThis.describe("DeployBootstrap", () => {
|
|
6
|
-
globalThis.describe("run with no registrations", () => {
|
|
7
|
-
globalThis.test("is a no-op that does not throw", () => {
|
|
8
|
-
DeployBootstrap$ReventlessInfra.reset();
|
|
9
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
10
|
-
DeployBootstrap$ReventlessInfra.run("PostDeploy");
|
|
11
|
-
globalThis.expect(true).toBe(true);
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
|
-
globalThis.describe("registration order within a phase", () => {
|
|
15
|
-
globalThis.test("runs contributions in the order they were registered", () => {
|
|
16
|
-
DeployBootstrap$ReventlessInfra.reset();
|
|
17
|
-
let calls = [];
|
|
18
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
19
|
-
calls.push("a");
|
|
20
|
-
});
|
|
21
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
22
|
-
calls.push("b");
|
|
23
|
-
});
|
|
24
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
25
|
-
calls.push("c");
|
|
26
|
-
});
|
|
27
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
28
|
-
globalThis.expect(calls).toEqual([
|
|
29
|
-
"a",
|
|
30
|
-
"b",
|
|
31
|
-
"c"
|
|
32
|
-
]);
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
globalThis.describe("phase isolation", () => {
|
|
36
|
-
globalThis.test("run(PreDeploy) fires only PreDeploy contributions", () => {
|
|
37
|
-
DeployBootstrap$ReventlessInfra.reset();
|
|
38
|
-
let calls = [];
|
|
39
|
-
DeployBootstrap$ReventlessInfra.register("PreDeploy", () => {
|
|
40
|
-
calls.push("pre");
|
|
41
|
-
});
|
|
42
|
-
DeployBootstrap$ReventlessInfra.register("PostDeploy", () => {
|
|
43
|
-
calls.push("post");
|
|
44
|
-
});
|
|
45
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
46
|
-
globalThis.expect(calls).toEqual(["pre"]);
|
|
47
|
-
DeployBootstrap$ReventlessInfra.run("PostDeploy");
|
|
48
|
-
globalThis.expect(calls).toEqual([
|
|
49
|
-
"pre",
|
|
50
|
-
"post"
|
|
51
|
-
]);
|
|
52
|
-
});
|
|
53
|
-
globalThis.test("defaults to PreDeploy when no phase is given", () => {
|
|
54
|
-
DeployBootstrap$ReventlessInfra.reset();
|
|
55
|
-
let calls = [];
|
|
56
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
57
|
-
calls.push("default");
|
|
58
|
-
});
|
|
59
|
-
DeployBootstrap$ReventlessInfra.run("PostDeploy");
|
|
60
|
-
globalThis.expect(calls).toEqual([]);
|
|
61
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
62
|
-
globalThis.expect(calls).toEqual(["default"]);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
globalThis.describe("idempotent run per phase", () => {
|
|
66
|
-
globalThis.test("running an already-run phase does nothing", () => {
|
|
67
|
-
DeployBootstrap$ReventlessInfra.reset();
|
|
68
|
-
let count = {
|
|
69
|
-
contents: 0
|
|
70
|
-
};
|
|
71
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
72
|
-
count.contents = count.contents + 1 | 0;
|
|
73
|
-
});
|
|
74
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
75
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
76
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
77
|
-
globalThis.expect(count.contents).toBe(1);
|
|
78
|
-
});
|
|
79
|
-
globalThis.test("a contribution registered after run does not fire", () => {
|
|
80
|
-
DeployBootstrap$ReventlessInfra.reset();
|
|
81
|
-
let calls = [];
|
|
82
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
83
|
-
calls.push("before");
|
|
84
|
-
});
|
|
85
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
86
|
-
DeployBootstrap$ReventlessInfra.register(undefined, () => {
|
|
87
|
-
calls.push("after");
|
|
88
|
-
});
|
|
89
|
-
DeployBootstrap$ReventlessInfra.run("PreDeploy");
|
|
90
|
-
globalThis.expect(calls).toEqual(["before"]);
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
let DB;
|
|
96
|
-
|
|
97
|
-
export {
|
|
98
|
-
DB,
|
|
99
|
-
}
|
|
100
|
-
/* Not a pure module */
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
-
|
|
3
|
-
import * as RuntimeHints$ReventlessInfra from "../src/types/RuntimeHints.res.mjs";
|
|
4
|
-
|
|
5
|
-
globalThis.describe("RuntimeHints.resolveMemory", () => {
|
|
6
|
-
globalThis.test("no hint falls through to the per-kind default", () => {
|
|
7
|
-
globalThis.expect(RuntimeHints$ReventlessInfra.resolveMemory(undefined, 1024)).toBe(1024);
|
|
8
|
-
});
|
|
9
|
-
globalThis.test("an override above the default wins", () => {
|
|
10
|
-
globalThis.expect(RuntimeHints$ReventlessInfra.resolveMemory({
|
|
11
|
-
memorySize: 2048,
|
|
12
|
-
timeout: undefined
|
|
13
|
-
}, 1024)).toBe(2048);
|
|
14
|
-
});
|
|
15
|
-
globalThis.test("an override below the default is clamped up to the floor", () => {
|
|
16
|
-
globalThis.expect(RuntimeHints$ReventlessInfra.resolveMemory({
|
|
17
|
-
memorySize: 256,
|
|
18
|
-
timeout: undefined
|
|
19
|
-
}, 1024)).toBe(1024);
|
|
20
|
-
});
|
|
21
|
-
globalThis.test("an absent memorySize field falls through to the default", () => {
|
|
22
|
-
globalThis.expect(RuntimeHints$ReventlessInfra.resolveMemory({
|
|
23
|
-
memorySize: undefined,
|
|
24
|
-
timeout: 60
|
|
25
|
-
}, 1024)).toBe(1024);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
globalThis.describe("RuntimeHints.resolveTimeout", () => {
|
|
30
|
-
globalThis.test("an explicit timeout replaces the default (no max)", () => {
|
|
31
|
-
globalThis.expect(RuntimeHints$ReventlessInfra.resolveTimeout({
|
|
32
|
-
memorySize: undefined,
|
|
33
|
-
timeout: 15
|
|
34
|
-
}, 30)).toBe(15);
|
|
35
|
-
});
|
|
36
|
-
globalThis.test("no hint falls through to the default", () => {
|
|
37
|
-
globalThis.expect(RuntimeHints$ReventlessInfra.resolveTimeout(undefined, 30)).toBe(30);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
let RH;
|
|
42
|
-
|
|
43
|
-
export {
|
|
44
|
-
RH,
|
|
45
|
-
}
|
|
46
|
-
/* Not a pure module */
|