@@ -84,32 +84,32 @@ $ git clone http://josh/central.git:workspace=workspaces/project1.git
84
84
85
85
With everything stored in one repo, CI/CD systems only need to look into one source for each particular
86
86
deliverable.
87
- However in traditional monorepo environments dependency mangement is handled by the build system.
87
+ However, in traditional monorepo environments, dependency management is handled by the build system.
88
88
Build systems are usually tailored to specific languages and need their input already checked
89
89
out on the filesystem.
90
90
So the question:
91
91
92
- > "What deliverables are affected by a given commit and need to be rebuild ?"
92
+ > "What deliverables are affected by a given commit and need to be rebuilt ?"
93
93
94
94
cannot be answered without cloning the entire repository and understanding how the languages
95
95
used handle dependencies.
96
96
97
- In particular when using C familiy languages, hidden dependencies on header files are easy to miss.
98
- For this reason limiting the visibility of files to the compiler by sandboxing is pretty much a requirement
97
+ In particular, when using C family languages, hidden dependencies on header files are easy to miss.
98
+ For this reason, limiting the visibility of files to the compiler by sandboxing is pretty much a requirement
99
99
for reproducible builds.
100
100
101
- With Josh, each deliverable gets it's own virtual git repository with dependencies declared in the ` workspace.josh `
101
+ With Josh, each deliverable gets its own virtual git repository with dependencies declared in the ` workspace.josh `
102
102
file. This means answering the above question becomes as simple as comparing commit ids.
103
- Furthermore due to the tree filtering each build is guaranteed to be perfectly sandboxed
103
+ Furthermore, due to the tree filtering, each build is guaranteed to be perfectly sandboxed
104
104
and only sees those parts of the monorepo that have actually been mapped.
105
105
106
- This also means the deliverables to be re-build can be determined without cloning any repos like
106
+ This also means the deliverables to be re-built can be determined without cloning any repos like
107
107
typically necessary with normal build tools.
108
108
109
109
### GraphQL API
110
110
111
111
It is often desireable to access content stored in git without requiring a clone of the repository.
112
- This is usefull for CI/CD systems or web frontends such as dashboards.
112
+ This is useful for CI/CD systems or web frontends, such as dashboards.
113
113
114
114
Josh exposes a GraphQL API for that purpose. For example, it can be used to find all workspaces currently
115
115
present in the tree:
0 commit comments