Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 4 additions & 19 deletions .github/workflows/platform-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,8 @@ jobs:
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable

- name: Install Linux DBus development package
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libdbus-1-dev

- name: Test generated platform scripts
run: cargo test -p fission-cli
run: cargo test -p cargo-fission

web:
name: Web / wasm
Expand All @@ -46,11 +41,6 @@ jobs:
with:
targets: wasm32-unknown-unknown

- name: Install Linux DBus development package
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libdbus-1-dev

- name: Check wasm core crates
run: |
cargo check -p fission-core --target wasm32-unknown-unknown
Expand All @@ -62,7 +52,7 @@ jobs:
run: cargo install wasm-pack --version 0.13.1 --locked

- name: Diagnose web toolchain
run: cargo run -p fission-cli --bin fission -- doctor web --project-dir examples/web-smoke
run: cargo run -p cargo-fission --bin fission -- doctor web --project-dir examples/web-smoke

- name: Build web-smoke wasm package
run: ./examples/web-smoke/platforms/web/build-wasm.sh
Expand All @@ -86,11 +76,6 @@ jobs:
with:
targets: aarch64-linux-android

- name: Install Linux DBus development package
run: |
sudo apt-get update
sudo apt-get install -y pkg-config libdbus-1-dev

- name: Set up Android SDK
uses: android-actions/setup-android@v3

Expand All @@ -103,7 +88,7 @@ jobs:
"ndk;${ANDROID_NDK_VERSION}"

- name: Diagnose Android toolchain
run: cargo run -p fission-cli --bin fission -- doctor android --project-dir examples/mobile-smoke --strict
run: cargo run -p cargo-fission --bin fission -- doctor android --project-dir examples/mobile-smoke --strict

- name: Check mobile-smoke for Android
run: |
Expand Down Expand Up @@ -136,7 +121,7 @@ jobs:
targets: aarch64-apple-ios-sim,aarch64-apple-ios

- name: Diagnose iOS toolchain
run: cargo run -p fission-cli --bin fission -- doctor ios --project-dir examples/mobile-smoke --strict
run: cargo run -p cargo-fission --bin fission -- doctor ios --project-dir examples/mobile-smoke --strict

- name: Check mobile-smoke for iOS simulator
run: cargo check -p mobile-smoke --target aarch64-apple-ios-sim
Expand Down
15 changes: 13 additions & 2 deletions .github/workflows/publish-website.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,22 @@ jobs:
- name: Configure GitHub Pages
uses: actions/configure-pages@v5

- name: Verify static site dependency boundary
run: |
if cargo tree -p cargo-fission --target x86_64-unknown-linux-gnu -i libdbus-sys --locked | grep -q 'libdbus-sys'; then
echo "Static site commands must not pull libdbus-sys through the Fission command dependency graph." >&2
exit 1
fi
if cargo tree -p fission-command-site --locked | grep -E 'keyring|aws-sdk|dbus|secret-service'; then
echo "fission-command-site must remain independent of credentials and provider SDKs." >&2
exit 1
fi

- name: Check static site routes
run: cargo run -p fission-cli --bin fission -- site check --project-dir documentation --release
run: cargo run -p cargo-fission --bin fission -- site check --project-dir documentation --release

- name: Package static site
run: cargo run -p fission-cli --bin fission -- package --project-dir documentation --target site --format static --release
run: cargo run -p cargo-fission --bin fission -- package --project-dir documentation --target site --format static --release

