Release process
There is no automated phone-application release pipeline. Treat each XAP as a reproducible artifact from a named legacy environment.
1. Choose the version
Version appears in multiple places:
Properties/AssemblyInfo.cs:AssemblyVersionandAssemblyFileVersion;Properties/WMAppManifest.xml:App Version;- Settings about text: currently hard-coded
Version 1.0inSettingsPage.xaml; LastFMServiceuser agent: currentlyWebRadioFM/1.0; and- documentation/release notes.
Update them consistently where the release policy requires it.
2. Validate source and package metadata
Review:
- product/publisher IDs;
- requested capabilities;
- app title/description;
- application, tile, and splash assets;
- target framework and platform configuration; and
- every new source/content item in
WebRadioFM.csproj.
Do not insert production API credentials in source or a package.
3. Build clean packages
On the preserved release machine:
.\build.ps1 -Clean -Configuration Release -Platforms x86,ARM
.\build.ps1 -Configuration Release -Platforms x86,ARM
Add x64 only if it is a supported/tested release target. Record the exact MSBuild and Windows Phone SDK versions.
4. Test
At minimum:
- install/update/uninstall behavior;
- empty and populated libraries;
- full playback transport;
- Last.fm token/session flow;
- Now Playing, scrobble, love, unlove;
- metadata edit/block rules;
- all statistics pivots and periods;
- dark/light theme; and
- app suspend/resume and cold launch.
Use the debugging and testing matrix.
5. Hash and archive artifacts
Store each final XAP with:
- file name containing version/configuration/platform;
- SHA-256 checksum;
- source commit identifier;
- toolchain inventory; and
- test notes.
The current script's file name does not include an application version, so release storage should add that context externally.
6. Update documentation
Update user-visible behavior, known limitations, version references, and build/deployment requirements. Build the docs:
npm ci
npm run build
The GitHub Actions Documentation workflow builds pull requests without deploying them. Pushes to main deploy the main documentation, while manual runs deploy the branch or tag selected for the dispatch. Deployment requires repository Pages to be configured for GitHub Actions.
7. Publish
If using GitHub Releases, attach only reviewed artifacts and their checksums. Explain that:
- Windows Phone 8.1 is unsupported;
- ARM is intended for physical hardware;
- sideloading depends on an already-capable environment; and
- users provide their own Last.fm API credentials.
Rollback
Keep prior XAPs and checksums. A package downgrade may be rejected or may interact with newer isolated settings. The current settings schema only migrates from one legacy key and has no downgrade migration, so test rollback with both retained and clean app data.