Skip to content

Commit f9fe024

Browse files
committed
docs(documentation): Incorporate feedback
1 parent 58f05a1 commit f9fe024

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

rfcs/0017-incremental-build.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,34 +161,38 @@ For each *source* file of the project, this object maps the logical path to the
161161

162162
#### Cache directory structure
163163

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.
165165

166166
```
167-
.ui5-cache
167+
~/.ui5/buildCache/
168168
├── cas/ <-- Global Content-Addressable Store (shared across all projects) - actual representation might differ
169169
│ ├── c1c77edc5c689a471b12fe8ba79c51d1 (Content of one file)
170170
│ ├── d41d8cd98f00b204e9899998ecf8427e (Content of another file)
171171
│ └── ... (all other unique file contents)
172172
173-
└── manifests/
173+
└── buildManifests/
174174
├── @ui5/
175175
│ └── sample-app-0.5.0-bb3a3262d893fcb9adf16bff63f.json
176176
└── @openui5/
177177
├── sap.m-1.142.0-xy3a3262d893fcb9adf16bff63f.json.json
178178
└── sap.ui.core-1.142.0-fh3a3262d893fcb3adf16bff63f.json
179179
```
180180

181+
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+
181183
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.
182184

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.
184186

185187
![Diagram illustrating the creation of a build cache](./resources/0017-incremental-build/Create_Cache.png)
186188

187189
#### cacache
188190

189191
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.
190192

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.?
192196

193197

194198
### Cache Import

0 commit comments

Comments
 (0)