Skip to content

v0.0.47

Compare
Choose a tag to compare
@peterpeterparker peterpeterparker released this 21 Apr 06:13
· 154 commits to main since this release
c66fa94

Summary

This release introduces support for writing serverless functions in TypeScript. Developers can now choose between Rust and TypeScript for backend logic, with both approaches designed to follow a similar structure and API surface. Switching between the two, or migrating over time, should feel intuitive.
More details are available in the documentation, reference and guides.

It also marks a shift in focus toward local-first development. While previous versions defaulted to building directly against production, this release encourages starting locally. To support this, a new Docker image called Skylab has been introduced. It bundles everything needed for local development—including the Console UI—offering a setup that closely mirrors the mainnet experience.

Finally, this release prepares for the removal of the version() and build_version() endpoints in all modules. Instead, each WASM now includes a public juno:package custom section containing metadata such as the module’s name, version, and dependencies.

For example:

{
	"name": "@junobuild/satellite",
	"version": "0.0.22"
}

And if extended by a developer:

{
	"name": "test-satellite",
	"version": "0.0.1-test",
	"dependencies": {
		"@junobuild/satellite": "0.0.22"
	}
}

This new approach is more flexible and opens the door to features like module templates or fine-grained dependency management.

Note

No new versions of the modules included.

Overview

Module Version Breaking changes
Sputnik 0.1.0 🆕 ️
Crates Version Breaking changes
junobuild-satellite v0.1.0 ⚠️ (version() deprecated)
junobuild-storage v0.1.0
junobuild-collections v0.1.0
junobuild-shared v0.1.0
junobuild-macros v0.1.0
junobuild-utils v0.1.0
Library Version Breaking changes
@junobuild/core v0.1.11
@junobuild/core-standalone v0.1.11
@junobuild/admin v0.2.0 ⚠️
@junobuild/analytics v0.1.8
@junobuild/functions v0.1.0 🆕
@junobuild/storage v0.1.7
@junobuild/console v0.1.7
@junobuild/cli-tools v0.1.9
@junobuild/config v0.1.6
@junobuild/config-loader v0.2.1 ⚠️
@junobuild/utils v0.1.3
@junobuild/errors v0.0.7
CLI Version Breaking changes
@junobuild/cli v0.2.14 ⚠️
Plugins Version Breaking changes
@junobuild/vite-plugin v3.3.0 ⚠️
@junobuild/nextjs-plugin v3.3.0 ⚠️
Templates Version Breaking changes
create-juno v0.4.1 ⚠️
satellite-template v0.0.5
observatory-templates v0.0.3
Docker Version Breaking changes
@junobuild/skylab v0.0.55 🆕
@junobuild/satellite v0.0.55
@junobuild/console v0.0.55
@junobuild/action v0.1.0

Changes

Here is a list of changes included in this release:

Console (Backend)

No changes.

Console (Frontend)

The Console UI/UX has been improved as follows:

Features

  • Load version and dependency information using the new custom section juno:package (with fallback to previous methods for backward compatibility).
  • Mark version() and build_version() as deprecated.
  • Extend the store to handle version data and introduce a corresponding component loader.
  • Use the full window width for the Functions page.
  • Display logs for which the level is unknown with related level instead of "Error".
  • Update the list of subnets.
  • Convert environment constants (e.g., dev, prod) into functions to improve testability.
  • Hide the navbar on scroll.
  • Review and update guides and related links.

Development-Only Features

  • Add a "Get ICP" button to the Wallet.
  • When creating a new module (Satellite or Orbiter), fetch the emulator identity and attach it as a controller.
  • Introduce a new SKYLAB environment used to run the Console UI locally and toggle features specific to the containerized development environment.
  • Display a "DEV Console" banner when the Console is running locally.
  • Skip calls to the BN if the relevant environment variables are not set.

Styles

  • Increase the main content max width to 1440px for better support on most devices (especially laptops with 1920px resolution).
  • Display version information as tags.

Build

  • Update dependencies.

Satellite

No changes released in this version.

Mission Control

No changes released in this version.

Orbiter

No changes released in this version.

Observatory

No changes released in this version.

Sputnik 🆕

Sputnik is a new module introduced in this release.

It extends the default Satellite module and reuses the same system of hooks and assertions. Rather than functioning as a standalone module, it acts primarily as a proxy, delegating execution to the serverless functions written by the developer.

In other words, it cannot be used on its own but serves as a runtime for custom logic.

Library

Please refer to the releases for details.

CLI

Please refer to the releases for details.

Plugins

Please refer to the releases for details.

Templates

Please refer to the create-juno and satellite-template releases for details.

GitHub Action

Please refer to the releases for details.

Docker

Please refer to the releases for details.

Proxy

Please refer to the releases for details.