From e1ccc583a399932e12b788202e028e5cf15b0172 Mon Sep 17 00:00:00 2001 From: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Date: Fri, 9 May 2025 16:34:29 -0600 Subject: [PATCH] 0.4.0-alpha.2 (#2940) --- core/Cargo.lock | 2 +- core/startos/Cargo.toml | 2 +- .../src/service/persistent_container.rs | 12 +++++- core/startos/src/version/mod.rs | 12 ++++-- core/startos/src/version/v0_4_0_alpha_2.rs | 37 +++++++++++++++++++ sdk/package/lib/StartSdk.ts | 2 +- web/package-lock.json | 4 +- web/package.json | 2 +- .../ui/src/app/services/api/api.fixures.ts | 16 ++++---- 9 files changed, 70 insertions(+), 19 deletions(-) create mode 100644 core/startos/src/version/v0_4_0_alpha_2.rs diff --git a/core/Cargo.lock b/core/Cargo.lock index d894e5703..7a2a4080e 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -6023,7 +6023,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "start-os" -version = "0.4.0-alpha.1" +version = "0.4.0-alpha.2" dependencies = [ "aes 0.7.5", "async-acme", diff --git a/core/startos/Cargo.toml b/core/startos/Cargo.toml index 7af8d7768..37ab0fce5 100644 --- a/core/startos/Cargo.toml +++ b/core/startos/Cargo.toml @@ -14,7 +14,7 @@ keywords = [ name = "start-os" readme = "README.md" repository = "https://github.com/Start9Labs/start-os" -version = "0.4.0-alpha.1" # VERSION_BUMP +version = "0.4.0-alpha.2" # VERSION_BUMP license = "MIT" [lib] diff --git a/core/startos/src/service/persistent_container.rs b/core/startos/src/service/persistent_container.rs index a20f5c650..b04c43cda 100644 --- a/core/startos/src/service/persistent_container.rs +++ b/core/startos/src/service/persistent_container.rs @@ -142,9 +142,19 @@ impl PersistentContainer { ReadOnly, ) .await?; + let is_compat = tokio::fs::metadata(js_mount.path().join("embassy.js")) + .await + .is_ok(); let mut volumes = BTreeMap::new(); - for volume in &s9pk.as_manifest().volumes { + + // TODO: remove once packages are reconverted + let added = if is_compat { + ["embassy".parse().unwrap()].into_iter().collect() + } else { + BTreeSet::default() + }; + for volume in s9pk.as_manifest().volumes.union(&added) { let mountpoint = lxc_container .rootfs_dir() .join("media/startos/volumes") diff --git a/core/startos/src/version/mod.rs b/core/startos/src/version/mod.rs index 1cf615005..e009fe2cb 100644 --- a/core/startos/src/version/mod.rs +++ b/core/startos/src/version/mod.rs @@ -41,8 +41,9 @@ mod v0_3_6_alpha_18; mod v0_4_0_alpha_0; mod v0_4_0_alpha_1; +mod v0_4_0_alpha_2; -pub type Current = v0_4_0_alpha_1::Version; // VERSION_BUMP +pub type Current = v0_4_0_alpha_2::Version; // VERSION_BUMP impl Current { #[instrument(skip(self, db))] @@ -147,7 +148,8 @@ enum Version { V0_3_6_alpha_17(Wrapper), V0_3_6_alpha_18(Wrapper), V0_4_0_alpha_0(Wrapper), - V0_4_0_alpha_1(Wrapper), // VERSION_BUMP + V0_4_0_alpha_1(Wrapper), + V0_4_0_alpha_2(Wrapper), // VERSION_BUMP Other(exver::Version), } @@ -191,7 +193,8 @@ impl Version { Self::V0_3_6_alpha_17(v) => DynVersion(Box::new(v.0)), Self::V0_3_6_alpha_18(v) => DynVersion(Box::new(v.0)), Self::V0_4_0_alpha_0(v) => DynVersion(Box::new(v.0)), - Self::V0_4_0_alpha_1(v) => DynVersion(Box::new(v.0)), // VERSION_BUMP + Self::V0_4_0_alpha_1(v) => DynVersion(Box::new(v.0)), + Self::V0_4_0_alpha_2(v) => DynVersion(Box::new(v.0)), // VERSION_BUMP Self::Other(v) => { return Err(Error::new( eyre!("unknown version {v}"), @@ -227,7 +230,8 @@ impl Version { Version::V0_3_6_alpha_17(Wrapper(x)) => x.semver(), Version::V0_3_6_alpha_18(Wrapper(x)) => x.semver(), Version::V0_4_0_alpha_0(Wrapper(x)) => x.semver(), - Version::V0_4_0_alpha_1(Wrapper(x)) => x.semver(), // VERSION_BUMP + Version::V0_4_0_alpha_1(Wrapper(x)) => x.semver(), + Version::V0_4_0_alpha_2(Wrapper(x)) => x.semver(), // VERSION_BUMP Version::Other(x) => x.clone(), } } diff --git a/core/startos/src/version/v0_4_0_alpha_2.rs b/core/startos/src/version/v0_4_0_alpha_2.rs new file mode 100644 index 000000000..2196747fc --- /dev/null +++ b/core/startos/src/version/v0_4_0_alpha_2.rs @@ -0,0 +1,37 @@ +use exver::{PreReleaseSegment, VersionRange}; +use imbl_value::json; + +use super::v0_3_5::V0_3_0_COMPAT; +use super::{v0_4_0_alpha_1, VersionT}; +use crate::prelude::*; + +lazy_static::lazy_static! { + static ref V0_4_0_alpha_2: exver::Version = exver::Version::new( + [0, 4, 0], + [PreReleaseSegment::String("alpha".into()), 2.into()] + ); +} + +#[derive(Clone, Copy, Debug, Default)] +pub struct Version; + +impl VersionT for Version { + type Previous = v0_4_0_alpha_1::Version; + type PreUpRes = (); + + async fn pre_up(self) -> Result { + Ok(()) + } + fn semver(self) -> exver::Version { + V0_4_0_alpha_2.clone() + } + fn compat(self) -> &'static VersionRange { + &V0_3_0_COMPAT + } + fn up(self, db: &mut Value, _: Self::PreUpRes) -> Result<(), Error> { + Ok(()) + } + fn down(self, _db: &mut Value) -> Result<(), Error> { + Ok(()) + } +} diff --git a/sdk/package/lib/StartSdk.ts b/sdk/package/lib/StartSdk.ts index bb0e9ee19..730cf1f82 100644 --- a/sdk/package/lib/StartSdk.ts +++ b/sdk/package/lib/StartSdk.ts @@ -52,7 +52,7 @@ import * as actions from "../../base/lib/actions" import { setupInit } from "./inits/setupInit" import * as fs from "node:fs/promises" -export const OSVersion = testTypeVersion("0.4.0-alpha.1") +export const OSVersion = testTypeVersion("0.4.0-alpha.2") // prettier-ignore type AnyNeverCond = diff --git a/web/package-lock.json b/web/package-lock.json index 0d0a43490..ef4194669 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "startos-ui", - "version": "0.4.0-alpha.1", + "version": "0.4.0-alpha.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "startos-ui", - "version": "0.4.0-alpha.1", + "version": "0.4.0-alpha.2", "license": "MIT", "dependencies": { "@angular/animations": "^17.3.1", diff --git a/web/package.json b/web/package.json index 1d3398a88..e058ee096 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "startos-ui", - "version": "0.4.0-alpha.1", + "version": "0.4.0-alpha.2", "author": "Start9 Labs, Inc", "homepage": "https://start9.com/", "license": "MIT", diff --git a/web/projects/ui/src/app/services/api/api.fixures.ts b/web/projects/ui/src/app/services/api/api.fixures.ts index fac8d0be6..e0814e26d 100644 --- a/web/projects/ui/src/app/services/api/api.fixures.ts +++ b/web/projects/ui/src/app/services/api/api.fixures.ts @@ -101,16 +101,16 @@ export namespace Mock { }, img: {}, }, - '0.4.0-alpha.1': { - headline: 'v0.4.0-alpha.1', + '0.4.0-alpha.2': { + headline: 'v0.4.0-alpha.2', releaseNotes: '', - sourceVersion: '>=0.3.5:0 <=0.4.0-alpha.1:0', + sourceVersion: '>=0.3.5:0 <=0.4.0-alpha.2:0', authorized: ['G24CSA5HNYEPIXJNMK7ZM4KD5SX5N6X4'], iso: {}, squashfs: { aarch64: { publishedAt: '2025-04-21T20:58:48.140749883Z', - url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.1/startos-0.4.0-alpha.1-33ae46f~dev_aarch64.squashfs', + url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.2/startos-0.4.0-alpha.2-33ae46f~dev_aarch64.squashfs', commitment: { hash: '4elBFVkd/r8hNadKmKtLIs42CoPltMvKe2z3LRqkphk=', size: 1343500288, @@ -122,7 +122,7 @@ export namespace Mock { }, 'aarch64-nonfree': { publishedAt: '2025-04-21T21:07:00.249285116Z', - url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.1/startos-0.4.0-alpha.1-33ae46f~dev_aarch64-nonfree.squashfs', + url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.2/startos-0.4.0-alpha.2-33ae46f~dev_aarch64-nonfree.squashfs', commitment: { hash: 'MrCEi4jxbmPS7zAiGk/JSKlMsiuKqQy6RbYOxlGHOIQ=', size: 1653075968, @@ -134,7 +134,7 @@ export namespace Mock { }, raspberrypi: { publishedAt: '2025-04-21T21:16:12.933319237Z', - url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.1/startos-0.4.0-alpha.1-33ae46f~dev_raspberrypi.squashfs', + url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.2/startos-0.4.0-alpha.2-33ae46f~dev_raspberrypi.squashfs', commitment: { hash: '/XTVQRCqY3RK544PgitlKu7UplXjkmzWoXUh2E4HCw0=', size: 1490731008, @@ -146,7 +146,7 @@ export namespace Mock { }, x86_64: { publishedAt: '2025-04-21T21:14:20.246908903Z', - url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.1/startos-0.4.0-alpha.1-33ae46f~dev_x86_64.squashfs', + url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.2/startos-0.4.0-alpha.2-33ae46f~dev_x86_64.squashfs', commitment: { hash: '/6romKTVQGSaOU7FqSZdw0kFyd7P+NBSYNwM3q7Fe44=', size: 1411657728, @@ -158,7 +158,7 @@ export namespace Mock { }, 'x86_64-nonfree': { publishedAt: '2025-04-21T21:15:17.955265284Z', - url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.1/startos-0.4.0-alpha.1-33ae46f~dev_x86_64-nonfree.squashfs', + url: 'https://alpha-registry-x.start9.com/startos/v0.4.0-alpha.2/startos-0.4.0-alpha.2-33ae46f~dev_x86_64-nonfree.squashfs', commitment: { hash: 'HCRq9sr/0t85pMdrEgNBeM4x11zVKHszGnD1GDyZbSE=', size: 1731035136,