rightsize 0.7.12 → 0.7.13

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.
@@ -4,7 +4,7 @@ import type { Platform } from "./platform.js";
4
4
  * while msb 0.6.10-0.6.13 were broken on Windows (fixed upstream in 0.6.14).
5
5
  * MSB_PATH users on Windows must avoid 0.6.10-0.6.13.
6
6
  */
7
- export declare const MSB_VERSION = "0.7.1";
7
+ export declare const MSB_VERSION = "0.7.3";
8
8
  /** Test seam: the full resolution logic parameterized over the release base URL, cache dir, and environment. */
9
9
  export declare function ensureInstalledAt(baseUrl: string, cacheDir: string, env: Record<string, string | undefined>): Promise<string>;
10
10
  /** Resolves (downloading and verifying if needed) a runnable `msb` binary path, using the real GitHub release base, `RIGHTSIZE_CACHE_DIR`, and `process.env`. */
@@ -12,7 +12,7 @@ import { PlatformInfo } from "./platform.js";
12
12
  * while msb 0.6.10-0.6.13 were broken on Windows (fixed upstream in 0.6.14).
13
13
  * MSB_PATH users on Windows must avoid 0.6.10-0.6.13.
14
14
  */
15
- export const MSB_VERSION = "0.7.1";
15
+ export const MSB_VERSION = "0.7.3";
16
16
  function releaseBaseUrl(version) {
17
17
  return `https://github.com/superradcompany/microsandbox/releases/download/v${version}`;
18
18
  }
@@ -17,11 +17,14 @@ import { DockerImageName } from "../core/docker-image-name.js";
17
17
  * Readiness is a protocol-aware HTTP check against `/minio/health/live` on
18
18
  * the API port — verified answering 200 on the very first poll after boot.
19
19
  *
20
- * No-arg construction floats to `quay.io/minio/minio:latest` (Docker Hub's
21
- * `minio/minio` repository was removed upstream — see `DEFAULT_IMAGE`'s own
22
- * comment), so the version tracks upstream rather than this library's
23
- * release cycle (verified against `minio/minio:RELEASE.2025-09-07T16-13-09Z`,
24
- * before the Docker Hub removal).
20
+ * No-arg construction floats to `pgsty/minio:latest` (see `DEFAULT_IMAGE`
21
+ * for why), so the version moves with that image's releases rather than
22
+ * this library's. `minio/minio` and `quay.io/minio/minio` images are still
23
+ * accepted. Verified against `minio/minio:RELEASE.2025-09-07T16-13-09Z`;
24
+ * readiness, auth enforcement, and the `mc` round-trip were verified again
25
+ * by this module's integration test against
26
+ * `pgsty/minio:RELEASE.2026-08-04T00-00-00Z` (what `latest` pointed at) on
27
+ * msb 0.7.3.
25
28
  */
