Skip to content

Commit 6121740

Browse files
authored
Merge branch 'main' into add-troubleshooting-document
2 parents d46c50e + 9f43687 commit 6121740

File tree

11 files changed

+328
-35
lines changed

11 files changed

+328
-35
lines changed

Gemfile.lock

+4-1
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ GEM
213213
gemoji (>= 3, < 5)
214214
html-pipeline (~> 2.2)
215215
jekyll (>= 3.0, < 5.0)
216-
json (2.7.1)
216+
json (2.7.2)
217217
kramdown (2.4.0)
218218
rexml
219219
kramdown-parser-gfm (1.1.0)
@@ -231,6 +231,8 @@ GEM
231231
mutex_m (0.2.0)
232232
net-http (0.4.1)
233233
uri
234+
nokogiri (1.16.3-arm64-darwin)
235+
racc (~> 1.4)
234236
nokogiri (1.16.3-x86_64-linux)
235237
racc (~> 1.4)
236238
octokit (4.25.1)
@@ -274,6 +276,7 @@ GEM
274276
yell (2.2.2)
275277

276278
PLATFORMS
279+
arm64-darwin-22
277280
x86_64-linux
278281

279282
DEPENDENCIES

_docs/developer/getting_started/vm_install_using_vagrant.md

+12-13
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ If you using an Intel-based Mac, you will follow the instructions below._
9393

