Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,12 @@ To check which SDL3 and SDL3_image versions are currently installed on your syst

## Version History (see commit history for full details)

### 5.1.0
- Switch to SDL_Timer for improved animation timing and smoother visual appearance with higher FPS.
- Update SDL from 3.2.26 to 3.2.28.

### 5.0.0
- Standardize version numbering across all platforms, continuing from the original MS-DOS version 4.2 (1993).
- Standardize version numbering across all platforms, continuing from the original MS-DOS version 4.2 (1993).
- Update to SDL 3.2.26 and SDL3_image 3.2.4.
- Add GUI controls

Expand Down
2 changes: 1 addition & 1 deletion SDL_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.2.26
3.2.28
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ android {
// No need to have a sophisticated versionCode scheme for this app, as without
// a formal release schedule there is no need to support hotfix versioning.
// Thus, we just monotonically increase with every release.
versionCode 20
versionCode 21

versionName "5.0.0+20"
versionName "5.1.0+21"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 20,
"versionName": "5.0.0+20",
"versionCode": 21,
"versionName": "5.1.0+21",
"outputFile": "app-release.apk"
}
],
Expand Down
15 changes: 15 additions & 0 deletions ios/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,21 @@ Supports devices running iOS / iPadOS 15.6 or later.
- Use Xcode 26 or later.
- SDL3 and SDL3_image are automatically downloaded during the build via Run Script build phases. The scripts check if `SDL3.xcframework` and `SDL3_image.xcframework` exist in the repo root and download them if needed based on the versions in `SDL_VERSION` and `SDL3_IMAGE_VERSION`.

## App Store Distribution

**Build Number (CFBundleVersion):**

The build number (`CURRENT_PROJECT_VERSION` in Xcode, exposed as `CFBundleVersion` in Info.plist) must be incremented for each App Store submission. Apple requires each new upload to have a higher build number than any previously uploaded build for the same version.

**Location**: `acidwarp-ios.xcodeproj/project.pbxproj` (search for `CURRENT_PROJECT_VERSION`)

**Before uploading to App Store:**
1. Increment the build number in both Debug and Release configurations
2. The build number must be higher than any previous uploads (check App Store Connect for current value)
3. Example: If App Store shows build 2, use 3 or higher for your next upload

**Marketing Version**: The `MARKETING_VERSION` only needs to change when you release a new user-facing version.

## Workaround for SDL_image issue with libjxl

- Starting with iOS 18 and Xcode 16, Apple bundled libjxl (JPEG XL decoder library) into iOS as an internal/private API. When apps are submitted to the App Store, Apple's automated review
Expand Down
8 changes: 4 additions & 4 deletions ios/acidwarp-ios.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 2;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = V4H3G6CSTR;
ENABLE_APP_SANDBOX = YES;
Expand Down Expand Up @@ -551,7 +551,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 5.0.0;
MARKETING_VERSION = 5.1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Expand Down Expand Up @@ -580,7 +580,7 @@
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 2;
DEVELOPMENT_TEAM = V4H3G6CSTR;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
Expand Down Expand Up @@ -624,7 +624,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 5.0.0;
MARKETING_VERSION = 5.1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Expand Down
65 changes: 65 additions & 0 deletions linux/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,71 @@ Automated UI tests verify the application works correctly by launching it in a v

Screenshots are saved to `screenshots/` directory. CI uploads screenshots and logs (acidwarp.log, acidwarp-error.log) as artifacts.

## Publishing the Snap

### 1. Build the Snap Package

Build the snap locally using the packaging script:
```bash
./snap_pack.sh
```

This creates a `.snap` file in the current directory.

### 2. Test Locally

Install and test the snap on your system before publishing:
```bash
sudo snap install --dangerous ./acidwarp_*.snap
```

**IMPORTANT**: Always test on Ubuntu 24.04 LTS (the current latest LTS), which crucially does not have SDL3 available in the APT repository. This verifies that the static linking of SDL3 is working correctly and the snap runs without external SDL3 dependencies.

After testing, uninstall with:
```bash
sudo snap remove acidwarp
```

### 3. Push to Candidate Track

Upload the snap to the candidate track for a soak period:
```bash
snapcraft upload --release=candidate ./acidwarp_*.snap
```

The candidate track allows wider testing before promoting to stable. Monitor for issues during the soak period.

### 4. Install and Test from Candidate Track

Install the candidate release to test it in a real-world environment:
```bash
sudo snap install acidwarp --candidate
```

If you already have acidwarp installed, switch to the candidate track:
```bash
sudo snap refresh acidwarp --candidate
```

This allows you to verify the release works correctly before promoting to stable. Test thoroughly during the soak period.

To switch back to the stable track:
```bash
sudo snap refresh acidwarp --stable
```

### 5. Promote to Stable

After sufficient soak time (typically one week), promote the candidate release to stable:
```bash
snapcraft release acidwarp <revision> stable
```

Replace `<revision>` with the revision number from the candidate release. You can find the revision number with:
```bash
snapcraft status acidwarp
```

## License