26
29
  export declare class MinIOContainer extends GenericContainer {
27
30
  private rootUserState;
@@ -1 +1 @@
1
- {"version":3,"file":"minio.d.ts","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAe/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,KAAK,GAAE,MAAM,GAAG,eAA+B;WAcrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrG,wDAAwD;IACxD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC,kHAAkH;IAClH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,qDAAqD;IACrD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,6DAA6D;IAC7D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uDAAuD;IACvD,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
1
+ {"version":3,"file":"minio.d.ts","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAyB/D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,KAAK,GAAE,MAAM,GAAG,eAA+B;WAcrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrG,wDAAwD;IACxD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC,kHAAkH;IAClH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,qDAAqD;IACrD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,6DAA6D;IAC7D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uDAAuD;IACvD,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
@@ -4,15 +4,24 @@ import { DockerImageName } from "../core/docker-image-name.js";
4
4
  const API_PORT = 9000;
5
5
  const CONSOLE_PORT = 9001;
6
6
  const EXPECTED_REPOSITORY = "minio/minio";
7
- // Docker Hub's `minio/minio` repository has been removed upstream (`docker
8
- // pull minio/minio` now fails with "repository does not exist") — the
9
- // default floats to `quay.io/minio/minio:latest`, MinIO's maintained mirror,
10
- // instead. `requireCompatible` below strips the registry host before
11
- // comparing against EXPECTED_REPOSITORY, so this is the only line that
12
- // needed to change: a caller-supplied `minio/minio:<tag>` override (from a
13
- // mirror that still serves it, or a private registry) and a
14
- // `quay.io/minio/minio:<tag>` override are both still accepted, unchanged.
15
- const DEFAULT_IMAGE = "quay.io/minio/minio:latest";
7
+ // MinIO no longer publishes public images: Docker Hub's `minio/minio` was
8
+ // removed, and as of September 2026 `quay.io/minio/minio`, this module's
9
+ // previous default, refuses anonymous pulls (HTTP 401). `pgsty/minio` is
10
+ // Pigsty's community build of MinIO from source, published on Docker Hub
11
+ // for linux/amd64 and linux/arm64 with upstream's image layout (the same
12
+ // entrypoint and env defaults, `mc` bundled).
13
+ const DEFAULT_IMAGE = "pgsty/minio:latest";
14
+ const PGSTY_REPOSITORY = "pgsty/minio";
15
+ /**
16
+ * `pgsty/minio` is this module's own default, so it counts as a substitute
17
+ * for `EXPECTED_REPOSITORY` without the caller declaring it. Every other
18
+ * image, including `minio/minio` and `quay.io/minio/minio`, passes through
19
+ * unchanged for `requireCompatible` to check as usual.
20
+ */
21
+ function resolveCompatibleImage(image) {
22
+ const name = typeof image === "string" ? DockerImageName.parse(image) : image;
23
+ return name.repository === PGSTY_REPOSITORY ? name.asCompatibleSubstituteFor(EXPECTED_REPOSITORY) : image;
24
+ }
16
25
  /**
17
26
  * A single-node MinIO container — an S3-compatible object store. Requires
18
27
  * an explicit command: the image's default ENTRYPOINT alone does not serve,
@@ -30,24 +39,27 @@ const DEFAULT_IMAGE = "quay.io/minio/minio:latest";
30
39
  * Readiness is a protocol-aware HTTP check against `/minio/health/live` on
31
40
  * the API port — verified answering 200 on the very first poll after boot.
32
41
  *
33
- * No-arg construction floats to `quay.io/minio/minio:latest` (Docker Hub's
34
- * `minio/minio` repository was removed upstream — see `DEFAULT_IMAGE`'s own
35
- * comment), so the version tracks upstream rather than this library's
36
- * release cycle (verified against `minio/minio:RELEASE.2025-09-07T16-13-09Z`,
37
- * before the Docker Hub removal).
42
+ * No-arg construction floats to `pgsty/minio:latest` (see `DEFAULT_IMAGE`
43
+ * for why), so the version moves with that image's releases rather than
44
+ * this library's. `minio/minio` and `quay.io/minio/minio` images are still
45
+ * accepted. Verified against `minio/minio:RELEASE.2025-09-07T16-13-09Z`;
46
+ * readiness, auth enforcement, and the `mc` round-trip were verified again
47
+ * by this module's integration test against
48
+ * `pgsty/minio:RELEASE.2026-08-04T00-00-00Z` (what `latest` pointed at) on
49
+ * msb 0.7.3.
38
50
  */
39
51
  export class MinIOContainer extends GenericContainer {
40
52
  rootUserState = "testuser";
41
53
  rootPasswordState = "testpassword";
42
54
  constructor(image = DEFAULT_IMAGE) {
43
- super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
55
+ super(DockerImageName.requireCompatible(resolveCompatibleImage(image), EXPECTED_REPOSITORY));
44
56
  this.withExposedPorts(API_PORT, CONSOLE_PORT)
45
57
  .withCommand("server", "/data", "--console-address", ":9001")
46
58
  .withEnv("MINIO_ROOT_USER", this.rootUserState)
47
59
  .withEnv("MINIO_ROOT_PASSWORD", this.rootPasswordState)
48
60
  .waitingFor(Wait.forHttp("/minio/health/live").forPort(API_PORT));
49
- // No withMemoryLimit override: the round-trip that verified this module
50
- // ran at 1024 MB, but whether MinIO actually needs more than msb's
61
+ // No withMemoryLimit override: the `minio/minio` round-trip that verified
62
+ // this module ran at 1024 MB, but whether MinIO actually needs more than msb's
51
63
  // default microVM sizing was never isolated in that pass — a floor
52
64
  // belongs here once that's measured on its own, not assumed from a
53
65
  // number that included the whole round-trip's overhead.
@@ -1 +1 @@
1
- {"version":3,"file":"minio.js","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,2EAA2E;AAC3E,sEAAsE;AACtE,6EAA6E;AAC7E,qEAAqE;AACrE,uEAAuE;AACvE,2EAA2E;AAC3E,4DAA4D;AAC5D,2EAA2E;AAC3E,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAC1C,aAAa,GAAG,UAAU,CAAC;IAC3B,iBAAiB,GAAG,cAAc,CAAC;IAE3C,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;aAC1C,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC;aAC5D,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC9C,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC;aACtD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,wDAAwD;IAC1D,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAmB,CAAC;IACrE,CAAC;IAED,wDAAwD;IACxD,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,kHAAkH;IAClH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,6DAA6D;IAC7D,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,uDAAuD;IACvD,IAAI,WAAW;QACb,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"minio.js","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;AACzE,8CAA8C;AAC9C,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAC3C,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAEvC;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,KAA+B;IAC7D,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9E,OAAO,IAAI,CAAC,UAAU,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5G,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAC1C,aAAa,GAAG,UAAU,CAAC;IAC3B,iBAAiB,GAAG,cAAc,CAAC;IAE3C,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;aAC1C,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC;aAC5D,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC9C,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC;aACtD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,0EAA0E;QAC1E,+EAA+E;QAC/E,mEAAmE;QACnE,mEAAmE;QACnE,wDAAwD;IAC1D,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAmB,CAAC;IACrE,CAAC;IAED,wDAAwD;IACxD,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,kHAAkH;IAClH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,6DAA6D;IAC7D,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,uDAAuD;IACvD,IAAI,WAAW;QACb,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/D,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rightsize",
3
- "version": "0.7.12",
3
+ "version": "0.7.13",
4
4
  "description": "Testcontainers-style integration testing on microsandbox microVMs, with a Docker fallback and an await-using lifecycle. No Docker required.",
5
5
  "keywords": [
6
6
  "testcontainers",