- name: Verify generated static site
run: |
Expand Down
102 changes: 94 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 8 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,14 @@ members = [
"crates/shell/fission-shell-site",
"crates/shell/fission-shell-terminal",
"crates/tools/fission-diagnostics",
"crates/tools/fission-cli",
"crates/tools/cargo-fission",
"crates/tools/fission-command-package",
"crates/tools/fission-command-release",
"crates/tools/fission-command-run",
"crates/tools/fission-command-core",
"crates/tools/fission-command-site",
"crates/tools/fission-command-ui",
"crates/tools/fission-credentials",
"crates/tools/fission-design-system-codegen",
"crates/tools/fission-test",
"crates/tools/fission-test-driver",
Expand Down
28 changes: 21 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,20 @@ The project documentation and marketing site are now a Fission static site under
Run locally:

```sh
cargo fission site serve --project-dir documentation
fission site serve --project-dir documentation
```

Build for deployment:

```sh
cargo fission site build --project-dir documentation
fission site build --project-dir documentation
```

Useful checks:

```sh
cargo fission site routes --project-dir documentation
cargo fission site check --project-dir documentation
fission site routes --project-dir documentation
fission site check --project-dir documentation
```

The static site supports custom widget routes, Markdown/MDX content routes, sidebars, generated table-of-contents navigation, copied assets, favicon support, light and dark themes, generated CSS, optional client-side search, optional code highlighting, sitemap and robots output, JSON-LD structured data, and internal-link validation.
Expand Down Expand Up @@ -136,7 +136,7 @@ Fission now ships a first-party scaffolding CLI for the basic project lifecycle:
fission init my-app

# Cargo subcommand alias
cargo fission add-target web ios android --project-dir my-app
fission add-target web ios android --project-dir my-app
```

The CLI currently does three things:
Expand Down Expand Up @@ -642,7 +642,14 @@ fission/
│ │ ├── fission-shell-mobile/ # Mobile shell (iOS / Android)
│ │ └── fission-shell-web/ # Web shell (WASM / browser)
│ └── tools/
│ ├── fission-cli/ # `fission` / `cargo fission` scaffolding CLI
│ ├── cargo-fission/ # Package that installs the `fission` command
│ ├── fission-command-core/ # Shared command models and project manifest helpers
│ ├── fission-command-run/ # Run, build, test, logs, and doctor workflows
│ ├── fission-command-site/ # Static site build/check/serve workflows
│ ├── fission-command-package/ # Packaging, readiness, and distribution workflows
│ ├── fission-command-release/ # Release metadata, auth, signing, beta, and review workflows
│ ├── fission-command-ui/ # Terminal UI for the same command model
│ ├── fission-credentials/ # Local credential vault helpers
│ ├── fission-diagnostics/ # Structured diagnostic logging
│ ├── fission-test/ # Test utilities
│ └── fission-test-driver/ # LiveTestClient and test protocol
Expand Down Expand Up @@ -734,7 +741,14 @@ For the iOS, Android, and browser smoke commands, see `docs/platform-smoke-tests
| [`fission-shell-desktop`](crates/shell/fission-shell-desktop) | Desktop shell wrapper around the shared winit runtime |
| [`fission-shell-mobile`](crates/shell/fission-shell-mobile) | Mobile shell (iOS / Android) -- simulator/emulator smoke paths verified |
| [`fission-shell-web`](crates/shell/fission-shell-web) | Web shell (WASM + browser) -- checked-in browser smoke path and CLI scaffolding |
| [`fission-cli`](crates/tools/fission-cli) | Project scaffolding CLI and `cargo fission` entrypoint |
| [`cargo-fission`](crates/tools/cargo-fission) | Package that installs the single `fission` project command |
| [`fission-command-core`](crates/tools/fission-command-core) | Shared command models and project manifest helpers |
| [`fission-command-run`](crates/tools/fission-command-run) | Run, build, test, logs, and doctor workflows |
| [`fission-command-site`](crates/tools/fission-command-site) | Static site build/check/serve workflows |
| [`fission-command-package`](crates/tools/fission-command-package) | Packaging, readiness, and distribution workflows |
| [`fission-command-release`](crates/tools/fission-command-release) | Release metadata, auth, signing, beta, and review workflows |
| [`fission-command-ui`](crates/tools/fission-command-ui) | Terminal UI app for the same command model |
| [`fission-credentials`](crates/tools/fission-credentials) | Local credential vault helpers used by release/publish commands |
| [`fission-diagnostics`](crates/tools/fission-diagnostics) | Structured diagnostic logging and performance tracing |
| [`fission-test`](crates/tools/fission-test) | Test utilities and helpers |
| [`fission-test-driver`](crates/tools/fission-test-driver) | LiveTestClient and JSON test protocol |
Expand Down
2 changes: 1 addition & 1 deletion crates/shell/fission-shell-web/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ cargo install wasm-pack
./examples/web-smoke/platforms/web/run-browser.sh
```

Build a generated app after `cargo fission add-target web`:
Build a generated app after `fission add-target web`:

```sh
./platforms/web/run-browser.sh
Expand Down
29 changes: 29 additions & 0 deletions crates/tools/cargo-fission/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[package]
name = "cargo-fission"
version = "0.1.1"
edition = "2021"
license = "MIT"
repository = "https://github.com/worka-ai/fission"
description = "Project scaffolding CLI for Fission"

[[bin]]
name = "fission"
path = "src/main.rs"

[[bin]]
name = "cargo-fission"
path = "src/bin/cargo-fission.rs"

[lib]
name = "fission_cli"
path = "src/lib.rs"

[dependencies]
anyhow = "1.0"
clap = { version = "4.5", features = ["derive"] }
fission-command-core = { path = "../fission-command-core", version = "0.1.1" }
fission-command-package = { path = "../fission-command-package", version = "0.1.1" }
fission-command-release = { path = "../fission-command-release", version = "0.1.1" }
fission-command-run = { path = "../fission-command-run", version = "0.1.1" }
fission-command-site = { path = "../fission-command-site", version = "0.1.1" }
fission-command-ui = { path = "../fission-command-ui", version = "0.1.1" }
Loading
Loading