Files

136 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Publishing HSCompare to Your Gitea & Dalamud Installer
This guide covers pushing the plugin to your self-hosted Gitea and making it installable via Dalamuds plugin installer (custom repository).
---
## 1. Set Your Repo URL (optional but recommended)
Edit `HSCompare/HSCompare.json` and set `RepoUrl` to your Gitea repo (e.g. `https://gitea.example.com/yourname/HSCompare`).
This is used in the installer and in the plugin master.
---
## 2. Push the Project to Gitea
1. **Create a new repository** on your Gitea instance (e.g. `HSCompare`).
2. **Initialize git** in the plugin folder (if not already):
```bash
cd "/path/to/HSCompare"
git init
git add .
git commit -m "Initial commit"
```
3. **Add the Gitea remote and push**:
```bash
git remote add origin https://gitea.example.com/yourname/HSCompare.git
git branch -M main
git push -u origin main
```
---
## 3. Build the Release Zip
From the plugin solution directory:
```bash
cd "/path/to/HSCompare"
dotnet build -c Release
```
The installer-ready zip is produced at:
- **Path:** `HSCompare/bin/Release/HSCompare/latest.zip`
- **Contents:** `HSCompare.dll`, `HSCompare.json`, and any deps the SDK includes.
Use this file for every release (e.g. rename to `HSCompare-1.0.2.zip` or keep as `latest.zip`).
---
## 4. Publish a Release on Gitea
1. In your Gitea repo, open **Releases** → **Create new release**.
2. **Tag:** e.g. `v1.0.2` (match your plugin version).
3. **Title:** e.g. `v1.0.2` or “HSCompare 1.0.2”.
4. **Attach the zip:** upload `HSCompare/bin/Release/HSCompare/latest.zip`.
5. Save the release.
**Download URL** will look like:
```text
https://gitea.example.com/yourname/HSCompare/releases/download/v1.0.2/latest.zip
```
(Replace `gitea.example.com`, `yourname`, tag and filename if you use another tag or filename.)
---
## 5. Host the Plugin Master (so Dalamud can see it)
The installer needs a **single JSON file** (plugin master) that lists your plugin and points to the zip.
1. In the repo root there is a **`pluginmaster.json`** file (see below).
2. **Edit it** once per release:
- Set `DownloadLinkInstall` and `DownloadLinkUpdate` to the **release zip URL** from step 4.
- Set `LastUpdate` to the current **Unix timestamp** (e.g. `date +%s` on Linux/Mac).
- Optionally set `AssemblyVersion` (and `TestingAssemblyVersion` if you have a testing build).
3. Commit and push `pluginmaster.json`:
```bash
git add pluginmaster.json
git commit -m "Update pluginmaster for v1.0.2"
git push
```
**Raw URL** to the file (for Dalamud) will be something like:
```text
https://gitea.example.com/yourname/HSCompare/raw/branch/main/pluginmaster.json
```
Use `main` or the branch where you store `pluginmaster.json`.
---
## 6. Add the Custom Repo in Dalamud
1. In-game, run **`/xlsettings`** (or open Dalamud settings).
2. Open the **Experimental** tab.
3. Under **Custom Plugin Repositories**, click **Add**.
4. Paste the **raw plugin master URL** from step 5, e.g.:
```text
https://gitea.example.com/yourname/HSCompare/raw/main/pluginmaster.json
```
5. Save. Your repo will be in the list.
After that, **HSCompare** should appear in the plugin installer (search or list). Users can install and update from this repo as long as you keep `pluginmaster.json` and the release zip URL correct.
---
## 7. When You Release a New Version
1. Bump **version** in `HSCompare/HSCompare.csproj` (e.g. `<Version>1.0.3</Version>`).
2. Update **CHANGELOG.md**.
3. **Build:** `dotnet build -c Release`
4. Create a **new Gitea release** (e.g. tag `v1.0.3`) and attach the new `latest.zip` from `HSCompare/bin/Release/HSCompare/`.
5. In **`pluginmaster.json`** update:
- `DownloadLinkInstall` and `DownloadLinkUpdate` → new zip URL.
- `AssemblyVersion` → e.g. `1.0.3.0`.
- `LastUpdate` → current Unix timestamp.
6. Commit and push the updated `pluginmaster.json`.
Users who have your repo added will see the update in the installer.
---
## Summary
| What | Where |
|------|--------|
| Source code | Your Gitea repo (e.g. `HSCompare`) |
| Release zip | Gitea Release attachment (e.g. `latest.zip`) |
| Plugin list for installer | `pluginmaster.json` in repo, served via raw URL |
| Custom repo URL (in Dalamud) | Raw URL to `pluginmaster.json` |
If your Gitea uses a different URL shape for releases or raw files, adjust the URLs in `pluginmaster.json` and in this guide to match.