# Factorio Production Calculator 1.0.0 auf GitHub veröffentlichen

Diese Anleitung ist für die Veröffentlichung des **anonymisierten Source-Pakets** gedacht. Verwende nicht den ursprünglichen Arbeitsordner und nicht das STRATO-Upload-Paket als Repository-Inhalt.

## 1. Vorbereitungen für maximale Anonymität

1. Erstelle bei Bedarf ein separates GitHub-Konto mit einem Projektnamen statt eines persönlichen Namens.
2. Öffne auf GitHub **Settings → Emails**.
3. Aktiviere **Keep my email addresses private**.
4. Aktiviere zusätzlich **Block command line pushes that expose my email**.
5. Kopiere die von GitHub angezeigte `noreply`-Adresse. Trage niemals eine private E-Mail-Adresse als Git-Commit-Adresse ein.
6. Installiere [Git for Windows](https://git-scm.com/download/win), falls `git --version` in PowerShell noch nicht funktioniert.

Die öffentliche Projektadresse `factoriocalculatorapp.com@gmail.com` darf in Website und Dokumentation stehen. Für Commit-Metadaten ist trotzdem die GitHub-`noreply`-Adresse die anonymere Wahl.

## 2. Das richtige Paket prüfen

1. Entpacke `factorio-calculator-source-1.0.0.zip` in einen neuen Ordner.
2. Öffne diesen Ordner. `README.md`, `package.json`, `LICENSE`, `app`, `scripts` und `tests` müssen direkt darin liegen.
3. Prüfe vor dem ersten Commit mindestens:
   - keine `.env`-Dateien;
   - keine STRATO-, SFTP- oder FileZilla-Zugangsdaten;
   - keine privaten Namen, Adressen oder Telefonnummern;
   - keine `.openai`, `.sites-runtime`, `node_modules`, `release` oder `strato-dist`-Ordner;
   - keinen `private`- oder `windows-dist`-Ordner und keine lokalen, unveröffentlichten Erweiterungen;
   - keine private Arbeits- oder Freigabedokumentation.
4. Vergleiche optional den SHA-256-Wert des ZIPs mit `SHA256SUMS.txt`.

## 3. Leeres öffentliches Repository anlegen

1. Melde dich bei GitHub an und wähle oben rechts **+ → New repository**.
2. Empfohlener Name: `factorio-production-calculator`.
3. Beschreibung: `Open-source production, quality, recycling, energy and rocket-freight calculator for Factorio 2.1 Space Age.`
4. Wähle **Public**.
5. Aktiviere auf dieser Seite **kein** README, `.gitignore` und keine License. Diese Dateien liegen bereits im Source-Paket; eine Vorinitialisierung kann beim ersten Push Konflikte erzeugen.
6. Klicke **Create repository** und kopiere danach die HTTPS-URL des neuen Repositorys.

## 4. Source-Paket committen und hochladen

Öffne den entpackten Source-Ordner im Explorer. Klicke in die Adresszeile, tippe `powershell` und bestätige. Führe dann die folgenden Befehle einzeln aus:

```powershell
git init -b main
git config user.name "FactorioCalculatorApp"
git config user.email "DEINE-GITHUB-NOREPLY-ADRESSE"
git config user.email
git add .
git status
git commit -m "Release 1.0.0"
git remote add origin https://github.com/DEIN-KONTO/factorio-production-calculator.git
git remote -v
git push -u origin main
```

Bei der Anmeldung im Browser oder Git Credential Manager das dafür vorgesehene GitHub-Konto auswählen. GitHub akzeptiert für Git über HTTPS kein normales Kontopasswort; der Credential Manager beziehungsweise eine unterstützte Token-Anmeldung übernimmt die Authentifizierung.

`git status` ist der letzte wichtige Datenschutz-Stopp vor dem Commit. Wenn dort etwas Unbekanntes oder Privates auftaucht, nicht committen, sondern zuerst entfernen beziehungsweise in `.gitignore` eintragen.

## 5. Release `v1.0.0` erstellen

Nach erfolgreichem Push:

```powershell
git tag -a v1.0.0 -m "Factorio Production Calculator 1.0.0"
git push origin v1.0.0
```

Danach auf GitHub:

1. Im Repository rechts **Releases** öffnen.
2. **Draft a new release** wählen.
3. Den vorhandenen Tag `v1.0.0` auswählen.
4. Titel: `Factorio Production Calculator 1.0.0`.
5. Kurze Release Notes aus `CHANGELOG.md` übernehmen.
6. Als öffentliche Download-Dateien dürfen derzeit angehängt werden:
   - `factorio-calculator-source-1.0.0.zip`;
   - optional `factorio-calculator-strato-1.0.0.zip`;
   - `SHA256SUMS.txt`.
7. Das neue `factorio-calculator-windows-1.0.0.zip` enthält denselben öffentlichen Generator samt passendem Quellcode und kann als Release-Datei bereitgestellt werden. Windows- und STRATO-Pakete enthalten die öffentlichen Anbieterangaben der Website; das Source-Paket enthält nur die Konfigurationsvorlage.
8. Für die erste stabile Version **nicht** als Pre-release markieren und anschließend veröffentlichen.

GitHub erzeugt zusätzlich automatisch Source-Archive aus dem Tag. Das beigefügte, geprüfte Source-ZIP darf trotzdem als eindeutig benanntes Release-Asset erhalten bleiben.

## 6. Nachkontrolle

1. Öffne das Repository in einem privaten Browserfenster, ohne bei GitHub angemeldet zu sein.
2. Prüfe das öffentliche Profil, den Commit und die Commit-E-Mail-Anzeige auf persönliche Daten.
3. Prüfe, ob GitHub die GPL-3.0-Lizenz erkennt.
4. Lade ein Release-Asset testweise herunter und vergleiche dessen SHA-256-Wert.
5. Setze unter **About** die Website auf `https://factoriocalculatorapp.com` und passende Topics, zum Beispiel `factorio`, `factorio-space-age`, `calculator`, `production-planner` und `open-source`.
6. Sobald die endgültige Repository-URL feststeht, kann der Quellcode-Link der Website zusätzlich direkt auf dieses Repository beziehungsweise das Release zeigen.

## 7. Spätere Aktualisierungen

Für normale Änderungen im selben lokalen Repository:

```powershell
git status
git add .
git status
git commit -m "Kurze Beschreibung der Änderung"
git push
```

Für eine neue veröffentlichte Version zusätzlich einen neuen eindeutigen Tag, zum Beispiel `v1.0.1`, erstellen. Bereits veröffentlichte Versions-Tags sollten nicht nachträglich auf anderen Code verschoben werden.

## Offizielle GitHub-Hilfe

- [Lokalen Quellcode zu GitHub hinzufügen](https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github)
- [Commit-E-Mail einstellen](https://docs.github.com/en/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address)
- [Pushes mit privater E-Mail blockieren](https://docs.github.com/en/account-and-profile/how-tos/email-preferences/blocking-command-line-pushes-that-expose-your-personal-email-address)
- [GitHub Releases verwalten](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)
