mirror of
https://github.com/audacity/audacity.github.io.git
synced 2026-06-01 04:34:23 -05:00
feat: consolidate prerelease downloads
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
/gitbook-access https://app.gitbook.com/invite/-MhmG2mhIIHTtQPuHV_k/acNI2LAF6LtdJW06t4Hc
|
||||
/devserver https://discord.gg/N3XKxzTrq3
|
||||
/dev https://audacity.gitbook.io/dev/
|
||||
/nightly /beta
|
||||
/nightly /next
|
||||
/au4win https://nightly.link/audacity/audacity/workflows/au4_build_windows/master
|
||||
/au4mac https://nightly.link/audacity/audacity/workflows/au4_build_macos/master
|
||||
/au4lin https://nightly.link/audacity/audacity/workflows/au4_build_linux/master
|
||||
@@ -29,6 +29,11 @@
|
||||
/) /
|
||||
/vpat /VPAT.pdf
|
||||
|
||||
# prerelease
|
||||
/au4 /next 301
|
||||
/alpha /next 301
|
||||
/beta /next 301
|
||||
|
||||
# campaign links
|
||||
/survey https://docs.google.com/forms/d/e/1FAIpQLSd42XPhC69bKUA9kbYiTXboRLaj9Q11_BUEXTK0v0TzWJQmDQ/viewform?usp=dialog
|
||||
/audacitypromo https://www.youtube.com/watch?v=Lb7jx4wdXXE&mtm_campaign=audacityapp&mtm_content=welcomescreen_video
|
||||
|
||||
@@ -13,8 +13,6 @@ export type ReleaseDirectory = {
|
||||
src?: ReleaseInfo[];
|
||||
};
|
||||
|
||||
export type ActivationState = "active" | "inactive";
|
||||
|
||||
export const audacityReleases: ReleaseDirectory = {
|
||||
version: "3.7.5",
|
||||
win: [
|
||||
@@ -149,7 +147,7 @@ export const hasDownloadAssets = (downloads?: ReleaseDirectory): boolean => {
|
||||
export type PreReleaseEntry = {
|
||||
id: string;
|
||||
label: string;
|
||||
status: ActivationState;
|
||||
isActive: boolean;
|
||||
summary: string;
|
||||
pageHref: string;
|
||||
downloads: ReleaseDirectory;
|
||||
@@ -158,10 +156,10 @@ export type PreReleaseEntry = {
|
||||
export const alphaPreRelease: PreReleaseEntry = {
|
||||
id: "alpha",
|
||||
label: "Alpha",
|
||||
status: "active",
|
||||
isActive: true,
|
||||
summary:
|
||||
"Get an early look at the next major release. Expect unfinished features and potential bugs.",
|
||||
pageHref: "/au4",
|
||||
pageHref: "/next",
|
||||
downloads: {
|
||||
version: "Audacity 4 Alpha 1",
|
||||
win: [
|
||||
@@ -195,9 +193,9 @@ export const alphaPreRelease: PreReleaseEntry = {
|
||||
export const betaPreRelease: PreReleaseEntry = {
|
||||
id: "beta",
|
||||
label: "Beta",
|
||||
status: "inactive",
|
||||
isActive: false,
|
||||
summary: "Help us test upcoming features before they ship.",
|
||||
pageHref: "/beta",
|
||||
pageHref: "/next",
|
||||
downloads: {
|
||||
version: "3.5.0 beta",
|
||||
win: [
|
||||
|
||||
@@ -24,11 +24,11 @@ const promoData: Record<string, PromoData> = {
|
||||
audacity4Alpha: {
|
||||
isActive: true,
|
||||
priority: 50,
|
||||
suppressOnPaths: ["/au4", "/download"],
|
||||
suppressOnPaths: ["/next", "/download"],
|
||||
message: "Want a peek at our next big release?",
|
||||
cta: {
|
||||
text: "Try the Audacity 4 Alpha",
|
||||
link: "/au4",
|
||||
link: "/next",
|
||||
},
|
||||
tracking: {
|
||||
category: "Promo CTA",
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
preReleaseList,
|
||||
} from "../../assets/data/audacityReleases";
|
||||
const activeDownloadCampaign = preReleaseList.find((entry) =>
|
||||
entry.status === "active" && hasDownloadAssets(entry.downloads)
|
||||
entry.isActive && hasDownloadAssets(entry.downloads)
|
||||
) ?? null;
|
||||
const hasPreRelease = Boolean(activeDownloadCampaign);
|
||||
const activePreReleaseAriaLabel = hasPreRelease && activeDownloadCampaign
|
||||
|
||||
75
src/components/next/AlphaDetails.astro
Normal file
75
src/components/next/AlphaDetails.astro
Normal file
@@ -0,0 +1,75 @@
|
||||
---
|
||||
---
|
||||
<div class="mt-6">
|
||||
<p>
|
||||
The purpose of this alpha build is to test the core features of Audacity 4 on a
|
||||
wide selection of hardware and operating systems.
|
||||
</p>
|
||||
<p>
|
||||
If you experience severe issues or crashes, please file an issue on GitHub
|
||||
(requires a free GitHub account).
|
||||
</p>
|
||||
<ul class="py-2 list-none">
|
||||
<li>
|
||||
<a href="https://github.com/audacity/audacity/issues" class="hyperlink">
|
||||
Github issues
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="mt-6 text-2xl">What's implemented</h2>
|
||||
|
||||
<ul class="list-disc mt-2 ml-6">
|
||||
<li>Recording and playback</li>
|
||||
<li>Editing audio</li>
|
||||
<li>Applying effects (destructive and real-time)</li>
|
||||
<li>Exporting audio files</li>
|
||||
<li>
|
||||
Configuring and re-arranging the interface (including the new Workspaces
|
||||
feature)
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="mt-2">A note on compatibility ⚠️</h3>
|
||||
<p class="mt-2">
|
||||
Projects saved in Audacity 4 are not backwards compatible. We recommend you make
|
||||
a copy of your important projects before opening them in Audacity 4.
|
||||
</p>
|
||||
|
||||
<h2 class="mt-6 text-2xl">Unimplemented features</h2>
|
||||
<p class="mt-2">
|
||||
Some yet-to-be finalized features might appear non-functional, or have been
|
||||
excluded from Audacity's interface. These are features not yet ready for user
|
||||
testing, and have been disabled.
|
||||
</p>
|
||||
<ul class="list-disc mt-2 ml-6">
|
||||
<li>Nyquist, LADSPA and VAMP and the OpenVINO plugins</li>
|
||||
<li>Preferences from Audacity 3 are not carried over</li>
|
||||
<li>Envelopes and label tracks</li>
|
||||
<li>Spectrogram view and the spectral editing mode</li>
|
||||
<li>Most built-in effects, including generators and analyzers</li>
|
||||
<li>Opening multiple projects at the same time</li>
|
||||
</ul>
|
||||
|
||||
<div>
|
||||
<h2 class="mt-4 text-2xl">Submit your feedback!</h2>
|
||||
<p class="mt-2">
|
||||
We're always eager to hear what you have to say, but it's especially important
|
||||
we hear from you during this early phase. Please let us know what you think,
|
||||
using the following places:
|
||||
</p>
|
||||
<ul class="py-2 list-none">
|
||||
<li class="hyperlink">
|
||||
<a href="https://forum.audacityteam.org/c/au4/64">Audacity Forum</a>
|
||||
</li>
|
||||
<li class="hyperlink">
|
||||
<a href="https://discord.gg/audacity">Audacity Discord</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/audacity/audacity/issues" class="hyperlink">
|
||||
Github issues
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
17
src/components/next/BetaDetails.astro
Normal file
17
src/components/next/BetaDetails.astro
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
---
|
||||
<div class="my-6">
|
||||
<p>
|
||||
Download the latest beta build and help us test upcoming Audacity features.
|
||||
</p>
|
||||
<p class="my-2">
|
||||
If you'd like to help us with testing, instructions can be found below.
|
||||
</p>
|
||||
<div class="flex items-center justify-center w-fit rounded-md text-white my-6">
|
||||
<a href="https://support.audacityteam.org/community/contributing/testing">
|
||||
<div class="flex items-center gap-3 h-10 pl-4 pr-3 rounded-md bg-blue-700 hover:bg-blue-600">
|
||||
Instructions for testing
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -20,7 +20,7 @@ const {
|
||||
|
||||
const isNoAdPage =
|
||||
Astro.request.url.includes("/post-download") ||
|
||||
Astro.request.url.includes("/au4");
|
||||
Astro.request.url.includes("/next");
|
||||
const hasActiveStaticPromo = Object.values(promoData).some((promo) => {
|
||||
const isActive = promo.isActive ?? true;
|
||||
return isActive && Boolean(promo.cta);
|
||||
|
||||
@@ -14,7 +14,7 @@ const { version } = audacityReleases;
|
||||
const sourceDownloads = audacityReleases.src ?? [];
|
||||
const primarySourceDownload = sourceDownloads[0] ?? null;
|
||||
const activeDownloadEntries = preReleaseList.filter(
|
||||
(entry) => entry.status === "active" && hasDownloadAssets(entry.downloads),
|
||||
(entry) => entry.isActive && hasDownloadAssets(entry.downloads),
|
||||
);
|
||||
const hasDownloadCampaigns = activeDownloadEntries.length > 0;
|
||||
|
||||
|
||||
166
src/pages/next.astro
Normal file
166
src/pages/next.astro
Normal file
@@ -0,0 +1,166 @@
|
||||
---
|
||||
import {
|
||||
alphaPreRelease,
|
||||
betaPreRelease,
|
||||
} from "../assets/data/audacityReleases";
|
||||
import SplitDownloadButton from "../components/button/SplitDownloadButton.jsx";
|
||||
import FeaturedVideo from "../components/video/FeaturedVideo";
|
||||
import AlphaDetails from "../components/next/AlphaDetails.astro";
|
||||
import BetaDetails from "../components/next/BetaDetails.astro";
|
||||
import BaseLayout from "../layouts/BaseLayout.astro";
|
||||
import "../styles/icons.css";
|
||||
|
||||
const pageTitle = "Audacity ® | Pre-release downloads";
|
||||
const pageDescription =
|
||||
"Test upcoming Audacity builds for Windows, macOS, and Linux.";
|
||||
|
||||
const releaseConfigurations = [
|
||||
{
|
||||
entry: betaPreRelease,
|
||||
Details: BetaDetails,
|
||||
},
|
||||
{
|
||||
entry: alphaPreRelease,
|
||||
Details: AlphaDetails,
|
||||
},
|
||||
];
|
||||
|
||||
const activeConfig =
|
||||
releaseConfigurations.find(({ entry }) => entry.isActive) ?? null;
|
||||
|
||||
const activeRelease = activeConfig?.entry ?? null;
|
||||
const DetailsComponent = activeConfig?.Details ?? null;
|
||||
const releaseDownloads = activeRelease?.downloads ?? null;
|
||||
const releaseVersion = releaseDownloads?.version ?? "";
|
||||
const windowsDownloads = releaseDownloads?.win ?? [];
|
||||
const macDownloads = releaseDownloads?.mac ?? [];
|
||||
const linuxDownloads = releaseDownloads?.lin ?? [];
|
||||
const isAlphaRelease = activeRelease?.id === "alpha";
|
||||
|
||||
const downloadSections = activeRelease
|
||||
? [
|
||||
{
|
||||
id: "windows",
|
||||
title: `${releaseVersion} for Windows`,
|
||||
os: "Windows",
|
||||
entries: windowsDownloads,
|
||||
},
|
||||
{
|
||||
id: "mac",
|
||||
title: `${releaseVersion} for macOS`,
|
||||
os: "macOS",
|
||||
entries: macDownloads,
|
||||
},
|
||||
{
|
||||
id: "linux",
|
||||
title: `${releaseVersion} for Linux`,
|
||||
os: "Linux",
|
||||
entries: linuxDownloads,
|
||||
},
|
||||
].filter((section) => section.entries.length > 0)
|
||||
: [];
|
||||
---
|
||||
|
||||
<BaseLayout
|
||||
title={pageTitle}
|
||||
description={pageDescription}
|
||||
showPromoBanner={false}
|
||||
>
|
||||
<main id="main" class="max-w-screen-xl mx-auto text-gray-700">
|
||||
<div class="grid grid-cols-12 pt-8 pb-32 gap-y-12">
|
||||
<section class="col-start-2 col-span-10 sm:col-start-2 sm:col-span-5">
|
||||
{
|
||||
activeRelease ? (
|
||||
<>
|
||||
<h1>{releaseVersion}</h1>
|
||||
{DetailsComponent && <DetailsComponent />}
|
||||
{isAlphaRelease && (
|
||||
<FeaturedVideo
|
||||
client:load
|
||||
placeholderImage="https://i.ytimg.com/vi/QYM3TWf_G38/maxresdefault.jpg"
|
||||
imageAltText="Video: How we made Audacity 4"
|
||||
videoURL="https://www.youtube-nocookie.com/embed/QYM3TWf_G38?autoplay=1"
|
||||
title="Video: How we made Audacity 4"
|
||||
label="Watch a behind-the-scenes video on the making of Audacity 4"
|
||||
class="mt-8"
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
) : (
|
||||
<div class="border border-yellow-300 bg-yellow-50 text-yellow-900 rounded-md p-6">
|
||||
<h1 class="text-3xl font-semibold text-yellow-900">
|
||||
Pre-release downloads are currently unavailable.
|
||||
</h1>
|
||||
<p class="mt-4">
|
||||
Check back soon or download the latest stable version of Audacity.
|
||||
</p>
|
||||
<a
|
||||
class="hyperlink inline-flex items-center gap-1 mt-4"
|
||||
href="/download"
|
||||
>
|
||||
Browse stable downloads
|
||||
<span class="align-middle icon icon-share text-blue-600" />
|
||||
</a>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</section>
|
||||
<aside
|
||||
class="row-start-2 sm:row-start-1 col-start-2 col-span-10 sm:col-start-8 sm:col-span-4"
|
||||
>
|
||||
<h2 class="text-sm uppercase font-normal">Download links</h2>
|
||||
{
|
||||
activeRelease ? (
|
||||
downloadSections.length > 0 ? (
|
||||
<div class="flex flex-col gap-6 mt-2">
|
||||
{downloadSections.map((section) => (
|
||||
<div class="border border-bg-200 rounded-md p-6">
|
||||
<h3 class="additional-resource-heading">
|
||||
{section.title}
|
||||
</h3>
|
||||
<div class="mt-2">
|
||||
<SplitDownloadButton
|
||||
OS={section.os}
|
||||
releaseData={section.entries}
|
||||
client:load
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
) : (
|
||||
<div class="mt-4 p-4 border border-gray-200 rounded-md bg-gray-50">
|
||||
<p class="text-sm text-gray-700">
|
||||
Download packages for this pre-release are not available right now.
|
||||
</p>
|
||||
<a
|
||||
class="hyperlink text-sm inline-flex items-center gap-1 mt-3"
|
||||
href="/download"
|
||||
>
|
||||
Browse stable downloads
|
||||
<span class="align-middle icon icon-share text-blue-600" />
|
||||
</a>
|
||||
</div>
|
||||
)
|
||||
) : (
|
||||
<div class="mt-4 p-4 border border-gray-200 rounded-md bg-gray-50">
|
||||
<p class="text-sm text-gray-700">
|
||||
Pre-release downloads are currently unavailable.
|
||||
</p>
|
||||
<p class="text-sm text-gray-700 mt-1">
|
||||
You can still download the latest stable version of Audacity.
|
||||
</p>
|
||||
<a
|
||||
class="hyperlink text-sm inline-flex items-center gap-1 mt-3"
|
||||
href="/download"
|
||||
>
|
||||
Browse stable downloads
|
||||
<span class="align-middle icon icon-share text-blue-600" />
|
||||
</a>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</aside>
|
||||
</div>
|
||||
</main>
|
||||
</BaseLayout>
|
||||
Reference in New Issue
Block a user