mirror of
https://github.com/amiayweb/Hytale-F2P.git
synced 2026-02-26 13:21:45 -03:00
Remove outdated documentation files related to auto-updates, build instructions, and testing updates. Update dev-app-update.yml and package.json to reflect the correct GitHub owner. This cleanup streamlines the project and ensures accurate configuration for future updates.
This commit is contained in:
196
docs/TESTING-UPDATES.md
Normal file
196
docs/TESTING-UPDATES.md
Normal file
@@ -0,0 +1,196 @@
|
||||
# Testing Auto-Updates
|
||||
|
||||
This guide explains how to test the auto-update system during development.
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Option 1: Test with GitHub Releases (Easiest)
|
||||
|
||||
1. **Set up dev-app-update.yml** (already done):
|
||||
```yaml
|
||||
provider: github
|
||||
owner: amiayweb
|
||||
repo: Hytale-F2P
|
||||
```
|
||||
|
||||
2. **Lower your current version** in `package.json`:
|
||||
- Change version to something lower than what's on GitHub (e.g., `2.0.1` if GitHub has `2.0.3`)
|
||||
|
||||
3. **Run the app in dev mode**:
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
npm start
|
||||
```
|
||||
|
||||
4. **The app will check for updates** 3 seconds after startup
|
||||
- If a newer version exists on GitHub, it will detect it
|
||||
- Check the console logs for update messages
|
||||
|
||||
### Option 2: Test with Local HTTP Server
|
||||
|
||||
For more control, you can set up a local server:
|
||||
|
||||
1. **Create a test update server**:
|
||||
```bash
|
||||
# Create a test directory
|
||||
mkdir -p test-updates
|
||||
cd test-updates
|
||||
```
|
||||
|
||||
2. **Build a test version** with a higher version number:
|
||||
```bash
|
||||
# In package.json, set version to 2.0.4
|
||||
npm run build
|
||||
```
|
||||
|
||||
3. **Copy the generated files** to your test server:
|
||||
- Copy `dist/latest.yml` (or `latest-mac.yml` for macOS)
|
||||
- Copy the built installer/package
|
||||
|
||||
4. **Start a simple HTTP server**:
|
||||
```bash
|
||||
# Using Python
|
||||
python3 -m http.server 8080
|
||||
|
||||
# Or using Node.js http-server
|
||||
npx http-server -p 8080
|
||||
```
|
||||
|
||||
5. **Update dev-app-update.yml** to point to local server:
|
||||
```yaml
|
||||
provider: generic
|
||||
url: http://localhost:8080
|
||||
```
|
||||
|
||||
6. **Run the app** and it will check your local server
|
||||
|
||||
## Testing Steps
|
||||
|
||||
### 1. Prepare Test Environment
|
||||
|
||||
**Current version**: `2.0.3` (in package.json)
|
||||
**Test version**: `2.0.4` (on GitHub or local server)
|
||||
|
||||
### 2. Run the App
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### 3. Watch for Update Events
|
||||
|
||||
The app will automatically check for updates 3 seconds after startup. Watch the console for:
|
||||
|
||||
```
|
||||
Checking for updates...
|
||||
Update available: 2.0.4
|
||||
```
|
||||
|
||||
### 4. Check Console Logs
|
||||
|
||||
Look for these messages:
|
||||
- `Checking for updates...` - Update check started
|
||||
- `Update available: 2.0.4` - New version found
|
||||
- `Download speed: ...` - Download progress
|
||||
- `Update downloaded: 2.0.4` - Download complete
|
||||
|
||||
### 5. Test UI Integration
|
||||
|
||||
The app sends these events to the renderer:
|
||||
- `update-checking`
|
||||
- `update-available` (with version info)
|
||||
- `update-download-progress` (with progress data)
|
||||
- `update-downloaded` (ready to install)
|
||||
|
||||
You can listen to these in your frontend code to show update notifications.
|
||||
|
||||
## Manual Testing
|
||||
|
||||
### Trigger Manual Update Check
|
||||
|
||||
You can also trigger a manual check via IPC:
|
||||
```javascript
|
||||
// In renderer process
|
||||
const result = await window.electronAPI.invoke('check-for-updates');
|
||||
console.log(result);
|
||||
```
|
||||
|
||||
### Install Update
|
||||
|
||||
After an update is downloaded:
|
||||
```javascript
|
||||
// In renderer process
|
||||
await window.electronAPI.invoke('quit-and-install-update');
|
||||
```
|
||||
|
||||
## Testing Scenarios
|
||||
|
||||
### Scenario 1: Update Available
|
||||
1. Set `package.json` version to `2.0.1`
|
||||
2. Ensure GitHub has version `2.0.3` or higher
|
||||
3. Run app → Should detect update
|
||||
|
||||
### Scenario 2: Already Up to Date
|
||||
1. Set `package.json` version to `2.0.3`
|
||||
2. Ensure GitHub has version `2.0.3` or lower
|
||||
3. Run app → Should show "no update available"
|
||||
|
||||
### Scenario 3: Prerelease Version
|
||||
1. Set `package.json` version to `2.0.2b`
|
||||
2. Ensure GitHub has version `2.0.3`
|
||||
3. Run app → Should detect update (prerelease < release)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Update Not Detected
|
||||
|
||||
1. **Check dev-app-update.yml exists** in project root
|
||||
2. **Verify dev mode is enabled** - Check console for "Dev update mode enabled"
|
||||
3. **Check version numbers** - Remote version must be higher than current
|
||||
4. **Check network** - App needs internet to reach GitHub/local server
|
||||
5. **Check logs** - Look for error messages in console
|
||||
|
||||
### Common Errors
|
||||
|
||||
- **"Cannot find module 'electron-updater'"**: Run `npm install`
|
||||
- **"Update check failed"**: Check network connection or GitHub API access
|
||||
- **"No update available"**: Version comparison issue - check versions
|
||||
|
||||
### Debug Mode
|
||||
|
||||
Enable more verbose logging by checking the console output. The logger will show:
|
||||
- Update check requests
|
||||
- Version comparisons
|
||||
- Download progress
|
||||
- Any errors
|
||||
|
||||
## Testing with Real GitHub Releases
|
||||
|
||||
For the most realistic test:
|
||||
|
||||
1. **Create a test release on GitHub**:
|
||||
- Build the app with version `2.0.4`
|
||||
- Create a GitHub release with tag `v2.0.4`
|
||||
- Upload the built files
|
||||
|
||||
2. **Lower your local version**:
|
||||
- Set `package.json` to `2.0.3`
|
||||
|
||||
3. **Run the app**:
|
||||
- It will check GitHub and find `2.0.4`
|
||||
- Download and install the update
|
||||
|
||||
## Notes
|
||||
|
||||
- **Dev mode only works when app is NOT packaged** (`!app.isPackaged`)
|
||||
- **Production builds** ignore `dev-app-update.yml` and use the built-in `app-update.yml`
|
||||
- **macOS**: Code signing is required for updates to work in production
|
||||
- **Windows**: NSIS installer is required for auto-updates
|
||||
|
||||
## Next Steps
|
||||
|
||||
Once testing is complete:
|
||||
1. Remove or comment out `forceDevUpdateConfig` for production
|
||||
2. Ensure proper code signing for macOS
|
||||
3. Set up CI/CD to automatically publish releases
|
||||
Reference in New Issue
Block a user