forked from JonJagger/cyber-dojo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
issues.txt
236 lines (230 loc) · 9.92 KB
/
issues.txt
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
ACTUAL-BUGS
-----------
When you're in a diff-page and the file has multiple red/green sections
then clicking on the filename should auto-scroll to the next red/green
section. It doesn't. Or rather, it seems inconsistent.
-----------
If you specify ?locale=fr at the end of the dashboard URL
it changes the animals names but then resets to english
when the auto-refresh happens.
-----------
FUTURE-MAJOR
------------
Ensuring cyber-dojo.sh cleans up any processes is messy. Instead of
trying to find children by walking pid/ppid hierarchy it would be
better to use pgid - process group. See lib/Files.rb
Note, if you're running under apache then this never seems to be
a problem - does apache auto clean processes?
-----
Sandboxes could be retained across run-test submissions.
This would allow, for example, incremental makes.
I've prepared this by making the sandboxes/ subfolder be simply the
dojo id concatenated with the animal name. Of course the sub-folder
would not be deleted.
This will require careful file control to ensure if a file has
been deleted in the browser then it is also deleted in the sandbox.
And if a file has not had its contents changed then it is not recreated
in the sandbox.
This will also leave them in place available for debugging if problems arise.
This would mean I would need to move the sandboxes
folder onto the large partition on cyber-dojo.com
I would also need some kind of harvester that reclaimed old sandboxes.
Eg if sandboxes/X exists but katas/X does not (eg because it has been pruned)
then I can delete sandboxes/X
-----
Pressing the test button in the browser sometimes creates a new
traffic-light but the output you get back gets stuck and does
not reflect edits made to the files. A work-around when this happens
is to reopen the URL in a new tab.
-----
I need an automated process that moves dojos that have
a minimum number of traffic lights and are at least N days
old onto a separate server (or at the very minimum
into a separate folder on the same server.) Or simply deletes them.
But ideally, one that has a list of id's not to delete (eg the
refactoring dojo's ids). This is not currently a problem as I've
moved the katas/ folder on cyber-dojo.com to a different partition
but that simply delays the problem. I've run out of inodes twice
before.
-----
The Diff view doesn't work properly in IE8.
-----
Do I need to do io_locks? Suppose there is a conflict. Could this
simply mean the git commit fails with a merge conflict? I think
not, since at the moment the avatar/sandbox folder is deleted
before each commit. But if a merge conflict could be created it
would open up the possibility of having multiple players all
playing as the same avatar. There could also be conflicts in the
sandbox where the tests are run. Perhaps that is the place to
check for conflicts?
-----
On my Mac (10.7.4) using Firefox (18.0.1) using a local server
(http://localhost:3000) when you load a file and move the cursor
position using the mouse-pad then the texarea becomes readonly
(and the mac beeps at me)????
Repeatable on the cyber-dojo live server in Firefox.
Doesn't happen on Chrome on my Mac.
Doesn't happen on Safari on my Mac.
Doesn't happen on Opera on my Mac.
Doesn't happen on Jakub's mac using Firefox.
Seems to be a problem local to me.
FUTURE-MINOR
------------
It would be simpler if output and instructions were not mixed
into kata.language and avatar.setup did an explicit
save(kata.exercise.instructions)
-----
kata.dir should probably return a dir with a / catenated to the end.
This would simplify lines 10,26,74 (and probably more in exercises and languages)
-----
avatar.dir should probably return a dir with a / catenated to the end.
This would simplify line 80
-----
rename fork to branch?
-----
Edit help dialog needs to show fork icon. Or the word fork now that the
overly subtle fork-icon has been dropped.
-----
Opening file when you start is the output file and it says something like
"please wait... initial code and tests have been submitted to the server..."
-----
The starting test file should explicitly say that the initial code
is always the same for all exercises and just gives a very simple
example of how to write a test. It should also explain that the red
amber green status relies on the test format used so that should not
be changed. Again be explicit. Eg in the C++ tests using assert it
should say "the red-amber-green status determination relies on the
output being the output from assert. So don't change that. Keep using
assert.
-----
Suppose I record the ip-address of each animal in a dojo and have a
kata/edit heartbeat that maintains the ip-address timestamp.
This will allow me to only offer animals to resume-from when those
animals are not themselves already being used.
However, this raises the possibility of the following scenario.
o) laptop1 starts as hippo
o) laptop1 suspends (eg folds laptop screen down)
o) laptop2 resumes as hippo (its ip-address now the hippo's)
o) laptop1 unsuspends, and its heartbeat now detects that
it is no longer the hippo.
So not sure I need this.
Hitting fork button brings up dialog box (which will ultimately have
ability to move files between visible and hidden sections)
-----
in the diff view, long lines no longer get truncated but the scrolled
into view portion has lost its red/green colouring.
Also when scrolling, the line numbers
are scrolled out of view. Ideally, the line numbers would remain
in place like they do in the main edit-test page.
-----
put a readme.txt file into the kata's root folder explaining
how to do diffs on the unzipped zip.
-----
add help button (screen cast?) for diff page
-----
add help button (screen cast?) for dashboard page
-----
commonality in dialogs with only ok button? with only cancel button?
-----
make new-file dialog ask for inital name?
-----
isolate make new-file and rename-file dialogs and put into dedicated
dialog js files.
-----
java-cucumber fails test/installation_tests.rb
-----
add tip to dashboard that setting secs_per_column to 999999
collapses the columns into 1 if you want to see a non-spaced
timeline of traffic lights.
-----
The Click-to-revert tip could appear when the current-traffic-light-count
disappears (and disappear when it reappears). This would also mean
you don't get the 'Click to revert' tip when there is only one
traffic-light (which is kind of pointless).
-----
increments should be renamed to traffic_lights. And traffic_lights
should become a model.
-----
Now that the traffic-lights offer reverting, it makes sense to allow
you to revert from any traffic-light. Yet only enough to fit on the
top row are shown. Perhaps the top row can hold all the
traffic-lights but is auto-scrolled to the far right after the tests
have finished. And they could be scrollable, even though there is no
scrollbar. Or maybe simply offer a < > navigation in the revert dialog.
-----
Offer the fork button on the main edit-test page?
-----
I'm not seeing horizontal or vertical scrollbars
for long lines in Safari
-----
traffic-light tool tips need some tlc
in particular reverted traffic-lights should mention the
traffic-light number they themselves reverted to.
And they don't need to mention 'traffic-lights' - you can
see they are traffic lights. Maybe say something like
'deer has hit test 34 times and is currently at green'
-----
the dashboard traps carriage-returns on the secs_per_columns and
maximum_columns text fields and makes a post call. It could
parse the text field to verify it is an integer first before
posting (like the diff page does for the was_tag and now_tag
text fields)
-----
I'd like the rightmost column of avatar images on the dashboard
to not scroll off screen. But at the same time I'd also like
the time-moving traffic-lights to update (to the avatar image's
left) every 10 seconds.
-----
allow initial manifest.rb setup of initial exercise/language to
contain subfolders. Do I need this? Could it already be done
with links?
-----
once a dojo has been created it should be independent of the
initial language filesets it was created from.
For example, you should be able to rename a languages sub-folder
and a dojo created from it before the rename should be ok.
-----
sort filenames so filenames with no . in them are grouped together
and filenames with one or more . in them are grouped together?
sort filenames so files with the same extension are grouped together?
-----
diff-filename-click cycles to the next diff but it loses the current red/green
toggling states
-----
in diff page when you go back to a file with diff it should not cycle to next
diff change it should only cycle to next diff change if you click the filename
when the filename is already selected.
-----
in firefox clicking on the ova hyperlink in the sources dialog doesn't start a download
-----
In lib/CodeOutputParser.rb...
if a player creates a cyber-dojo.sh file which runs two or more
test files then it's possible that the output will contain the
strings denoting red and green traffic-lights. Because of this the
regex's should test for a red traffic-light first, and for
a green traffic-light second.
Also CodeOutputParser.rb with its function parse() should be
renamed based on what it does from the outside rather than
from the inside - namely it simply determines the traffic
light colour. Maybe something like
module TrafficLight
def self.colour(unit_test_framework, output)
...
end
end
-----
the various uses of eval in the ruby code could do with being replaced with
a json parse.
-----
The intention with the installation tests is that they are used to determine
what languages are installed and to only offer those languages (at the create
page). But at the moment all the languages are being offered.
-----
Getting Objective-C compiling on Ubuntu
http://www.gnustep.org/
-----
Install scala on Ubuntu
http://wiki.summercode.com/how_to_install_scala_on_ubuntu_scala_2_8_1_and_ubuntu_10_04
http://www.scala-lang.org/downloads
http://blog.cingusoft.org/install-scala-on-mac-os-x
-----