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
9 changes: 0 additions & 9 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -151,15 +151,6 @@ FORGE_AUTH__BOOTSTRAP_ADMIN__PASSWORD=changeme
# FORGE_DOCKER__UNREFERENCED_BLOB_TTL_SECONDS=86400
# FORGE_DOCKER__SWEEP_INTERVAL_SECONDS=300

# ---------------------------------------------------------------------------
# WebAssembly format plugins (optional; docs/format-plugins.md)
# Load further package formats from <dir>/<id>/, each pinned to the SHA-256 of
# its component (a mismatch fails startup). The built-in format (NuGet) needs
# nothing here. `cargo xtask plugins` builds components and prints digests.
# ---------------------------------------------------------------------------
# FORGE_PLUGINS__DIR=/etc/forge/plugins
# FORGE_PLUGINS__FORMATS__EXAMPLE=sha256:<64 hex digits>

# ---------------------------------------------------------------------------
# Cache
# ---------------------------------------------------------------------------
Expand Down
6 changes: 0 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@ updates:
interval: weekly
open-pull-requests-limit: 10
groups:
# wasmtime-wasi of a major builds only against the wasmtime of the same
# major, so a major update of one alone fails to compile. Every update
# of the Wasmtime crates comes as one pull request; listed first, since
# a dependency joins the first group it matches.
wasmtime:
patterns: ["wasmtime", "wasmtime-*"]
cargo-minor-and-patch:
update-types: [minor, patch]

Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/ci-changes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ COMMON=(.github/scripts/ci-changes.sh)
# jobs would hide a change from the jobs using it; ci.yml has none.)
CI=.github/workflows/ci.yml
declare -A CI_JOB_GROUP=(
[fmt]=changelog [clippy]=rust [audit]=audit [plugins]=rust [test]=rust
[fmt]=changelog [clippy]=rust [audit]=audit [test]=rust
[docker]=image [kubernetes]=kubernetes [web]=web [oci-e2e]=rust
[raw-e2e]=rust [e2e]=rust [web-e2e]=web
)
Expand Down
26 changes: 0 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,29 +231,6 @@ jobs:
- name: cargo audit
run: cargo audit

# ── Format plugins as WebAssembly components (plugins/<id>/) ──────────────
# The plugins are workspace crates (fmt, clippy and their tests run with the
# workspace); this checks that each one also lints clean and builds as a
# component for wasm32-wasip2. The tests that load a component run in `test`.
plugins:
name: plugins
runs-on: ubuntu-latest
needs: changes
if: ${{ !cancelled() && needs.changes.outputs.rust != 'false' }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install Rust toolchain (rust-toolchain.toml) (with clippy, wasm32-wasip2)
uses: dtolnay/rust-toolchain@d124f86f28ff42855784ff3319f48ac182c248f8 # 1.99.1
with:
components: clippy
targets: wasm32-wasip2
- name: Cache cargo registry + dependency builds
uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
with:
save-if: ${{ github.event_name == 'push' }}
- name: cargo xtask plugins-check
run: cargo xtask plugins-check

# ── Unit + integration tests ───────────────────────────────────────────────
# The integration tests start their own Postgres, versitygw and Redis with
# testcontainers (the runner has a Docker daemon). There is no separate
Expand Down Expand Up @@ -281,9 +258,6 @@ jobs:
df -h /
- name: Install Rust toolchain (rust-toolchain.toml)
uses: dtolnay/rust-toolchain@d124f86f28ff42855784ff3319f48ac182c248f8 # 1.99.1
with:
# The format-plugin tests build plugins/ as WebAssembly components.
targets: wasm32-wasip2
- name: Cache cargo registry + dependency builds
uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 # v2.9.3
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ jobs:
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
# The `name:` of every ci.yml job that runs on the default branch. The
# required status checks in DEVELOPMENT.md (merge queue) list the same.
REQUIRED_JOBS: fmt clippy audit plugins test docker kubernetes web oci-e2e raw-e2e e2e web-e2e
REQUIRED_JOBS: fmt clippy audit test docker kubernetes web oci-e2e raw-e2e e2e web-e2e
steps:
- name: Wait for the commit's CI run and check its jobs
shell: bash # -eo pipefail: a failing gh call fails the step
Expand Down
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
/target
# Format plugins build in their own workspaces (`cargo xtask plugins`).
/plugins/*/target
**/*.rs.bk
Cargo.lock.orig
.env
Expand Down
14 changes: 6 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,12 @@ its pull request's description says why.
## Formats: every format plugin lives under plugins/

A package format is a crate in `plugins/<id>/`, the directory named after its
format id, whether it runs built in only, as a WebAssembly component, or
both. Built in only is no reason to put it elsewhere: NuGet runs built in
only and lives in `plugins/nuget`. Never add a format as a crate
under `crates/` (no `crates/format-<id>`) or as a module of the server: it
implements `FormatPlugin` with the layout
[plugins/README.md](plugins/README.md) describes, and has a `component`
feature unless it is built in only. Docker / OCI (`crates/format-oci`) and
raw (`crates/server/src/raw/`) are not there yet and are to move, to
format id, linked into the server like `plugins/nuget` (Forge loads no
WebAssembly plugins). Never add a format as a crate under `crates/` (no
`crates/format-<id>`) or as a module of the server: it implements
`FormatPlugin` with the layout [plugins/README.md](plugins/README.md)
describes. Docker / OCI (`crates/format-oci`) and raw
(`crates/server/src/raw/`) are not there yet and are to move, to
`plugins/docker` and `plugins/raw`, each in a pull request of its own; until
then they are not the model for a new format.

Expand Down
Loading
Loading