release: v0.7.13 — Developer-ID signed + notarized macOS
- bump version 0.7.12 -> 0.7.13 across package.json, Cargo.toml, tauri.conf.json, website version string, and version tests - README: update both download tables + tag instructions to v0.7.13, add v0.7.13 changelog entry - website: remove the sudo xattr quarantine hint (macOS is now signed + notarized), drop the copy-quarantine handler + macos-hint animation from landing.js, add v0.7.13 changelog entry
This commit is contained in:
+3
-20
@@ -60,7 +60,7 @@
|
||||
const keepLabel = downloadBtn.hasAttribute("data-download-label");
|
||||
|
||||
const releasesUrl = "https://git.ranio.xyz/adrianbonpin/gridline/releases";
|
||||
const version = "0.7.12";
|
||||
const version = "0.7.13";
|
||||
|
||||
if (isMobile) {
|
||||
downloadBtn.href = releasesUrl;
|
||||
@@ -68,9 +68,6 @@
|
||||
} else if (isMac) {
|
||||
downloadBtn.href = `${releasesUrl}/download/v${version}/Gridline_${version}_aarch64.dmg`;
|
||||
if (!keepLabel) downloadBtn.textContent = "Download for macOS";
|
||||
if (downloadBtn.id === "download") {
|
||||
document.getElementById("macos-hint")?.classList.remove("hidden");
|
||||
}
|
||||
} else if (isWin) {
|
||||
downloadBtn.href = `${releasesUrl}/download/v${version}/Gridline_${version}_x64-setup.exe`;
|
||||
if (!keepLabel) downloadBtn.textContent = "Download for Windows";
|
||||
@@ -83,18 +80,6 @@
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("copy-quarantine")?.addEventListener("click", async () => {
|
||||
const command = "sudo xattr -dr com.apple.quarantine /Applications/Gridline.app";
|
||||
try {
|
||||
await navigator.clipboard.writeText(command);
|
||||
const btn = document.getElementById("copy-quarantine");
|
||||
if (!btn) return;
|
||||
const original = btn.textContent;
|
||||
btn.textContent = "Copied";
|
||||
setTimeout(() => (btn.textContent = original), 1500);
|
||||
} catch {}
|
||||
});
|
||||
|
||||
// Nav scroll background
|
||||
const nav = document.getElementById("nav");
|
||||
function onScroll() {
|
||||
@@ -141,24 +126,22 @@
|
||||
const subtitle = hero.querySelector(".hero-animate > p:nth-of-type(2)");
|
||||
const buttons = hero.querySelector(".hero-animate > div");
|
||||
const screenshot = hero.querySelector(".hero-screenshot");
|
||||
const macosHint = hero.querySelector("#macos-hint");
|
||||
|
||||
if (reducedMotion) {
|
||||
// Reduced motion: reveal the hero immediately (CSS hides it at first
|
||||
// paint to avoid flicker, but the timeline below is skipped). Section
|
||||
// reveals below still run through the IntersectionObserver.
|
||||
anime.set([eyebrow, h1, subtitle, buttons, screenshot, macosHint], { opacity: 1, translateY: 0 });
|
||||
anime.set([eyebrow, h1, subtitle, buttons, screenshot], { opacity: 1, translateY: 0 });
|
||||
} else {
|
||||
const heroTl = anime.timeline({ easing: "easeOutExpo" });
|
||||
|
||||
anime.set([eyebrow, h1, subtitle, buttons, screenshot, macosHint], { opacity: 0, translateY: 20 });
|
||||
anime.set([eyebrow, h1, subtitle, buttons, screenshot], { opacity: 0, translateY: 20 });
|
||||
anime.set(screenshot, { opacity: 0, scale: 0.96, translateY: 0 });
|
||||
|
||||
if (eyebrow) heroTl.add({ targets: eyebrow, opacity: [0, 1], translateY: [15, 0] }, 0);
|
||||
if (h1) heroTl.add({ targets: h1, opacity: [0, 1], translateY: [30, 0], duration: 800 }, 100);
|
||||
if (subtitle) heroTl.add({ targets: subtitle, opacity: [0, 1], translateY: [20, 0] }, 250);
|
||||
if (buttons) heroTl.add({ targets: buttons, opacity: [0, 1], translateY: [20, 0] }, 350);
|
||||
if (macosHint) heroTl.add({ targets: macosHint, opacity: [0, 1], translateY: [20, 0] }, 400);
|
||||
if (screenshot) heroTl.add({ targets: screenshot, opacity: [0, 1], scale: [0.96, 1], duration: 900 }, 450);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,13 @@ export interface ChangelogEntry {
|
||||
}
|
||||
|
||||
export const changelogEntries: ChangelogEntry[] = [
|
||||
{
|
||||
version: "0.7.13",
|
||||
date: "2026-09-04",
|
||||
highlights: [
|
||||
"macOS is now Developer-ID signed and notarized — the app is properly code-signed with a Developer ID Application certificate and notarized by Apple, so macOS opens it without the Gatekeeper 'Open Anyway' prompt or the xattr quarantine workaround.",
|
||||
],
|
||||
},
|
||||
{
|
||||
version: "0.7.12",
|
||||
date: "2026-09-01",
|
||||
|
||||
@@ -15,7 +15,7 @@ import queryEditor from "../assets/screenshots/query-editor.png";
|
||||
import erDiagram from "../assets/screenshots/er-diagram.png";
|
||||
import home from "../assets/screenshots/home.png";
|
||||
import dataGrid from "../assets/screenshots/data-grid.png";
|
||||
const version = "0.7.12";
|
||||
const version = "0.7.13";
|
||||
const site = "https://getgridline.app";
|
||||
const jsonLd = [
|
||||
buildSoftwareApplicationJsonLd({
|
||||
@@ -80,14 +80,6 @@ const jsonLd = [
|
||||
View on Gitea
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div id="macos-hint" class="hidden max-w-lg mx-auto w-full rounded-xl border border-[var(--border)] bg-[var(--surface)] p-3 text-left mt-4">
|
||||
<p class="text-xs text-[var(--text-muted)] mb-2">First launch on macOS? Run this in Terminal:</p>
|
||||
<div class="flex items-center justify-between gap-3 rounded-lg bg-[var(--bg)] border border-[var(--border)] px-3 py-2">
|
||||
<code class="font-mono text-xs truncate">sudo xattr -dr com.apple.quarantine /Applications/Gridline.app</code>
|
||||
<button id="copy-quarantine" class="text-xs font-medium text-[var(--primary)] hover:text-[var(--primary-hover)] transition-colors shrink-0" aria-label="Copy command">Copy</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hero-screenshot mt-14 md:mt-20 mx-auto max-w-6xl">
|
||||
|
||||
Reference in New Issue
Block a user