@datamitsu/datamitsu-darwin-arm64 0.0.3-alpha-13 → 0.0.3-alpha-15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +28 -140
  2. package/datamitsu +0 -0
  3. package/package.json +4 -4
package/README.md CHANGED
@@ -1,165 +1,53 @@
1
+ <!-- This file is intentionally minimal. Full documentation lives in website/docs/ -->
2
+
1
3
  # datamitsu
2
4
 
3
- > Opinionated configuration management, extensible by design
5
+ > Your toolchain deserves a home.
4
6
 
5
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
8
 
7
9
  > **Alpha**: This project is in alpha. The configuration API is not yet stabilized and may change between versions.
8
10
 
9
- ## License
10
-
11
- MIT - See [LICENSE](LICENSE) for details
12
-
13
- ## Contributing
14
-
15
- This project is in early development. Contribution guidelines will be established as the project matures.
16
-
17
- ## Configuration Loading
18
-
19
- datamitsu loads configuration in layers, each receiving the previous layer's result as input:
20
-
21
- ```text
22
- default (embedded config.js)
23
-
24
- --before-config flags (for library wrappers — runs before project config)
25
-
26
- auto-discovered datamitsu.config.js, datamitsu.config.mjs or datamitsu.config.ts at git root
27
-
28
- --config flags (for CI overrides — runs after project config)
29
-
30
- final merged Config
31
- ```
32
-
33
- Each layer calls `getConfig(prevConfig)` and returns a new config that extends or overrides the previous one.
34
-
35
- ### Remote configs (inheritance)
36
-
37
- Any config file can declare upstream configs it inherits from:
38
-
39
- ```ts
40
- export function getRemoteConfigs() {
41
- return [{ url: "https://example.com/shared-base.ts", hash: "sha256:abcdef..." }];
42
- }
43
- ```
44
-
45
- The `hash` field (SHA-256) is **required** — datamitsu will refuse to download any remote config without it. Remote configs are resolved **before** `getConfig` is called on the current file — they are parents, not children. Remote configs can themselves have `getRemoteConfigs`, so the resolution is recursive depth-first.
46
-
47
- ### Library/wrapper pattern
48
-
49
- A library that wraps datamitsu passes its config via `--before-config`. The project's auto-discovered `datamitsu.config.ts` naturally overrides it:
50
-
51
- ```text
52
- library-base.ts → project/datamitsu.config.ts → final Config
53
- ```
54
-
55
- ## Global Cache Structure
56
-
57
- datamitsu stores all cached data under `~/.cache/datamitsu/` (or `$XDG_CACHE_HOME/datamitsu/`):
58
-
59
- ```text
60
- ~/.cache/datamitsu/
61
- ├── .bin/ # Downloaded binaries
62
- ├── .runtimes/ # Runtime binaries (UV, FNM, JVM)
63
- ├── .apps/ # Runtime-managed applications
64
- ├── .pnpm-store/ # Shared PNPM content-addressable store
65
- └── projects/ # Per-project caches
66
- └── {blake2b(gitRoot)}/ # Project directory (keyed by BLAKE2b hash)
67
- ├── toolstate.msgpack # Lint/fix results cache
68
- └── cache/ # Tool-specific caches
69
- └── ... # e.g., tsbuildinfo for tsc
70
- ```
11
+ Every stack comes with a configuration tax. You pay it on the first project, then the second, then every time a tool updates—and it breaks differently in each repo. **datamitsu exists so you pay this tax only once.**
71
12
 
72
- Each project gets its own directory under `projects/`, keyed by a BLAKE2b-256 hash of the git root path. This directory contains both the lint/fix results cache and a `cache/` subdirectory for tool-specific caches.
13
+ A platform for building reproducible, security-first development tool distributions. It downloads, verifies (SHA-256), and manages binaries and runtime-managed tools across platforms, using JavaScript-powered configuration with inheritance and chaining. Install one package, get everything configured.
73
14
 
74
- ## Cache Management
15
+ ## Quick Start
75
16
 
76
17
  ```bash
77
- # Clear cache for the current project (lint/fix results + tool caches)
78
- datamitsu cache clear
79
-
80
- # Clear cache for all projects
81
- datamitsu cache clear --all
18
+ # Build from source
19
+ go build
82
20
 
83
- # Preview what would be deleted (dry-run)
84
- datamitsu cache clear --dry-run
21
+ # Initialize tools
22
+ ./datamitsu init
85
23
 
86
- # Show the global cache directory path
87
- datamitsu cache path
88
-
89
- # Show the current project's cache directory path
90
- datamitsu cache path project
24
+ # Run checks
25
+ ./datamitsu check
91
26
  ```
92
27
 
