mirror of
https://github.com/hanzoai/live.git
synced 2026-10-30 18:29:41 +00:00
Completes the interrupted kill/shadcn work (81ffa84):
- vite: GUI_TARGET/TAMAGUI_TARGET=web defines + react-native/react-native-svg
web aliases (@hanzogui/react-native-svg) — fixes the unresolved
react-native-svg import from @hanzogui/lucide-icons-2
- deps: @hanzo/gui 8.0.2, @hanzo/ui 8.0.48, @hanzogui/lucide-icons-2 8.0.2;
react/react-dom aligned at 19.2.8
- docs/: drop cdn.tailwindcss.com from all 3 static pages — rewritten on
plain-CSS tokens (docs/docs.css), same visual design
- kill last residue: vscode tailwind extension rec, stale LLM.md stack notes
- gui-env.d.ts: eslint disable for the intentional declaration-merge pattern
typescript stays 5.8.3: TS7.0.2 builds green here but typescript-eslint
(latest 8.66.0, peer <6.1.0) crashes against it — lint is part of this
repo's gate, so 5.x is correct until typescript-eslint supports TS7.
Verified: tsc -b && vite build green; playwright render of the built app —
full UI styled (cards/selects/switches/sliders), zero console errors.
Co-authored-by: Hanzo Dev <[email protected]>
251 lines
11 KiB
HTML
251 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Contributing - Hanzo Live</title>
|
|
<link rel="stylesheet" href="docs.css">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css">
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/bash.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<div class="container narrow">
|
|
<!-- Back Navigation -->
|
|
<div class="mb-8">
|
|
<a href="index.html" class="link"><i class="fas fa-arrow-left"></i> Back to Documentation</a>
|
|
</div>
|
|
|
|
<!-- Header -->
|
|
<header class="mb-12">
|
|
<h1 class="gradient-text-green" style="font-size:3rem">Contributing</h1>
|
|
<p class="muted mb-0" style="font-size:1.25rem">Thank you for your interest in contributing!</p>
|
|
</header>
|
|
|
|
<!-- DCO -->
|
|
<section class="mb-12">
|
|
<div class="callout blue">
|
|
<h2 class="blue" style="font-size:1.5rem">Developer Certificate of Origin</h2>
|
|
<p>
|
|
We use the <a href="https://developercertificate.org/" class="link blue underline">Developer Certificate of Origin (DCO)</a>
|
|
to ensure that all contributions can be legally included and relicensed in future releases.
|
|
</p>
|
|
<p>To certify your contribution, please sign off each commit with:</p>
|
|
<pre><code class="language-bash">git commit -s</code></pre>
|
|
<p class="mt-4">This adds a line like this to your commit message:</p>
|
|
<pre><code class="language-bash">Signed-off-by: Your Name <[email protected]></code></pre>
|
|
<p class="mt-4 mb-0">
|
|
By signing off, you confirm that you have the right to submit this code and that it may be distributed
|
|
under the same license as this project.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Setup -->
|
|
<section class="mb-12">
|
|
<h2 class="green">Setup</h2>
|
|
<p class="muted">You'll need the following tools installed:</p>
|
|
<div class="grid cols-3 mb-6" style="gap:1rem">
|
|
<div class="card solid" style="padding:1rem">
|
|
<h3 class="purple" style="font-size:1rem"><i class="fas fa-box"></i> uv</h3>
|
|
<p class="small muted">Python package manager</p>
|
|
<a href="https://docs.astral.sh/uv/getting-started/installation/" class="link blue small">Install →</a>
|
|
</div>
|
|
<div class="card solid" style="padding:1rem">
|
|
<h3 class="green" style="font-size:1rem"><i class="fab fa-node-js"></i> Node.js</h3>
|
|
<p class="small muted">For frontend builds</p>
|
|
<a href="https://nodejs.org/en/download" class="link blue small">Install →</a>
|
|
</div>
|
|
<div class="card solid" style="padding:1rem">
|
|
<h3 class="red" style="font-size:1rem"><i class="fas fa-film"></i> FFmpeg</h3>
|
|
<p class="small muted">Media workflows</p>
|
|
<a href="https://www.ffmpeg.org/download.html" class="link blue small">Install →</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Frontend Development -->
|
|
<section class="mb-12">
|
|
<h2 class="pink">Frontend Development</h2>
|
|
<div class="stack">
|
|
<div>
|
|
<h3>Navigate to frontend directory</h3>
|
|
<pre><code class="language-bash">cd frontend</code></pre>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Install dependencies</h3>
|
|
<pre><code class="language-bash">npm install</code></pre>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Run development server</h3>
|
|
<pre><code class="language-bash">npm run dev</code></pre>
|
|
<p class="small dim mt-2 mb-0">
|
|
<i class="fas fa-info-circle"></i>
|
|
Hot reloading is enabled by default
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Server Development -->
|
|
<section class="mb-12">
|
|
<h2 class="blue">Server Development</h2>
|
|
<div class="stack">
|
|
<div>
|
|
<h3>Install dependencies</h3>
|
|
<pre><code class="language-bash">uv sync --group dev</code></pre>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Install pre-commit hooks</h3>
|
|
<pre><code class="language-bash">uv run pre-commit install</code></pre>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Run server with hot reload</h3>
|
|
<pre><code class="language-bash">uv run hanzo-live --reload</code></pre>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Testing Pipelines -->
|
|
<section class="mb-12">
|
|
<h2 class="yellow">Testing Pipelines</h2>
|
|
|
|
<div class="card solid mb-6">
|
|
<p class="muted mb-0">
|
|
By default, the server does not load any pipelines on startup, but you can set the
|
|
<code>PIPELINE</code> environment variable to automatically
|
|
load a specific pipeline on startup.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="stack">
|
|
<div>
|
|
<h3>Load a pipeline on startup</h3>
|
|
<pre><code class="language-bash">PIPELINE="longlive" uv run hanzo-live</code></pre>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Test a specific pipeline</h3>
|
|
<pre><code class="language-bash">uv run -m pipelines.longlive.test</code></pre>
|
|
<p class="small dim mt-2 mb-0">
|
|
<i class="fas fa-info-circle"></i>
|
|
This test outputs a video file
|
|
</p>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Test MLX implementation</h3>
|
|
<pre><code class="language-bash">uv run python -m pipelines.streamdiffusionv2.vendor.causvid.models.wan.mlx.test_mlx</code></pre>
|
|
<p class="small dim mt-2 mb-0">
|
|
<i class="fas fa-check green"></i>
|
|
All 9 tests passing ✅
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Development Workflow -->
|
|
<section class="mb-12">
|
|
<h2 class="purple">Development Workflow</h2>
|
|
<div class="stack-lg">
|
|
<div class="card solid">
|
|
<h3><i class="fas fa-code-branch blue"></i> 1. Create a Feature Branch</h3>
|
|
<pre class="deep mb-0"><code class="language-bash">git checkout -b feature/your-feature-name</code></pre>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3><i class="fas fa-pencil-alt green"></i> 2. Make Your Changes</h3>
|
|
<p class="muted mb-0">Write code, add tests, update documentation as needed.</p>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3><i class="fas fa-vial yellow"></i> 3. Test Your Changes</h3>
|
|
<pre class="deep mb-0"><code class="language-bash"># Run relevant tests
|
|
uv run pytest tests/
|
|
</code></pre>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3><i class="fas fa-save pink"></i> 4. Commit with Sign-off</h3>
|
|
<pre class="deep mb-0"><code class="language-bash">git commit -s -m "Add your feature description"</code></pre>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3><i class="fas fa-cloud-upload-alt purple"></i> 5. Push and Create PR</h3>
|
|
<pre class="deep"><code class="language-bash">git push origin feature/your-feature-name</code></pre>
|
|
<p class="muted mb-0">Then create a pull request on GitHub.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Code Quality -->
|
|
<section class="mb-12">
|
|
<h2 class="red">Code Quality Guidelines</h2>
|
|
<div class="grid cols-2">
|
|
<div class="card solid">
|
|
<h3 class="blue">Testing</h3>
|
|
<ul>
|
|
<li>Write tests for new features</li>
|
|
<li>Ensure all tests pass</li>
|
|
<li>Maintain test coverage</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3 class="green">Documentation</h3>
|
|
<ul>
|
|
<li>Update README if needed</li>
|
|
<li>Add docstrings to functions</li>
|
|
<li>Comment complex logic</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3 class="yellow">Code Style</h3>
|
|
<ul>
|
|
<li>Follow Python PEP 8</li>
|
|
<li>Use type hints</li>
|
|
<li>Run pre-commit hooks</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="card solid">
|
|
<h3 class="pink">Git Commits</h3>
|
|
<ul>
|
|
<li>Write clear commit messages</li>
|
|
<li>Sign off all commits (-s)</li>
|
|
<li>Keep commits atomic</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Release Process -->
|
|
<section class="mb-12">
|
|
<h2 class="indigo">Release Process</h2>
|
|
<div class="card solid">
|
|
<p class="muted mb-0">TBD - Release process documentation coming soon.</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Footer -->
|
|
<footer>
|
|
<p>© 2024-2025 Hanzo AI. All rights reserved.</p>
|
|
<div class="links">
|
|
<a href="index.html" class="link"><i class="fas fa-home"></i> Home</a>
|
|
<a href="https://github.com/hanzoai/live" class="link"><i class="fab fa-github"></i> GitHub</a>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
|
|
<script>
|
|
hljs.highlightAll();
|
|
</script>
|
|
</body>
|
|
</html>
|