-
Notifications
You must be signed in to change notification settings - Fork 23
/
Opportunities.html
195 lines (182 loc) · 9 KB
/
Opportunities.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Opportunites — sbt Documentation</title>
<link rel="stylesheet" href="../_static/style.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/issuetracker.css" type="text/css" />
<link rel="stylesheet" href="../_static/base.css" type="text/css" />
<link rel="stylesheet" href="../_static/docs.css" type="text/css" />
<link rel="stylesheet" href="../_static/syntax.css" type="text/css" />
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Exo:300,400,600,700" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.13.0-SNAPSHOT',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="sbt Documentation" href="../index.html" />
<link rel="up" title="Community" href="index.html" />
<link rel="next" title="Extending sbt" href="../Extending/index.html" />
<link rel="prev" title="Changes" href="Changes.html" />
</head>
<body>
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<ul class="nav">
<li><a href="../home.html">Home</a></li>
<li><a href="../index.html">Documentation</a></li>
<li><a href="../Getting-Started/Setup.html">Download</a></li>
<li><a href="http://groups.google.com/group/simple-build-tool">Mailing List</a></li>
<li><a href="http://github.com/harrah/xsbt">Project</a></li>
</ul>
</div>
</div>
</div>
<div class="main">
<div class="container">
<div class="page-title">Opportunites</div>
</div>
<div class="main-container">
<div class="container">
<div class="row">
<div class="span12">
<ul class="breadcrumb">
<li>
<span class="divider">|</span> <a href="../Extending/index.html">Extending sbt</a> <span class="divider">»</span>
</li>
<li>
<span class="divider">></span><a href="index.html">Community</a>
</li>
<li>
<a href="../index.html">Contents</a>
</li>
<li>
<span class="divider">«</span> <a href="Changes.html">Changes</a> <span class="divider">|</span>
</li>
<li>
Version 0.13.0-SNAPSHOT
</li>
</ul>
</div>
</div>
<div class="row">
<div class="span9">
<div class="section" id="opportunites">
<h1>Opportunites<a class="headerlink" href="#opportunites" title="Permalink to this headline">¶</a></h1>
<p>Below is a running list of potential areas of contribution. This list
may become out of date quickly, so you may want to check on the mailing
list if you are interested in a specific topic.</p>
<ol class="arabic simple">
<li>There are plenty of possible visualization and analysis
opportunities.<ul>
<li>'compile' produces an Analysis of the source code containing<ul>
<li>Source dependencies</li>
<li>Inter-project source dependencies</li>
<li>Binary dependencies (jars + class files)</li>
<li>data structure representing the
<a class="reference external" href="https://github.com/harrah/xsbt/tree/0.13/interface">API</a> of
the source code There is some code already for generating dot
files that isn't hooked up, but graphing dependencies and
inheritance relationships is a general area of work.</li>
</ul>
</li>
<li>'update' produces an <a class="reference internal" href="../Detailed-Topics/Update-Report.html"><em>Update Report</em></a> mapping
<tt class="docutils literal"><span class="pre">Configuration/ModuleID/Artifact</span></tt> to the retrieved <tt class="docutils literal"><span class="pre">File</span></tt></li>
<li>Ivy produces more detailed XML reports on dependencies. These come
with an XSL stylesheet to view them, but this does not scale to
large numbers of dependencies. Working on this is pretty
straightforward: the XML files are created in <tt class="docutils literal"><span class="pre">~/.ivy2</span></tt> and the
<tt class="docutils literal"><span class="pre">.xsl</span></tt> and <tt class="docutils literal"><span class="pre">.css</span></tt> are there as well, so you don't even need to
work with sbt. Other approaches described in <a class="reference external" href="https://groups.google.com/group/simple-build-tool/browse_thread/thread/7761f8b2ce51f02c/129064ea836c9baf">the email
thread</a></li>
<li>Tasks are a combination of static and dynamic graphs and it would
be useful to view the graph of a run</li>
<li>Settings are a static graph and there is code to generate the dot
files, but isn't hooked up anywhere.</li>
</ul>
</li>
<li>There is support for dependencies on external projects, like on
GitHub. To be more useful, this should support being able to update
the dependencies. It is also easy to extend this to other ways of
retrieving projects. Support for svn and hg was a recent
contribution, for example.</li>
<li>Dependency management is a general area. Working on Apache Ivy itself
is another way to help. For example, I'm pretty sure Ivy is
fundamentally single threaded. Either a) it's not and you can fix sbt
to take advantage of this or b) make Ivy multi-threaded and faster at
resolving dependencies.</li>
<li>If you like parsers, sbt commands and input tasks are written using
custom parser combinators that provide tab completion and error
handling. Among other things, the efficiency could be improved.</li>
<li>The javap task hasn't been reintegrated</li>
<li>Implement enhanced 0.11-style warn/debug/info/error/trace commands.
Currently, you set it like any other setting:</li>
</ol>
<div class="highlight-console"><div class="highlight"><pre><span class="go"> set logLevel := Level.Warn</span>
<span class="go">or</span>
<span class="go"> set logLevel in Test := Level.Warn</span>
</pre></div>
</div>
<p>You could make commands that wrap this, like:</p>
<div class="highlight-console"><div class="highlight"><pre><span class="go">warn test:run</span>
</pre></div>
</div>
<p>Also, trace is currently an integer, but should really be an abstract
data type. 7. There is more aggressive incremental compilation in sbt
0.12. I expect it to be more difficult to reproduce bugs. It would be
helpful to have a mode that generates a diff between successive
compilations and records the options passed to scalac. This could be
replayed or inspected to try to find the cause.</p>
<div class="section" id="documentation">
<h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2>
<ol class="arabic simple">
<li>There's a lot to do with this documentation. If you check it out from
git, there's a directory called Dormant with some content that needs
going through.</li>
<li>the <a class="reference internal" href="../index.html"><em>main</em></a> page mentions external project references (e.g. to a git
repo) but doesn't have anything to link to that explains how to use
those.</li>
<li>the <a class="reference internal" href="../Dormant/Configurations.html"><em>Configurations</em></a> page is missing a list of the built-in
configurations and the purpose of each.</li>
<li>grep the documentation's git checkout for "Wiki Maintenance Note" and work on
some of those</li>
<li>API docs are much needed.</li>
<li>Find useful answers or types/methods/values in the other docs, and
pull references to them up into <a class="reference internal" href="../faq.html"><em>Frequently Asked Questions</em></a> or <a class="reference internal" href="../Name-Index.html"><em>Index</em></a> so people can
find the docs. In general the <a class="reference internal" href="../faq.html"><em>Frequently Asked Questions</em></a> should feel a bit more like a
bunch of pointers into the regular docs, rather than an alternative
to the docs.</li>
<li>A lot of the pages could probably have better names, and/or little
2-4 word blurbs to the right of them in the sidebar.</li>
</ol>
</div>
</div>
</div>
<div class="span3"><p class="contents-title">Contents</p>
<div id="scroller-anchor">
<div id="scroller">
<div id="toc"><ul>
<li><a class="reference internal" href="#">Opportunites</a><ul>
<li><a class="reference internal" href="#documentation">Documentation</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div></div>
</div>
</div>
</div>
</div>
</body>
</html>