# Public beta release — operations checklist

Use this with **Beta 4.5** and later public-beta waves. **Not legal advice** — have counsel review `docs/legal/BETA_NONDISCLOSURE_AGREEMENT.md` and `docs/legal/OINKSCAPE_END_USER_LICENSE_AND_TERMS.md`.

## 1. Capacity: 32 lifetime seats

- Issue **at most 32** install keys for this wave (`gen_beta_install_keys.py` defaults to 32).  
- Each key maps to **one** welcome email / tester you accept.  
- Communicate clearly: **lifetime license** is a thank-you subject to the NDA and final EULA at GA (see NDA §8).

## 2. Download page (email capture)

You already collect **email** before download. Recommended flow:

1. **Form** submits email to your backend or automation (e.g. Zapier, Make, custom API).  
2. **Server-side counter** (or sheet row number): if accepted testers **≥ 32**, respond with a polite “beta full” message and **do not** send a key.  
3. For emails **1–32**, enqueue the **welcome email** (below).  
4. **Never** put the master key list on a public URL.

## 3. Welcome email (content)

Send **one** personal install key per message from `beta_install_keys_<version>_SECRET.txt`. Suggested structure:

- Thank them for joining the beta.  
- Attach or link the **NDA** (`BETA_NONDISCLOSURE_AGREEMENT.md` as PDF, or DocuSign / e-sign).  
- Attach or link the **End User License Agreement and Terms of Use** (`OINKSCAPE_END_USER_LICENSE_AND_TERMS.md` as PDF or hosted page) so testers know what you are / are not responsible for, **especially for their own broadcasts** (content, platforms, music rights, liability).  
- State that **continued access and the lifetime license thank-you** require adherence to the NDA and use of the Software under the license terms.  
- Paste their **install key** in the body (same format as the file: `XX-XX-...`).  
- Link to **Microsoft VC++ Redistributable x64** if needed (see `docs/BETA_PACKAGING_WINDOWS.md`).  
- Support / feedback channel (e.g. Diagnostics tab, email address).

A starter template lives in `docs/BETA_WELCOME_EMAIL_TEMPLATE.md` (merge fields, no secrets).

## 4. NDA and license acceptance

Pick one:

- **E-sign** (recommended): send NDA first; key email sends after signed.  
- **Combined**: single email with NDA PDF + statement that installing or using the beta constitutes acceptance (align wording with counsel).  

Provide the **EULA / Terms** (`docs/legal/OINKSCAPE_END_USER_LICENSE_AND_TERMS.md`) as a PDF or stable URL **before or with** first use. It complements the NDA: the NDA protects **confidential** beta information; the license/terms allocate **product use** risk (including **your users’ broadcasts**).

The installer **InfoBeforeFile** (`packaging/beta_install_notice.txt`) reminds testers they must have received the NDA; it does not replace a signed agreement or the full license text.

## 5. Build order (when you say “compile for release”)

1. Finalize `beta_info.py` dates/labels if needed.  
2. Run `python packaging\tools\gen_beta_install_keys.py` **once** for this wave; archive the `*_SECRET.txt` securely.  
3. `.\build_windows_beta.ps1` then `.\build_windows_beta.ps1 -Installer`.  
4. Smoke-test **Setup.exe** with a real key and a wrong key.  
5. Upload **`OinkScape-Beta4.5-Setup-win64.exe`** to your host; update the download page.

## 6. After keys are exhausted

- Close the form or show waitlist.  
- For a new cohort, generate **new** keys and optionally a new installer build (new `OutputBaseFilename` / version label).
