Skip to content

Commit c983614

Browse files
committed
chore: release v0.1.12
1 parent 8e3cdb6 commit c983614

File tree

6 files changed

+122
-43
lines changed

6 files changed

+122
-43
lines changed

latest.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
{
2-
"version": "v0.1.10",
3-
"notes": "Milo v0.1.10 - Bug fixes and improvements",
4-
"pub_date": "2025-09-18T06:34:01.015Z",
2+
"version": "v0.1.12",
3+
"notes": "Milo v0.1.12 - Bug fixes and improvements",
4+
"pub_date": "2025-09-18T06:45:35.011Z",
55
"platforms": {
66
"darwin-aarch64": {
7-
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVTcUlTbEk4MGg5N2FEVnovcklVcHc5Nlo1NlhSSS9GdjIvUVNKRUNVYmVDT1pTcXpZY2c2dk5wZXAvZnp0UVhXL2ZlM0ZkT3AzdEliaXJtNkpUQm41bGx5M3BZdWtVSFFNPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzU4MTc3MjQwCWZpbGU6TWlsby5hcHAudGFyLmd6CmYwM0pNV2VkcjdVcHFxa2ZENjBxR0VjeUZzZ2cvaEJSc21NeWlVSnNZS1lyQzRlSmpEcEZnMmQwSjMwNnVPNHYyY0lsWWQ5czVLa1g2MExRb1J2TER3PT0K",
8-
"url": "https://github.com/antoncoding/milo/releases/download/v0.1.10/Milo.app.tar.gz"
7+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVTcUlTbEk4MGg5N2REY21heDFSZjFQdFc0YXk1WmRWODR5UjZOanMwT1dQVU9xbHRKQ0VWUXRQYlUwSDlrK0Uvcm5mNURCWG03dTY2YVI5dGVOTE1waWR0Y3FhY0FnS2dJPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzU4MTc3OTM0CWZpbGU6TWlsby5hcHAudGFyLmd6CnNwYzE5eEpxQzlEZmhSTk5PdDhYeVY3VUNtQnZPT2IzdzN1anNvM1Y0SGVoWTJkbnlmdmo4clNiR3FHU282V1hKNlRGZS9EMk9ySWtBdDVGcFFYd0F3PT0K",
8+
"url": "https://github.com/antoncoding/milo/releases/download/v0.1.12/Milo.app.tar.gz"
9+
},
10+
"darwin-x86_64": {
11+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVTcUlTbEk4MGg5N2REY21heDFSZjFQdFc0YXk1WmRWODR5UjZOanMwT1dQVU9xbHRKQ0VWUXRQYlUwSDlrK0Uvcm5mNURCWG03dTY2YVI5dGVOTE1waWR0Y3FhY0FnS2dJPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzU4MTc3OTM0CWZpbGU6TWlsby5hcHAudGFyLmd6CnNwYzE5eEpxQzlEZmhSTk5PdDhYeVY3VUNtQnZPT2IzdzN1anNvM1Y0SGVoWTJkbnlmdmo4clNiR3FHU282V1hKNlRGZS9EMk9ySWtBdDVGcFFYd0F3PT0K",
12+
"url": "https://github.com/antoncoding/milo/releases/download/v0.1.12/Milo.app.tar.gz"
913
}
1014
}
1115
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "milo",
33
"private": true,
4-
"version": "0.1.10",
4+
"version": "0.1.12",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

scripts/release.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,36 @@ VERSION_CLEAN=${VERSION#v} # Remove 'v' prefix
2727

2828
echo -e "${BLUE}🚀 Starting release process for ${VERSION}${NC}"
2929

30+
# Step 0: Check signing key setup
31+
echo -e "${YELLOW}🔐 Checking signing key setup...${NC}"
32+
33+
KEY_PATH="$HOME/.tauri/milo.key"
34+
if [ ! -f "$KEY_PATH" ]; then
35+
echo -e "${RED}❌ Signing key not found at ~/.tauri/milo.key${NC}"
36+
echo -e "${YELLOW}🔧 To generate a new key:${NC}"
37+
echo "pnpm tauri signer generate -w ~/.tauri/milo.key --password test123"
38+
exit 1
39+
fi
40+
41+
if [ -z "$TAURI_SIGNING_PRIVATE_KEY" ]; then
42+
echo -e "${RED}❌ TAURI_SIGNING_PRIVATE_KEY not set${NC}"
43+
echo -e "${YELLOW}🔧 To set the signing key:${NC}"
44+
echo "export TAURI_SIGNING_PRIVATE_KEY=\$(cat ~/.tauri/milo.key)"
45+
echo "export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=\"test123\""
46+
echo ""
47+
echo -e "${YELLOW}Or run this one-liner:${NC}"
48+
echo "export TAURI_SIGNING_PRIVATE_KEY=\$(cat ~/.tauri/milo.key) && export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=\"test123\""
49+
exit 1
50+
fi
51+
52+
if [ -z "$TAURI_SIGNING_PRIVATE_KEY_PASSWORD" ]; then
53+
echo -e "${RED}❌ TAURI_SIGNING_PRIVATE_KEY_PASSWORD not set${NC}"
54+
echo "Run: export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=\"test123\""
55+
exit 1
56+
fi
57+
58+
echo -e "${GREEN}✅ Signing key setup verified${NC}"
59+
3060
# Step 1: Update version in files
3161
echo -e "${YELLOW}📝 Updating version files...${NC}"
3262

@@ -42,6 +72,15 @@ else
4272
sed -i '' "s/\"version\": \".*\"/\"version\": \"${VERSION_CLEAN}\"/" package.json
4373
fi
4474

75+
# Update tauri.conf.json
76+
if command -v jq &> /dev/null; then
77+
tmp=$(mktemp)
78+
jq ".version = \"${VERSION_CLEAN}\"" src-tauri/tauri.conf.json > "$tmp" && mv "$tmp" src-tauri/tauri.conf.json
79+
else
80+
# Fallback method without jq
81+
sed -i '' "s/\"version\": \".*\"/\"version\": \"${VERSION_CLEAN}\"/" src-tauri/tauri.conf.json
82+
fi
83+
4584
echo -e "${GREEN}✅ Version files updated${NC}"
4685

4786
# Step 2: Build the app

scripts/update-latest.cjs

Lines changed: 70 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const GITHUB_RELEASES_BASE = `https://github.com/${REPO_OWNER}/${REPO_NAME}/rele
1919
// File paths
2020
const CARGO_TOML_PATH = path.join(__dirname, '..', 'src-tauri', 'Cargo.toml');
2121
const PACKAGE_JSON_PATH = path.join(__dirname, '..', 'package.json');
22+
const TAURI_CONF_PATH = path.join(__dirname, '..', 'src-tauri', 'tauri.conf.json');
2223
const LATEST_JSON_PATH = path.join(__dirname, '..', 'latest.json');
2324

2425
function getCurrentVersion() {
@@ -40,7 +41,12 @@ function updateVersionFiles(version) {
4041
packageJson.version = version;
4142
fs.writeFileSync(PACKAGE_JSON_PATH, JSON.stringify(packageJson, null, 2) + '\n');
4243

43-
console.log('✅ Version files updated');
44+
// Update tauri.conf.json
45+
let tauriConf = JSON.parse(fs.readFileSync(TAURI_CONF_PATH, 'utf8'));
46+
tauriConf.version = version;
47+
fs.writeFileSync(TAURI_CONF_PATH, JSON.stringify(tauriConf, null, 2) + '\n');
48+
49+
console.log('✅ Version files updated (Cargo.toml, package.json, tauri.conf.json)');
4450
}
4551

4652
function buildApp() {
@@ -67,14 +73,6 @@ function extractSignatures(version) {
6773
const bundleDir = path.join(__dirname, '..', 'src-tauri', 'target', 'release', 'bundle');
6874
const signatures = {};
6975

70-
// Common platform mappings
71-
const platformMappings = {
72-
'macos': {
73-
'x86_64': 'darwin-x86_64',
74-
'aarch64': 'darwin-aarch64'
75-
}
76-
};
77-
7876
try {
7977
// Look for .sig files
8078
const findSigFiles = (dir) => {
@@ -86,44 +84,38 @@ function extractSignatures(version) {
8684

8785
const sigFiles = findSigFiles(bundleDir);
8886

89-
for (const sigFile of sigFiles) {
90-
const signature = fs.readFileSync(sigFile, 'utf8').trim();
91-
const fileName = path.basename(sigFile, '.sig');
87+
if (sigFiles.length > 0) {
88+
// For now, we assume single architecture build (most common)
89+
// and use the same .app.tar.gz file for both platform entries
90+
const signature = fs.readFileSync(sigFiles[0], 'utf8').trim();
9291

93-
// Determine platform from filename
94-
let platform = 'darwin-aarch64'; // default
95-
if (fileName.includes('x64') || fileName.includes('x86_64')) {
96-
platform = 'darwin-x86_64';
97-
}
92+
// Use the actual Tauri-generated filename
93+
const downloadUrl = `${GITHUB_RELEASES_BASE}/v${version}/Milo.app.tar.gz`;
9894

99-
// Determine download URL based on file type
100-
let downloadUrl;
101-
if (fileName.includes('.app.tar.gz')) {
102-
downloadUrl = `${GITHUB_RELEASES_BASE}/v${version}/${fileName}`;
103-
} else if (fileName.includes('.dmg')) {
104-
downloadUrl = `${GITHUB_RELEASES_BASE}/v${version}/${fileName}`;
105-
} else {
106-
// Fallback naming
107-
const extension = platform === 'darwin-x86_64' ? 'x64.app.tar.gz' : 'aarch64.app.tar.gz';
108-
downloadUrl = `${GITHUB_RELEASES_BASE}/v${version}/Milo_${extension}`;
109-
}
95+
// Add both architectures pointing to the same universal file
96+
signatures['darwin-aarch64'] = {
97+
signature,
98+
url: downloadUrl
99+
};
110100

111-
signatures[platform] = {
101+
signatures['darwin-x86_64'] = {
112102
signature,
113103
url: downloadUrl
114104
};
105+
106+
console.log(`✅ Using signature from: ${path.basename(sigFiles[0])}`);
115107
}
116108

117109
if (Object.keys(signatures).length === 0) {
118110
console.warn('⚠️ No signature files found. Creating template structure...');
119111
// Create template structure for manual completion
120112
signatures['darwin-aarch64'] = {
121113
signature: 'SIGNATURE_FROM_BUILD_PROCESS_AARCH64',
122-
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo_aarch64.app.tar.gz`
114+
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo.app.tar.gz`
123115
};
124116
signatures['darwin-x86_64'] = {
125117
signature: 'SIGNATURE_FROM_BUILD_PROCESS_X64',
126-
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo_x64.app.tar.gz`
118+
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo.app.tar.gz`
127119
};
128120
}
129121

@@ -136,11 +128,11 @@ function extractSignatures(version) {
136128
return {
137129
'darwin-aarch64': {
138130
signature: 'SIGNATURE_FROM_BUILD_PROCESS_AARCH64',
139-
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo_aarch64.app.tar.gz`
131+
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo.app.tar.gz`
140132
},
141133
'darwin-x86_64': {
142134
signature: 'SIGNATURE_FROM_BUILD_PROCESS_X64',
143-
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo_x64.app.tar.gz`
135+
url: `${GITHUB_RELEASES_BASE}/v${version}/Milo.app.tar.gz`
144136
}
145137
};
146138
}
@@ -178,6 +170,47 @@ function commitAndTag(version) {
178170
}
179171
}
180172

