Skip to content

ci: merge staging to master #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "exec"
version = "0.1.5"
version = "1.0.0"
authors = ["Brian Botha <[email protected]>"]
license-file = "LICENSE"
edition = "2021"
Expand Down
19 changes: 13 additions & 6 deletions docs/assets/highlight.css
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
--dark-hl-2: #CE9178;
--light-hl-3: #0000FF;
--dark-hl-3: #569CD6;
--light-hl-4: #008000;
--dark-hl-4: #6A9955;
--light-hl-5: #267F99;
--dark-hl-5: #4EC9B0;
--light-hl-6: #001080;
--dark-hl-6: #9CDCFE;
--light-hl-4: #AF00DB;
--dark-hl-4: #C586C0;
--light-hl-5: #001080;
--dark-hl-5: #9CDCFE;
--light-hl-6: #008000;
--dark-hl-6: #6A9955;
--light-hl-7: #267F99;
--dark-hl-7: #4EC9B0;
--light-code-background: #FFFFFF;
--dark-code-background: #1E1E1E;
}
Expand All @@ -25,6 +27,7 @@
--hl-4: var(--light-hl-4);
--hl-5: var(--light-hl-5);
--hl-6: var(--light-hl-6);
--hl-7: var(--light-hl-7);
--code-background: var(--light-code-background);
} }

Expand All @@ -36,6 +39,7 @@
--hl-4: var(--dark-hl-4);
--hl-5: var(--dark-hl-5);
--hl-6: var(--dark-hl-6);
--hl-7: var(--dark-hl-7);
--code-background: var(--dark-code-background);
} }

Expand All @@ -47,6 +51,7 @@
--hl-4: var(--light-hl-4);
--hl-5: var(--light-hl-5);
--hl-6: var(--light-hl-6);
--hl-7: var(--light-hl-7);
--code-background: var(--light-code-background);
}

Expand All @@ -58,6 +63,7 @@
--hl-4: var(--dark-hl-4);
--hl-5: var(--dark-hl-5);
--hl-6: var(--dark-hl-6);
--hl-7: var(--dark-hl-7);
--code-background: var(--dark-code-background);
}