9494
7. Enter your **BIOS** (generally by pressing Del, F12, or other keys while booting). If you are not able to find the key combo needed to enter your BIOS, refer to [this guide](https://www.tomshardware.com/reviews/bios-keys-to-access-your-firmware,5732.html).
9595

96-
8. Locate **Virtualization**, and enable it. (Note: If you cannot find the option to enable virtualization, [search Google](http://tinyurl.com/enable-virtualization) for a tutorial on enabling it with your motherboard.)
96+
8. Locate **Virtualization**, and enable it. (Note: Some motherboards may call it SVM, AMD-V, VT-x/Vanderpool. If you cannot find the option to enable virtualization, [search Google](http://tinyurl.com/enable-virtualization) for a tutorial on enabling it with your motherboard.)
9797

9898
9. Reboot your computer.
9999

@@ -102,7 +102,7 @@ If you using an Intel-based Mac, you will follow the instructions below._
102102

103103
2. Navigate the **BIOS Settings**.
104104

105-
3. Locate **Virtualization** and enable it.
105+
3. Locate **Virtualization** and enable it. (Some motherboards may call it SVM, AMD-V, VT-x/Vanderpool)
106106

107107
4. Be sure to choose **Hardware Virtualization** in the **System -> Acceleration** settings of the virtual machine you are using.
108108

@@ -169,17 +169,16 @@ Below are quick steps to get everything installed and running.
169169
when running vagrant up, use `vagrant up --provider=virtualbox` so it doesnt default to libvirt
170170
171171
**Common errors when running vagrant up(Fedora/RHEL)**
172-
1. Missing virtnetworkd:
173-
Enable it in your terminal by running:
174-
```
175-
sudo systemctl start virtnetworkd
176-
```
177-
2. If your vagrant ever freezes kill it with
178-
'''
179-
VBoxManage controlvm VM_NAME poweroff
180-
'''
181-
or if that doesn't work, reboot the computer and then run `vagrant destroy` before re-running `vagrant up --provider=virtualbox` again.
182-
172+
1. Missing virtnetworkd:
173+
Enable it in your terminal by running:
174+
```
175+
sudo systemctl start virtnetworkd
176+
```
177+
2. If your vagrant ever freezes kill it with
178+
```
179+
VBoxManage controlvm VM_NAME poweroff
180+
```
181+
or if that doesn't work, reboot the computer and then run `vagrant destroy` before re-running `vagrant up --provider=virtualbox` again.
183182
184183
5. Clone [the Submitty repository](https://github.com/Submitty/Submitty) to a location on
185184
your computer (the "host").

_docs/index/people.md

+23
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,29 @@ redirect_from:
1010

1111
---
1212

13+
## 2024 Spring Developers
14+
15+
![](/images/people/2024_spring.png)
16+
17+
Michael Krar,
18+
Joshua Wei,
19+
Jeffrey Cordero,
20+
Raymond Reynoso Ramirez,
21+
Ryan Varughese,
22+
Tate Whiteberg,
23+
Kush Raval,
24+
Josiah Riggins,
25+
Chris Reed,
26+
Johnny Chen,
27+
James Fitzgerald,
28+
Viane Matsibekker,
29+
Jaeseok Kang,
30+
Hanson Gu,
31+
Zheyu Deng,
32+
Junyi Wu
33+
34+
---
35+
1336
## 2023 Fall Developers
1437

1538
![](/images/people/2023_fall.png)

_docs/instructor/assignment_preparation/index.md

+48
Original file line numberDiff line numberDiff line change
@@ -249,3 +249,51 @@ you must re-run the BUILD_XXXX.sh script.
249249
logfiles for each test case. You will also find log files for the
250250
compilation, runner, and validation components of automated grading
251251
that are helpful in debugging assignment configurations.
252+
253+
254+
### Download Gradeable as JSON
255+
256+
You can download the JSON representation of your gradeable by clicking the 'Download Gradeable Json'
257+
button at the top right of the 'Edit Gradeable' screen. This JSON file can be re-uploaded into a new course
258+
to use the same parameters as the existing gradeable.
259+
260+
Below is the list of parameters downloaded. VCS and Team Gradeable are only downloaded if the gradeable is using them.
261+
```json
262+
{
263+
"title": "Example Json",
264+
"instructions_url": "",
265+
"id": "Example ID",
266+
"type": "Electronic File",
267+
"vcs": {
268+
"repository_type": "submitty-hosted",
269+
"vcs_path": "http://localhost:1511/path/to/repository",
270+
"vcs_subdirectory": "subdirectory"
271+
},
272+
"team_gradeable": {
273+
"team_size_max": 3,
274+
"inherit_from": "gradeable_id",
275+
},
276+
"bulk_upload": false,
277+
"grading_inquiry": false,
278+
"grade_inquiry_per_component_allowed": false,
279+
"ta_grading": false,
280+
"discussion_thread_id": "thread_id",
281+
"syllabus_bucket": "Homework",
282+
"autograding_config_path": "path/to/config",
283+
"dates": {
284+
"ta_view_start_date": "2024-1-10 23:59:59.00",
285+
"submission_open_date": "2024-1-10 23:59:59.00",
286+
"submission_due_date": "2024-2-10 23:59:59.00",
287+
"grade_start_date": "2024-2-10 23:59:59.00",
288+
"grade_due_date": "2024-3-10 23:59:59.00",
289+
"team_lock_date": "2024-1-10 23:59:59.00",
290+
"grade_released_date": "2024-3-10 23:59:59.00",
291+
"grade_inquiry_start_date": "2024-3-10 23:59:59.00",
292+
"grade_inquiry_due_date": "2024-3-10 23:59:59.00",
293+
"has_due_date": true,
294+
"has_release_date": true,
295+
"late_days_allowed": true,
296+
"late_days": 3
297+
}
298+
}
299+
```

_docs/instructor/assignment_preparation/upload_gradeable.md

+58-8
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,50 @@ __Other Electronic Types__
4141
```json
4242
"team_gradeable": {
4343
"team_size_max": 3,
44-
"inherit_from": "gradeable_id",
44+
"inherit_from": "gradeable_id"
4545
}
4646
```
4747
#### Grade inquiries
4848
```json
49-
"grading_inquiry": {
50-
"grade_inquiry_per_component_allowed": false,
49+
"grading_inquiries": false,
50+
"grade_inquiries_per_component": false,
51+
```
52+
### Dates
53+
All dates should be formatted as "yyyy-m-dd hh:ii:ss".
54+
55+
Four digit year, one or two digit month, two digit day, two digit hour, minute, and second.
56+
57+
* ta_view_start_date -- The date and time that the TA can view the gradeable
58+
* submission_open_date -- The date and time that submissions open
59+
* submission_due_date -- The date and time that submissions are due
60+
* grade_start_date -- The date that TAs can start grading
61+
* grade_due_date -- The date that TAs grades are due
62+
* team_lock_date -- The date that students can no longer join/change teams
63+
* grade_released_date -- The date that grades are released to students (only applicable if has_release_date is true)
64+
* grade_inquiry_start_date -- The date that grade inquiries can start to be submitted if grade inquiries are allowed
65+
* grade_inquiry_due_date -- The final day for grade inquiries if they are allowed.
66+
* has_due_date -- (true/false) If the gradeable has a due date,
67+
* has_release_date -- (true/false) If the gradeable has a grade_released_date
68+
* late_days_allowed -- (true/false) If students are allowed to use late days on the assignment
69+
* late_days -- The amount of late days students can use on the assignment
70+
```json
71+
"dates": {
72+
"ta_view_start_date": "2024-1-10 23:59:59.00",
73+
"submission_open_date": "2024-1-10 23:59:59.00",
74+
"submission_due_date": "2024-2-10 23:59:59.00",
75+
"grade_start_date": "2024-2-10 23:59:59.00",
76+
"grade_due_date": "2024-3-10 23:59:59.00",
77+
"team_lock_date": "2024-1-10 23:59:59.00",
78+
"grade_released_date": "2024-3-10 23:59:59.00",
79+
"grade_inquiry_start_date": "2024-3-10 23:59:59.00",
80+
"grade_inquiry_due_date": "2024-3-10 23:59:59.00",
81+
"has_due_date": false,
82+
"has_release_date": false,
83+
"late_days_allowed": false,
84+
"late_days": 3
5185
}
5286
```
87+
5388
#### Other
5489
* ta_grading -- If the TA will grade any/all of the assignments (Default false)
5590
* discussion_thread_id -- The thread ID if using forums (Default none)
@@ -68,15 +103,29 @@ __Other Electronic Types__
68103
},
69104
"team_gradeable": {
70105
"team_size_max": 3,
71-
"inherit_from": "gradeable_id",
106+
"inherit_from": "gradeable_id"
72107
},
73108
"bulk_upload": false,
74-
"grading_inquiry": {
75-
"grade_inquiry_per_component_allowed": false
76-
},
109+
"grading_inquiries": false,
110+
"grade_inquiry_per_component_allowed": false,
77111
"ta_grading": false,
78112
"discussion_thread_id": "thread_id",
79-
"syllabus_bucket": "Homework"
113+
"syllabus_bucket": "Homework",
114+
"dates": {
115+
"ta_view_start_date": "2024-1-10 23:59:59",
116+
"submission_open_date": "2024-1-10 23:59:59",
117+
"submission_due_date": "2024-2-10 23:59:59",
118+
"grade_start_date": "2024-2-10 23:59:59",
119+
"grade_due_date": "2024-3-10 23:59:59",
120+
"team_lock_date": "2024-1-10 23:59:59",
121+
"grade_released_date": "2024-3-10 23:59:59",
122+
"grade_inquiry_start_date": "2024-3-10 23:59:59",
123+
"grade_inquiry_due_date": "2024-3-10 23:59:59",
124+
"has_due_date": false,
125+
"has_release_date": false,
126+
"late_days_allowed": false,
127+
"late_days": 3
128+
}
80129
}
81130
```
82131
#### Sample Bulk Upload Template
@@ -111,3 +160,4 @@ __Other Electronic Types__
111160
"vcs_subdirectory": "subdirectory"
112161
},
113162
}
163+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: Custom Docker Imagegs
3+
category: Instructor > Autograding
4+
---
5+
6+
Some assignments may require specific languages, packages, libraries, etc.
7+
We can't install all of these different requirements on the base system.
8+
We offer the ability to use custom Docker images for autograding.
9+
We pull images from Dockerhub and allow you to run any command inside
10+
that container. Below are steps to make your own or edit an image:
11+
12+
1. Create a Dockerfile or fetch an existing one
13+
14+
If this is a new Dockerfile, choose a base image.
15+
We recommend you choose the same base image as your system OS (i.e. ubuntu:22.04)
16+
but you could, in theory, pick any base image you want.
17+
18+
2. Add any packages, libraries, languages, etc that you need
19+
20+
3. Build your image locally
21+
22+
Run the following in the directory containing the Dockerfile.
23+
Replace `NAME` with a tag name you would like for your Docker image.
24+
```
25+
docker build -t NAME .
26+
```
27+
28+
4. Test your image locally
29+
30+
Run the following to enter a bash shell inside your container:
31+
```
32+
docker run --rm -it NAME bash
33+
```
34+
35+
Verify that you can call any specific commands you want to on Submitty.
36+
37+
5. Push your tag to Dockerhub
38+
39+
First you need to tag your image in the proper format for Dockerhub.
40+
An example would be `submitty/autograding-default:latest`.
41+
```
42+
docker image tag NAME USERNAME/REPONAME:TAGNAME
43+
```
44+
45+
Next you need to push it to Dockerhub. If you have not logged into Docker on your CLI then run:
46+
```
47+
docker login
48+
```
49+
50+
Finally, push the image:
51+
```
52+
docker push USERNAME/REPONAME:TAGNAME
53+
```
54+
55+
_NOTE: At RPI, we maintain a [GitHub repo](https://github.com/Submitty/DockerImagesRPI)
56+
to automate this process when Dockerfiles are updated in the correct location in the repo._
57+
58+
6. Add the Docker image to Submitty via the Docker UI
59+
60+
Click [here](/instructor/autograding/docker_ui) to learn more about how to do this.
61+
62+
7. In your autograding `config.json`, specify this new image.
63+
64+
In the root level of your JSON object, add:
65+
```
66+
"autograding_method": "docker",
67+
```
68+
69+
You also need to choose your specific image which there are 2 ways to do this.
70+
71+
You can specify an image at the root level which will apply to all test cases.
72+
Add the following to the root level of your JSON object:
73+
```
74+
"container_options": {
75+
"container_image": "IMAGE_NAME"
76+
},
77+
```
78+
Replace `IMAGE_NAME` with your full image tag you added to the Docker UI.
79+
Once this is complete, you can specify the command you want to be run.
80+
81+
Another way this can be done is by specifying the image at each test case.
82+
See [Networked Containers](/instructor/autograding/networking) for more on this.
83+

_docs/sysadmin/configuration/registration_feed.md

+5-13
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ The columns/fields may be in any order.
9595

9696

9797
### 4. Install On Ubuntu Server
98-
As these are PHP scripts, they _should_ run on any computer that has PHP 7.3 or 7.4 and the appropriate extensions installed.
98+
As these are PHP scripts, they _should_ run on any computer that has a version of PHP 7.3 through 8.3, and the appropriate extensions installed.
9999
However, these instructions will focus on Ubuntu server 20.04 which provides PHP 7.4 by default.
100100

101101
1. If they haven't already been installed, install PHP and the required extensions.
@@ -364,14 +364,6 @@ Rows that do not match this constant's value will be ignored and a warning adde
364364
It is possible that when one row does not match, all rows will not match.
365365

366366

367-
#### End of Line Detection
368-
```php
369-
ini_set('auto_detect_line_endings', true);
370-
```
371-
This shouldn't be changed.
372-
It ensures that CSV files exported by Microsoft Excel for Macintosh are correctly processed.
373-
374-
375367
#### Timezone
376368
```php
377369
date_default_timezone_set('America/New_York');
@@ -401,8 +393,8 @@ These optional scripts can assist in retrieving CSV data, as opposed to the data
401393
#### `csv_local.php`
402394
Should CSV data files be made available in the local or a mounted filesystem, this script will help you validate and retrieve the CSV data file for the auto feed. Validation includes file's existence and that the timestamp is current, so to not reprocess an old CSV file.
403395

404-
**`config.php`**
405-
*Define* |
396+
##### `config.php`
397+
*define* |
406398
`'LOCAL_SOURCE_CSV'` | Path/file to retrieve and placed in the location of [`'CSV_FILE'`](#csv-file-access) so that it may be processed.
407399

408400

@@ -411,7 +403,7 @@ This script will retrieve CSV Data files attached to an email in an IMAP email a
411403

412404
***IMPORTANT:*** This script is highly specialized, and is currently obsolete and unsupported. This script is provided "as is" as a sample for another developer to adapt for their University's needs. Use at your own risk.
413405

414-
**config.php**
406+
##### `config.php`
415407
*define* |
416408
`'IMAP_HOSTNAME'` | FQDN of the IMAP email service.
417409
`'IMAP_PORT'` | Network port to access IMAP email.
@@ -438,7 +430,7 @@ This script attempts to open an SSH connection to another server, locate and rea
438430

439431
***IMPORTANT:*** This script is highly specialized, and is currently obsolete and unsupported. This script is provided "as is" as a sample for another developer to adapt for their University's needs. Use at your own risk.
440432

441-
**config.php**
433+
##### `config.php`
442434
*define* |
443435
`'JSON_REMOTE_HOSTNAME'` | FQDN of the host server to access for the JSON file.
444436
`'JSON_REMOTE_PORT'` | Network port for SSH access. Usually 22.

0 commit comments

Comments
 (0)