You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: rfcs/0017-incremental-build.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -161,34 +161,38 @@ For each *source* file of the project, this object maps the logical path to the
161
161
162
162
#### Cache directory structure
163
163
164
-
The directory structure is flat and efficient. A global `cas/` directory stores all unique file contents from all builds, while project-specific directories contain only their lightweight metadata.
164
+
The directory structure is flat and efficient. A global `cas` directory stores all unique file contents from all builds, while project-specific directories contain only their lightweight metadata.
165
165
166
166
```
167
-
.ui5-cache
167
+
~/.ui5/buildCache/
168
168
├── cas/ <-- Global Content-Addressable Store (shared across all projects) - actual representation might differ
169
169
│ ├── c1c77edc5c689a471b12fe8ba79c51d1 (Content of one file)
170
170
│ ├── d41d8cd98f00b204e9899998ecf8427e (Content of another file)
A new `buildCache` directory shall be added to the ~/.ui5/ directory. The location of this directory can be configured using the [`UI5_DATA_DIR` environment variable](https://ui5.github.io/cli/stable/pages/Troubleshooting/#environment-variable-ui5_data_dir).
182
+
181
183
The `cas` directory contains files named by their SHA256 content hash. Each file contains the raw content of a resource produced during a build. Ideally a library like [`cacache`](#cacache) should be used to manage the content-addressable store.
182
184
183
-
The `manifests` directory contains one build manifest file per project build cache. The filename is derived from the project's namespace, version and cache key.
185
+
The `buildManifests` directory contains one build manifest file per project build cache. The filename is derived from the project's namespace, version and cache key.
184
186
185
187

186
188
187
189
#### cacache
188
190
189
191
The [`cacache`](https://www.npmjs.com/package/cacache) library is a well-established content-addressable cache implementation used by npm itself. It provides efficient storage and retrieval of file contents based on their content hash, along with built-in mechanisms for cache integrity verification and garbage collection.
190
192
191
-
It allows to store and retrieve files using a unique key.
193
+
It allows to store and retrieve files using a unique key. Files can also be retrieved directly by their hash.
194
+
195
+
To be decided: What to use as key? Project name and version, project path, etc.?
0 commit comments