93
- By default, `cache clear` clears only the current project's cache, which includes:
94
-
95
- - Lint/fix results (`projects/{hash}/toolstate.msgpack`)
96
- - Tool-specific caches (`projects/{hash}/cache/`)
97
-
98
- Use `--all` to clear caches for all projects. Use `--dry-run` to preview what would be deleted without actually deleting anything.
99
-
100
- ## Template Placeholders
101
-
102
- Tool arguments and paths in configurations support template placeholders that are resolved at execution time:
103
-
104
- | Placeholder | Resolves To | Example |
105
- | ------------- | --------------------------------------- | --------------------------- |
106
- | `{cwd}` | Per-project working directory | `"{cwd}/src"` |
107
- | `{root}` | Git repository root | `"{root}/.config"` |
108
- | `{toolCache}` | Per-project, per-tool cache directory | `"{toolCache}/tsbuildinfo"` |
109
- | `{file}` | Single file path (per-file scope tools) | `"{file}"` |
110
- | `{files}` | Space-separated file list | `"{files}"` |
111
-
112
- ### Using Project Cache in Configurations
113
-
114
- Tools that maintain their own cache (e.g., `tsc` with `--incremental`) can use the `{toolCache}` placeholder to store cache files in the correct location:
115
-
116
- ```ts
117
- tsc: {
118
- name: "Tsc",
119
- operations: {
120
- lint: {
121
- args: [
122
- "--noEmit",
123
- "--incremental",
124
- "--tsBuildInfoFile",
125
- "{toolCache}/tsbuildinfo",
126
- ],
127
- app: "tsc",
128
- globs: ["**/*.ts", "**/*.tsx"],
129
- scope: "per-project",
130
- },
131
- },
132
- },
133
- ```
28
+ ## Documentation
134
29
 
135
- This ensures that:
30
+ Full documentation is available at [https://datamitsu.com](https://datamitsu.com) or locally in [`website/docs/`](website/docs/).
136
31
 
137
- 1. Tool caches are isolated per project and per tool (`~/.cache/datamitsu/projects/{hash}/cache/{projectPath}/{toolName}/`)
138
- 2. In monorepos, each project gets its own cache namespace (e.g., `cache/packages/frontend/tsc/`, `cache/packages/backend/tsc/`)
139
- 3. Repository-scope tools use `cache/{toolName}/` (no project path component)
140
- 4. `cache clear` correctly cleans up tool caches alongside lint/fix results
141
- 5. Tool caches don't pollute `node_modules` or other project directories
32
+ **Getting Started:**
142
33
 
143
- ### Facts API vs Templates
34
+ - [Installation](website/docs/getting-started/installation.md)
35
+ - [Quick Start Guide](website/docs/getting-started/quick-start.md)
36
+ - [About datamitsu](website/docs/about.md) — Why datamitsu exists and what makes it unique
144
37
 
145
- The `facts()` function provides platform and environment information for conditional logic in configs:
38
+ **Reference:**
146
39
 
147
- - `facts().os`, `facts().arch` - Platform detection
148
- - `facts().isInGitRepo`, `facts().isMonorepo` - Git state
149
- - `facts().packageName`, `facts().binaryCommand`, `facts().binaryPath` - Binary info
150
- - `facts().env` - Environment variables
40
+ - [CLI Commands](website/docs/reference/cli-commands.md)
41
+ - [Configuration API](website/docs/reference/configuration-api.md)
42
+ - [Comparison with mise/moon/Nx](website/docs/reference/comparison.md)
151
43
 
152
- All path references use template placeholders instead. The following facts fields have been removed (breaking change):
153
-
154
- - `facts().cwd` - use `{cwd}` template
155
- - `facts().gitRoot` - use `{root}` template
156
- - `facts().projectRoot` - use `{root}` template
157
- - `facts().projectCachePath` - use `{toolCache}` template
44
+ ## Contributing
158
45
 
159
- ## Examples
46
+ Contributions are welcome! See the [Contributing Guide](website/docs/contributing/index.md) to get started.
160
47
 
161
- Usage examples for runtime-managed apps (multi-version isolation, UV isolation, PNPM plugins) are in [examples/](examples/).
48
+ - [Brand Guidelines](website/docs/contributing/brand-guidelines.md) — Voice, tone, and style
49
+ - [Creating Wrapper Packages](website/docs/contributing/creating-wrappers.md) — Build config distributions
162
50
 
163
- ## Research & References
51
+ ## License
164
52
 
165
- For research notes and tool references, see [docs/research.md](docs/research.md).
53
+ MIT
package/datamitsu CHANGED
Binary file
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@datamitsu/datamitsu-darwin-arm64",
3
- "version": "0.0.3-alpha-13",
3
+ "version": "0.0.3-alpha-15",
4
4
  "description": "The macOS ARM64 binary for datamitsu, configuration management and binary distribution tool",
5
5
  "repository": {
6
6
  "type": "git",
7
- "url": "git+https://github.com/shibanet0/s0conf.git"
7
+ "url": "git+https://github.com/datamitsu/datamitsu.git"
8
8
  },
9
9
  "keywords": ["datamitsu", "config", "binary", "tools", "linter"],
10
10
  "author": "Alexander Svinarev <shibanet0@gmail.com> (shibanet0.com)",
11
11
  "license": "MIT",
12
12
  "bugs": {
13
- "url": "https://github.com/shibanet0/s0conf/issues"
13
+ "url": "https://github.com/datamitsu/datamitsu/issues"
14
14
  },
15
- "homepage": "https://github.com/shibanet0/s0conf#readme",
15
+ "homepage": "https://github.com/datamitsu/datamitsu#readme",
16
16
  "os": ["darwin"],
17
17
  "cpu": ["arm64"]
18
18
  }