173+
function checkSigningKey() {
174+
console.log('🔐 Checking signing key setup...');
175+
176+
const keyPath = path.join(process.env.HOME, '.tauri', 'milo.key');
177+
const envKey = process.env.TAURI_SIGNING_PRIVATE_KEY;
178+
const envPassword = process.env.TAURI_SIGNING_PRIVATE_KEY_PASSWORD;
179+
180+
// Check if key file exists
181+
if (!fs.existsSync(keyPath)) {
182+
console.error('❌ Signing key not found at ~/.tauri/milo.key');
183+
console.log('\n🔧 To generate a new key:');
184+
console.log('pnpm tauri signer generate -w ~/.tauri/milo.key --password test123');
185+
process.exit(1);
186+
}
187+
188+
// Check if environment variables are set
189+
if (!envKey && !envPassword) {
190+
console.error('❌ Signing key environment variables not set');
191+
console.log('\n🔧 To set the signing key:');
192+
console.log('export TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/milo.key)');
193+
console.log('export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="test123"');
194+
console.log('\nOr run this one-liner:');
195+
console.log('export TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/milo.key) && export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="test123"');
196+
process.exit(1);
197+
}
198+
199+
if (!envKey) {
200+
console.error('❌ TAURI_SIGNING_PRIVATE_KEY not set');
201+
console.log('Run: export TAURI_SIGNING_PRIVATE_KEY=$(cat ~/.tauri/milo.key)');
202+
process.exit(1);
203+
}
204+
205+
if (!envPassword) {
206+
console.error('❌ TAURI_SIGNING_PRIVATE_KEY_PASSWORD not set');
207+
console.log('Run: export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="test123"');
208+
process.exit(1);
209+
}
210+
211+
console.log('✅ Signing key setup verified');
212+
}
213+
181214
function main() {
182215
const args = process.argv.slice(2);
183216
let targetVersion = args[0];
@@ -186,7 +219,7 @@ function main() {
186219
const currentVersion = getCurrentVersion();
187220
console.log(`Current version: ${currentVersion}`);
188221
console.log('Please provide a target version:');
189-
console.log('Usage: node scripts/update-latest.js v0.1.9');
222+
console.log('Usage: node scripts/update-latest.cjs v0.1.9');
190223
process.exit(1);
191224
}
192225

@@ -195,6 +228,9 @@ function main() {
195228

196229
console.log(`🚀 Starting release process for v${targetVersion}`);
197230

231+
// Check signing key setup first
232+
checkSigningKey();
233+
198234
// Step 1: Update version files
199235
updateVersionFiles(targetVersion);
200236

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "milo"
3-
version = "0.1.10"
3+
version = "0.1.12"
44
description = "Milo - AI Text Transformation Tool"
55
authors = ["you"]
66
edition = "2021"

src-tauri/tauri.conf.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
},
2121
"productName": "Milo",
2222
"mainBinaryName": "Milo",
23-
"version": "0.1.10",
23+
"version": "0.1.12",
2424
"identifier": "com.milo.dev",
2525
"plugins": {
2626
"updater": {
@@ -58,4 +58,4 @@
5858
"csp": null
5959
}
6060
}
61-
}
61+
}

0 commit comments

Comments
 (0)