Skip to content

hasundue/molt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦕 Molt

JSR CI codecov

demo

Warning

The project is still under active development. The API is not stable yet and may change frequently.

Molt is a project to provide Deno modules and a CLI to manage dependencies in Deno projects. Inspired by udd, but built from scratch with different design principles:

The Deno way - Internal logics of the Deno runtime are reused as much as possible, through the deno_graph and deno_lockfile crates, etc.

Module-first - The core features are provided as Deno modules, which enables you to write the best scripts for your use cases.

Git-friendly - The operations can be easily divided into logical groups for subsequent git commits.

Features

Molt can update to dependencies written in different formats. URL imports, npm: and jsr: specifiers are all supported:

ES modules

- import { copy } from "https://deno.land/std@0.222.0/bytes/copy.ts";
+ import { copy } from "https://deno.land/std@0.224.0/bytes/copy.ts";
...

Import maps

  {
    "imports": {
-     "std/": "https://deno.land/std@0.222.0/",
+     "std/": "https://deno.land/std@0.224.0/",
      "@luca/flag": "jsr:@luca/flag@^1.0.0",
-     "@conventional-commits/parser": "npm:@conventional-commits/parser@^0.3.0"
+     "@conventional-commits/parser": "npm:@conventional-commits/parser@^0.4.0"
    }
  }

Lock files

  {
    "version": "3",
    "packages": {
      "specifiers": {
-       "jsr:@luca/flag@^1.0.0": "jsr:@luca/flag@1.0.0",
-       "npm:@conventional-commits/parser@^0.3.0": "npm:@conventional-commits/parser@0.3.0"
+       "jsr:@luca/flag@^1.0.0": "jsr:@luca/flag@1.0.1",
+       "npm:@conventional-commits/parser@^0.3.0": "npm:@conventional-commits/parser@0.4.1"
      },
      "jsr": {
-       "@luca/flag@1.0.0": {
-         "integrity": "1c76cf54839a86d0929a619c61bd65bb73d7d8a4e31788e48c720dbc46c5d546"
+       "@luca/flag@1.0.1": {
+         "integrity": "dce7eb4159b1bdb1606fe05c2e5388dcff5ae3b0b84184b934bc623143742408"
        }
      },
      ...

Note

Molt uses a similar versioning strategy as increase-if-necessary in dependabot to bump version ranges1.

Packages and documentation

JSR JSR

A CLI to update dependencies, supposed to be the entry point for most users.

JSR JSR

Deno modules to collect and manipulate dependencies and updates.

JSR JSR

Modules to integrate Molt with thrid-party platforms.

JSR JSR

General-purpose utilities developed for Molt, but may be used independently.

Integration

A GitHub Action to create pull requests for dependency updates.

Compatibility with registries

We check compatibility with various registries in an integration test.

Deno's official registries

Molt offers first-class support for the following registries, implementing registry-specific routines for them:

Third-party registries

Molt also works with the following third-party registries:

The following registries are not compatible with Molt:

Related projects

Molt is inspired by other projects like

Footnotes

  1. See Dependabot's versioning strategy.