Expand All @@ -68,4 +74,5 @@
.hl-4 { color: var(--hl-4); }
.hl-5 { color: var(--hl-5); }
.hl-6 { color: var(--hl-6); }
.hl-7 { color: var(--hl-7); }
pre, code { background: var(--code-background); }
22 changes: 12 additions & 10 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,33 +12,35 @@
<div class="col-content">
<div class="tsd-page-title">
<h2>@matrixai/exec</h2></div>
<div class="tsd-panel tsd-typography"><a id="md:js-exec" class="tsd-anchor"></a><h1><a href="#md:js-exec">js-exec</a></h1><p>staging: <a href="https://gitlab.com/MatrixAI/open-source/js-exec/commits/staging"><img src="https://gitlab.com/MatrixAI/open-source/js-exec/badges/staging/pipeline.svg" alt="pipeline status"></a>
master: <a href="https://gitlab.com/MatrixAI/open-source/js-exec/commits/master"><img src="https://gitlab.com/MatrixAI/open-source/js-exec/badges/master/pipeline.svg" alt="pipeline status"></a></p>
<p>This exposes <code>execvp</code> to Node.js. This allows running a child process that replaces the parent process image. This is not possible on Windows, if you run this on Windows, expect an exception!</p>
<div class="tsd-panel tsd-typography"><a id="md:js-exec" class="tsd-anchor"></a><h1><a href="#md:js-exec">js-exec</a></h1><p>This exposes <code>execvp</code> to Node.js. This allows running a child process that replaces the parent process image. This is not possible on Windows, if you run this on Windows, expect an exception!</p>
<a id="md:installation" class="tsd-anchor"></a><h2><a href="#md:installation">Installation</a></h2><pre><code class="language-sh"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-3">--save</span><span class="hl-1"> </span><span class="hl-2">@matrixai/exec</span>
</code><button>Copy</button></pre>
<a id="md:usage" class="tsd-anchor"></a><h2><a href="#md:usage">Usage</a></h2><a id="md:development" class="tsd-anchor"></a><h2><a href="#md:development">Development</a></h2><p>Run <code>nix develop</code>, and once you&#39;re inside, you can use:</p>
<pre><code class="language-sh"><span class="hl-4"># install (or reinstall packages from package.json)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><br/><span class="hl-4"># build the native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">prebuild</span><br/><span class="hl-4"># build the dist and native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-4"># run the repl (this allows you to import from ./src)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">ts-node</span><br/><span class="hl-4"># run the tests</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">test</span><br/><span class="hl-4"># lint the source code</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lint</span><br/><span class="hl-4"># automatically fix the source</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lintfix</span>
<a id="md:usage" class="tsd-anchor"></a><h2><a href="#md:usage">Usage</a></h2><p>exec can be used in the following way.</p>
<pre><code class="language-ts"><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">exec</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">&#39;@matrixai/exec&#39;</span><span class="hl-1">;</span><br/><span class="hl-6">// This should output the current enviroment while adding `test_env` to it.</span><br/><span class="hl-5">exec</span><span class="hl-1">.</span><span class="hl-0">execvp</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">&#39;node&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> [</span><br/><span class="hl-1"> </span><span class="hl-2">&#39;-e&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">&#39;console.log(process.env)&#39;</span><span class="hl-1">,</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">test_env:</span><span class="hl-1"> </span><span class="hl-2">&#39;this value&#39;</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">);</span>
</code><button>Copy</button></pre>
<p>Note that only linux and mac platforms are supported.</p>
<a id="md:development" class="tsd-anchor"></a><h2><a href="#md:development">Development</a></h2><p>Run <code>nix develop</code>, and once you&#39;re inside, you can use:</p>
<pre><code class="language-sh"><span class="hl-6"># install (or reinstall packages from package.json)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><br/><span class="hl-6"># build the native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">prebuild</span><br/><span class="hl-6"># build the dist and native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-6"># run the repl (this allows you to import from ./src)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">tsx</span><br/><span class="hl-6"># run the tests</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">test</span><br/><span class="hl-6"># lint the source code</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lint</span><br/><span class="hl-6"># automatically fix the source</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lintfix</span>
</code><button>Copy</button></pre>
<a id="md:cargorust-targets" class="tsd-anchor"></a><h3><a href="#md:cargorust-targets">Cargo/Rust targets</a></h3><p>Cargo is a cross-compiler. The target structure looks like this:</p>
<pre><code><span class="hl-1">&lt;</span><span class="hl-5">arch</span><span class="hl-1">&gt;&lt;</span><span class="hl-5">sub</span><span class="hl-1">&gt;-&lt;</span><span class="hl-5">vendor</span><span class="hl-1">&gt;-&lt;</span><span class="hl-5">sys</span><span class="hl-1">&gt;-&lt;</span><span class="hl-5">abi</span><span class="hl-1">&gt;</span>
<pre><code><span class="hl-1">&lt;</span><span class="hl-7">arch</span><span class="hl-1">&gt;&lt;</span><span class="hl-7">sub</span><span class="hl-1">&gt;-&lt;</span><span class="hl-7">vendor</span><span class="hl-1">&gt;-&lt;</span><span class="hl-7">sys</span><span class="hl-1">&gt;-&lt;</span><span class="hl-7">abi</span><span class="hl-1">&gt;</span>
</code><button>Copy</button></pre>
<p>For example:</p>
<pre><code><span class="hl-6">x86_64</span><span class="hl-1">-</span><span class="hl-6">unknown</span><span class="hl-1">-</span><span class="hl-6">linux</span><span class="hl-1">-</span><span class="hl-6">gnu</span><br/><span class="hl-6">x86_64</span><span class="hl-1">-</span><span class="hl-6">pc</span><span class="hl-1">-</span><span class="hl-6">windows</span><span class="hl-1">-</span><span class="hl-6">msvc</span><br/><span class="hl-6">aarch64</span><span class="hl-1">-</span><span class="hl-6">apple</span><span class="hl-1">-</span><span class="hl-6">darwin</span><br/><span class="hl-6">x86_64</span><span class="hl-1">-</span><span class="hl-6">apple</span><span class="hl-1">-</span><span class="hl-6">darwin</span>
<pre><code><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">unknown</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><br/><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">pc</span><span class="hl-1">-</span><span class="hl-5">windows</span><span class="hl-1">-</span><span class="hl-5">msvc</span><br/><span class="hl-5">aarch64</span><span class="hl-1">-</span><span class="hl-5">apple</span><span class="hl-1">-</span><span class="hl-5">darwin</span><br/><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">apple</span><span class="hl-1">-</span><span class="hl-5">darwin</span>
</code><button>Copy</button></pre>
<p>The available target list is in <code>rustc --print target-list</code>.</p>
<a id="md:docs-generation" class="tsd-anchor"></a><h3><a href="#md:docs-generation">Docs Generation</a></h3><pre><code class="language-sh"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">docs</span>
</code><button>Copy</button></pre>
<p>See the docs at: <a href="https://matrixai.github.io/js-exec/">https://matrixai.github.io/js-exec/</a></p>
<a id="md:publishing" class="tsd-anchor"></a><h3><a href="#md:publishing">Publishing</a></h3><p>Publishing is handled automatically by the staging pipeline.</p>
<p>Prerelease:</p>
<pre><code class="language-sh"><span class="hl-4"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">prepatch</span><span class="hl-1"> </span><span class="hl-3">--preid</span><span class="hl-1"> </span><span class="hl-2">alpha</span><span class="hl-1"> </span><span class="hl-4"># premajor/preminor/prepatch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span>
<pre><code class="language-sh"><span class="hl-6"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">prepatch</span><span class="hl-1"> </span><span class="hl-3">--preid</span><span class="hl-1"> </span><span class="hl-2">alpha</span><span class="hl-1"> </span><span class="hl-6"># premajor/preminor/prepatch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span>
</code><button>Copy</button></pre>
<p>Release:</p>
<pre><code class="language-sh"><span class="hl-4"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-4"># major/minor/patch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span>
<pre><code class="language-sh"><span class="hl-6"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-6"># major/minor/patch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span>
</code><button>Copy</button></pre>
<p>Manually:</p>
<pre><code class="language-sh"><span class="hl-4"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-4"># major/minor/patch</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">publish</span><span class="hl-1"> </span><span class="hl-3">--access</span><span class="hl-1"> </span><span class="hl-2">public</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--tags</span>
<pre><code class="language-sh"><span class="hl-6"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-6"># major/minor/patch</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">publish</span><span class="hl-1"> </span><span class="hl-3">--access</span><span class="hl-1"> </span><span class="hl-2">public</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--tags</span>
</code><button>Copy</button></pre>
</div></div>
<div class="col-sidebar">
Expand Down
2 changes: 1 addition & 1 deletion docs/variables/exec.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<h1>Variable exec</h1></div>
<div class="tsd-signature"><span class="tsd-kind-variable">exec</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type ">Exec</span></div><aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/MatrixAI/js-exec/blob/master/src/exec.ts#L61">exec.ts:61</a></li></ul></aside></div>
<li>Defined in <a href="https://github.com/MatrixAI/js-exec/blob/master/src/exec.ts#L76">exec.ts:76</a></li></ul></aside></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
Expand Down
12 changes: 6 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@matrixai/exec",
"version": "0.1.5",
"version": "1.0.0",
"author": "Matrix AI",
"contributors": [
{
Expand Down Expand Up @@ -46,10 +46,10 @@
"docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src"
},
"optionalDependencies": {
"@matrixai/exec-darwin-arm64": "0.1.5",
"@matrixai/exec-darwin-universal": "0.1.5",
"@matrixai/exec-darwin-x64": "0.1.5",
"@matrixai/exec-linux-x64": "0.1.5"
"@matrixai/exec-darwin-arm64": "1.0.0",
"@matrixai/exec-darwin-universal": "1.0.0",
"@matrixai/exec-darwin-x64": "1.0.0",
"@matrixai/exec-linux-x64": "1.0.0"
},
"devDependencies": {
"@napi-rs/cli": "^2.15.2",
Expand Down
2 changes: 1 addition & 1 deletion scripts/version.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async function main() {
await fs.promises.writeFile(cargoTOMLPath, cargoTOMLUpdated, 'utf-8');

console.error('Updating the Cargo.lock version to match new version');
childProcess.execFileSync('cargo', ['update', '--package', 'quic'], {
childProcess.execFileSync('cargo', ['update', '--package', 'exec'], {
stdio: ['inherit', 'inherit', 'inherit'],
windowsHide: true,
encoding: 'utf-8',
Expand Down
Loading