@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.
- package/README.md +28 -140
- package/datamitsu +0 -0
- 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
|
-
>
|
|
5
|
+
> Your toolchain deserves a home.
|
|
4
6
|
|
|
5
7
|
[](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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
15
|
+
## Quick Start
|
|
75
16
|
|
|
76
17
|
```bash
|
|
77
|
-
#
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
# Clear cache for all projects
|
|
81
|
-
datamitsu cache clear --all
|
|
18
|
+
# Build from source
|
|
19
|
+
go build
|
|
82
20
|
|
|
83
|
-
#
|
|
84
|
-
datamitsu
|
|
21
|
+
# Initialize tools
|
|
22
|
+
./datamitsu init
|
|
85
23
|
|
|
86
|
-
#
|
|
87
|
-
datamitsu
|
|
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
|
-
|
|
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
|
-
|
|
30
|
+
Full documentation is available at [https://datamitsu.com](https://datamitsu.com) or locally in [`website/docs/`](website/docs/).
|
|
136
31
|
|
|
137
|
-
|
|
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
|
-
|
|
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
|
-
|
|
38
|
+
**Reference:**
|
|
146
39
|
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
+
Contributions are welcome! See the [Contributing Guide](website/docs/contributing/index.md) to get started.
|
|
160
47
|
|
|
161
|
-
|
|
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
|
-
##
|
|
51
|
+
## License
|
|
164
52
|
|
|
165
|
-
|
|
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-
|
|
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/
|
|
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/
|
|
13
|
+
"url": "https://github.com/datamitsu/datamitsu/issues"
|
|
14
14
|
},
|
|
15
|
-
"homepage": "https://github.com/
|
|
15
|
+
"homepage": "https://github.com/datamitsu/datamitsu#readme",
|
|
16
16
|
"os": ["darwin"],
|
|
17
17
|
"cpu": ["arm64"]
|
|
18
18
|
}
|