As this is a descendent of Steven Will's `AcidWarp for Linux` which was GPL licensed, this too
Expand Down
4 changes: 2 additions & 2 deletions linux/snap/snapcraft.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: acidwarp # you probably want to 'snapcraft register <name>'
base: core24 # the base snap is the execution environment for this snap
version: '5.0.0+4' # just for humans, typically '1.2+git' or '1.3.2'
version: '5.1.0+5' # just for humans, typically '1.2+git' or '1.3.2'
summary: It's eye-candy — watch the pretty colors! # 79 char long summary
description: |
Acid Warp is software that falls into the category of "eye-candy". It
Expand Down Expand Up @@ -41,7 +41,7 @@ parts:
plugin: cmake
source: https://github.com/libsdl-org/SDL.git
# Auto-updated from SDL_VERSION file by snap_pack.sh
source-tag: release-3.2.26
source-tag: release-3.2.28
cmake-parameters:
- -DCMAKE_BUILD_TYPE=Release
- -DSDL_STATIC=ON
Expand Down
15 changes: 15 additions & 0 deletions macos/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,21 @@ Xcode 26+ has been used to develop the app. It may be possible to use older Xco

SDL3 and SDL3_image are automatically downloaded during the build via Run Script build phases. The scripts check if `SDL3.xcframework` and `SDL3_image.xcframework` exist in the repo root and download them if needed based on the versions in `SDL_VERSION` and `SDL3_IMAGE_VERSION`.

## App Store Distribution

**Build Number (CFBundleVersion):**

The build number (`CURRENT_PROJECT_VERSION` in Xcode, exposed as `CFBundleVersion` in Info.plist) must be incremented for each App Store submission. Apple requires each new upload to have a higher build number than any previously uploaded build for the same version.

**Location**: `acidwarp-macos.xcodeproj/project.pbxproj` (search for `CURRENT_PROJECT_VERSION`)

**Before uploading to App Store:**
1. Increment the build number in both Debug and Release configurations
2. The build number must be higher than any previous uploads (check App Store Connect for current value)
3. Example: If App Store shows build 6, use 7 or higher for your next upload

**Marketing Version**: The `MARKETING_VERSION` only needs to change when you release a new user-facing version.

## Workaround for SDL_image issue with libjxl

- Starting with iOS 18 and Xcode 16, Apple bundled libjxl (JPEG XL decoder library) into iOS as an internal/private API. When apps are submitted to the App Store, Apple's automated review
Expand Down
8 changes: 4 additions & 4 deletions macos/acidwarp-macos.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2;
CURRENT_PROJECT_VERSION = 7;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = V4H3G6CSTR;
ENABLE_APP_SANDBOX = YES;
Expand Down Expand Up @@ -567,7 +567,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.5;
MARKETING_VERSION = 5.0.0;
MARKETING_VERSION = 5.1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Expand All @@ -592,7 +592,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 2;
CURRENT_PROJECT_VERSION = 7;
DEAD_CODE_STRIPPING = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DEVELOPMENT_TEAM = V4H3G6CSTR;
Expand Down Expand Up @@ -629,7 +629,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.5;
MARKETING_VERSION = 5.0.0;
MARKETING_VERSION = 5.1.0;
OTHER_LDFLAGS = (
"$(inherited)",
"-framework",
Expand Down
2 changes: 1 addition & 1 deletion shared/acidwarp.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* ACIDWARP.H */

#define VERSION "Acid Warp Version 4.10 (C)Copyright 1992, 1993 by Noah Spurrier and Mark Bilk\nAndroid, iOS / iPadOS, macOS, Linux, Windows ports by Matthew Zavislak based on SDL port by Boris Gjenero, in turn based on Linux port by Steven Wills"
#define VERSION "Acid Warp Version 5.1.0 (C)Copyright 1992, 1993 by Noah Spurrier and Mark Bilk\nAndroid, iOS / iPadOS, macOS, Linux, Windows ports by Matthew Zavislak based on SDL port by Boris Gjenero, in turn based on Linux port by Steven Wills"

#define DIRECTN_CHANGE_PERIOD_IN_TICKS 256

Expand Down
8 changes: 4 additions & 4 deletions windows/acidwarp.rc
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ IDI_ICON1 ICON "icon.ico"

// Version Information
1 VERSIONINFO
FILEVERSION 5,0,0,0
PRODUCTVERSION 5,0,0,0
FILEVERSION 5,1,0,0
PRODUCTVERSION 5,1,0,0
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x0L
FILEOS VOS_NT_WINDOWS32
Expand All @@ -25,12 +25,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Dermochelys Software, LLC"
VALUE "FileDescription", "Acid Warp"
VALUE "FileVersion", "5.0.0.0"
VALUE "FileVersion", "5.1.0.0"
VALUE "InternalName", "acidwarp-windows"
VALUE "LegalCopyright", "(C)Copyright 1992, 1993 by Noah Spurrier and Mark Bilk"
VALUE "OriginalFilename", "acidwarp-windows.exe"
VALUE "ProductName", "Acid Warp"
VALUE "ProductVersion", "5.0.0.0"
VALUE "ProductVersion", "5.1.0.0"
END
END
BLOCK "VarFileInfo"
Expand Down