Skip to content

Norm 0.19 ​

Norm 0.19 makes single-file applications and GitHub package management one user path. A .norm file declares its module, dependencies, business types, and application entry; norm web.norm resolves, compiles, and runs it.

Single-file applications ​

  • Declarations identify Module module() and Application application() without requiring module.norm or application.norm filenames.
  • The CLI and language server build the module graph through the same ProjectLoader, so execution, diagnostics, completion, and navigation share dependency semantics.
  • std.application.Application owns service lifetime; the CLI contains no framework-specific path.

GitHub package repository ​

  • repository: "github" uses normlanguage/registry to locate the repository that owns a module.
  • Every module publishes its NAR and SHA-256 as an immutable v<version> release in an independent repository. Downloads are digest-verified and atomically cached.
  • The built-in Maven Resolver continues to obtain a Java binding's root artifact and transitives. Users need no Maven, Gradle, POM, or lock file.
  • The Norm repository retains the language, toolchain, and consumer examples, but no Java binding package sources or centralized NAR repository.

Self-contained runtime ​

  • The Windows CLI ships as one directly executable norm.exe; norm.exe setup installs it for the current user and configures PATH automatically.
  • Windows, Linux, and macOS CLIs use the same internal norm/bin, norm/lib, and norm/runtime layout and require no system Java installation.
  • The CLI, language server, VS Code, and Java bindings share one JVM execution model. Independent packages can dynamically introduce JARs and annotation processors that did not exist when Norm was released.
  • Release acceptance runs the complete language suite through the final distribution and loads the Commons Lang binding from the GitHub Registry and Maven repository.

On Windows, upgrade from an older archive by downloading the new norm.exe and running norm.exe setup once. Manual PATH maintenance is no longer required.

The runnable contract is the Micronaut single-file application. The package manager defines publication and ownership.

Norm 0.25