% if(n_total > 0) { %> <% if(n_used > 0) { %>
In total, <%=pkg$package%> has <%=n_total%> upstream package<%=ifelse(n_total > 1, 's', '')%>. Only <%=n_used%> upstream packages with heaviness on <%=pkg$package%> larger than 5 are listed in the following table. Note all 14 base packages (base, compiler, datasets, graphics, grDevices, grid, methods, parallel, splines, stats, stats4, tcltk, tools and utils) are removed from this table.
Dependency path: the shortest path from upstream package to <%=pkg$package%> in the global dependency graph. The form of A→
kB means package A contribute a direct heaviness of k on package B.
Heaviness from upstream on <%=pkg$package%>: number of required packages that can be reduced if moving upstream package to Suggests
of its child package in the dependency path. Similar as heaviness to downstream packages, denote $n_{1k}$ as the number of strong dependencies of <%=pkg$package%>. Since the upstream package can affect <%=pkg$package%> in an indirect manner, we recalculate the global dependency relations for all packages after moving the corresponding upstream package to all its child packages' Suggests
. Then we denote $n_{2k}$
as the number of strong dependencies of <%=pkg$package%> in the modified dependency graph. The heaviness from upstream package is calculated as $n_{1k} - n_{2k}$.
Dependency paths in the table are represented as the following graph with <%=length(unique(c(nt[, 1], nt[, 2])))%> nodes and <%=nrow(nt)%> edges. Reset graph | Horizontal layout
<% } else { %>In total there are <%=n_total%> upstream dependencied, but no upstream package has heaviness larger than 5 on '<%=pkg$package%>'.
<% } %> <% } else { %>No upstream dependency (not including base packages) found.
<% } %>