forked from CakeML/regression
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
36 lines (30 loc) · 1.79 KB
/
TODO
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
TODO: Support pull requests from different repositories
The current worker will create a repository with only one remote; it needs to
do something to fetch other remotes if there are pull requests from other
remotes.
TODO: Wait after the refresh API is hit before querying for changes on GitHub.
It seems like it takes a while (probably ~1min is fine) for mergable pull
requests to show up. (Or investigate why this is happening.) Note: the API
must return an HTTP response quickly, even though the main refresh action is
to be done on a delay.
TODO: Add an option for cleaning away old directories (possibly do this by default?)?
This could be done on the basis of their age
TODO: Figure out how to re-use partially built CakeML state for new jobs
Re-use should be possible for the prefix of previously finished directories
that have not changed
TODO: Add interface to stop jobs. Rethink job categorisation.
Should the job page have a link for cancelling that job?
If so, how would workers know to do so? Polling?
Currently the interface, if you control a worker, is:
CTRL-C to stop building, then manually hit the /api/stop/n URL to move it
to Stopped, then if desired call the worker with --abort to move it to
Aborted.
Should the worker have a --stop command? Or --fail/--succeed?
TODO: Make server stop jobs that have been running too long
This could be done as part of the refresh action.
TODO: Replace calls to the OS shell with SML Basis functionality
In worker.sml there is a call to OS.Process.system that passes quite a lot of
work off to the shell: setting environment variables, executing a subprocess,
and redirecting standard streams. This could all be implemented in the SML
Basis, in particular using Posix structure, instead. Doing so might be more
reliable?