Conversation
Member
Author
Member
Author
6543
commented
Sep 29, 2024
| push(args: string[]): Promise<void>; | ||
| } | ||
|
|
||
| export function simpleGit(): SimpleGit { |
Member
Author
There was a problem hiding this comment.
mostly untested & we should add tests for it anyway ...
Contributor
|
Will this also reduce the image size? Could we even use a scratch image? |
Member
Author
|
not scratch jet as we need the git binary working but yes that's a way to move towards it :) |
Member
Author
|
the image size would probably increase by ~50Mb but the image would be silli and dont contain any unessesary build-time deps and other unrelated stuff PS: this here is just a POC if it would work at all |
Member
Author
|
tldr: if we have a static linked git binary + the deno binary we should be able to use FROM scratch |
Contributor
|
6543
pushed a commit
that referenced
this pull request
Jul 17, 2026
Deno 2's Node compatibility runs the existing tsx/Node sources unchanged, so a hand-rolled git wrapper (as attempted in #186 via the removed Deno.run API) is unnecessary; simple-git and process.env keep working as-is. deno.json carries Deno's own compilerOptions since it misreads the Node-oriented tsconfig, and the compile task skips type-checking because tsc already covers it and @types/node is absent from production installs. Runtime loading of release-config.ts from disk keeps working inside the compiled binary. Installing with --prod before compiling shrinks the embedded node_modules from ~100MB to ~21MB. Refs #186
Deno 2's Node compatibility runs the existing tsx/Node sources unchanged, so a hand-rolled git wrapper (as attempted in #186 via the removed Deno.run API) is unnecessary; simple-git and process.env keep working as-is. deno.json carries Deno's own compilerOptions since it misreads the Node-oriented tsconfig, and the compile task skips type-checking because tsc already covers it and @types/node is absent from production installs. Runtime loading of release-config.ts from disk keeps working inside the compiled binary. Installing with --prod before compiling shrinks the embedded node_modules from ~100MB to ~21MB. Refs #186
Deno resolves npm dependencies straight from package.json and locks them in deno.lock, so pnpm, corepack and node are no longer needed for development. tsx is replaced by deno run, tsc by deno check (which ships its own node types, dropping typescript and @types/node), and vitest and prettier keep running unchanged through deno run npm:. The tsconfig moves into deno.json compilerOptions. CI switches from the node image with corepack to the deno image running the same tasks.
deno covers runtime, package management, type checking and the language server, so nodejs, pnpm, typescript and typescript-language-server can go.
The image previously shipped node_modules plus sources and ran tsx at startup via a node base image. A single deno build stage installs the runtime npm dependencies (devDependencies are stripped first so only ~10MB of packages get embedded) and compiles the binary; the final stage is node-free and contains just git, git-lfs, wget, CA certificates and the binary. scratch and alpine finals were evaluated and rejected: deno compile has no musl target and the glibc binary fails on alpine even with gcompat (__res_init missing), and the plugin needs the git CLI, /bin/sh for hooks and CA certs at runtime. Unverified with docker build (no docker daemon available); the build stage was replayed manually from the exact copied file set and the resulting binary smoke-tested.
6543
commented
Jul 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


based on #609
https://deno.com/blog/v1.46