Skip to content

Commit af78776

Browse files
committed
merge with main
2 parents c71ae87 + b61a08e commit af78776

File tree

17 files changed

+294
-39
lines changed

17 files changed

+294
-39
lines changed

_docs/developer/development_instructions/automated_grading.md

+10
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,16 @@ To do this:
133133
sudo systemctl stop submitty_autograding_worker
134134
```
135135

136+
You can confirm that these jobs are no longer running:
137+
```
138+
ps -ef | grep submitty_auto
139+
```
140+
141+
If the jobs did not all stop, you can run:
142+
```
143+
ps -ef | grep submitty_auto | grep -v grep | awk '{print $2}' | xargs kill -9
144+
```
145+
136146
2. Now, as the `submitty_daemon` user, from the primary machine, run the
137147
shipper manager and watch the output.
138148

_docs/developer/getting_started/commit_to_PR_from_fork.md

+24-6
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,22 @@ the forked repository has granted the necessary permissions*. This
1818
allows multiple developers to collaborate and finalize a PR for
1919
merging to the main branch.
2020

21+
If you use Github Desktop or have the Github CLI installed, the simplest
22+
way to work on a fork is to click the **Code** dropdown on the PR's page
23+
on Github and checkout the PR from there.
24+
25+
![alt text](/images/fork-checkout.png)
26+
2127
The instructions below are for command line use of git.
2228

29+
1. **Before** you begin, confirm that your local main branch of Submitty is
30+
up-to-date. Additionally, if the PR's branch is not up-to-date with Submitty's main,
31+
there will be a button on its page on Github that you can press to update it.
32+
You may need to resolve merge conflicts in the process of updating it.
33+
34+
![alt text](/images/update-branch.png)
2335

24-
1. First, from the PR on the Github website, find the name of the
36+
2. From the PR on the Github website, find the name of the
2537
user + branch name. It should be formatted something like this:
2638
```
2739
contributorusername:contributor_branch_name
@@ -31,7 +43,7 @@ The instructions below are for command line use of git.
3143
The `fork_name` may simply be `Submitty`, or the author may have chosen to another name.
3244
3345
34-
2. Next, make a local branch on your computer in your working repository
46+
3. Next, make a local branch on your computer in your working repository
3547
with the proposed code changes. Here are the command lines
3648
(substitute the user, branch, and fork names we found above):
3749
@@ -48,14 +60,14 @@ The instructions below are for command line use of git.
4860
```
4961
5062
51-
3. This has made a local branch named
63+
4. This has made a local branch named
5264
`contributorusername-contributor_branch_name`. Go ahead and test
5365
and review the PR and make code edits and new commits to your
5466
local branch as needed.
5567
5668
5769
58-
4. In order to push the changes to the contributor's fork (and the PR
70+
5. In order to push the changes to the contributor's fork (and the PR
5971
on Github from the fork), you will specify the upstream to be the
6072
contributor's fork:
6173
@@ -93,7 +105,7 @@ The instructions below are for command line use of git.
93105
```
94106
95107
96-
5. Now once you are finished with your code changes, first commit them to
108+
6. Now once you are finished with your code changes, first commit them to
97109
the local branch (named
98110
`contributorusername-contributor_branch_name`).
99111
@@ -106,8 +118,14 @@ The instructions below are for command line use of git.
106118
*NOTE: If you encounter a permissions error, it is possible that the external
107119
contributor didn't grant access for collaboration on the branch.*
108120
109-
6. Confirm that you can see the changes on the Github website for the PR.
121+
7. Confirm that you can see the changes on the Github website for the PR.
110122
123+
8. NOTE that when you move on to work on another PR from a fork, you will need to
124+
cleanup / unset the upstream before you can set it to another repository:
125+
126+
```
127+
git remote rm upstream
128+
```
111129
112130
---
113131

_docs/developer/getting_started/make_a_pull_request.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ Be sure to read the [Suggestions for New Developers](/developer/getting_started/
114114
See also: [Installation Version Notes](/sysadmin/installation/version_notes)
115115
116116
* To help ensure a title follows our standards, we utilize a
117-
[GitHub workflow](https://github.com/Submitty/Submitty/blob/master/.github/workflows/pr_title.yml)
117+
[GitHub workflow](https://github.com/Submitty/Submitty/blob/main/.github/workflows/pr_title_check.yml)
118118
for validation. Updating your PR title will immediately re-run the workflow, allowing you to edit
119119
it till it does pass validation.
120120

_docs/developer/getting_started/phpstorm.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Under the `Mappings` tab, set the following:
5151
This step will configure PhpStorm to use the PHP CLI that is configured inside your vagrant machine.
5252
It is important to use this PHP installation as opposed to some other one as it ensures environment consistency among developers and production servers.
5353

54-
Under PhpStorm settings, open `Languages & Frameworks` > `PHP`. Press the `...` button next to `CLI Interpreter` and, on the left list of the interpreters window, press the `+` and select `From Docker, Vagrant, VM, Remote...`.
54+
Under PhpStorm settings, open `PHP`. Press the `...` button next to `CLI Interpreter` and, on the left list of the interpreters window, press the `+` and select `From Docker, Vagrant, VM, Remote...`.
5555
Select `Vagrant` from the list of radio buttons.
5656
Then press `OK` to add the interpreter and `OK` to save the list of interpreters.
5757

@@ -61,7 +61,7 @@ Open `Tools` > `Deployment...` > `Options`. Set `Upload changed files automatica
6161

6262
## Enable PHP debugging using xdebug
6363

64-
Under PhpStorm settings, open `Languages & Frameworks` > `PHP` > `Debug`. In the pre-configuration steps, press `Validate` to open the configuration validator. Choose `Remote Web Server` and set the following:
64+
Under PhpStorm settings, open `PHP` > `Debug`. In the pre-configuration steps, press `Validate` to open the configuration validator. Choose `Remote Web Server` and set the following:
6565

6666
- `Path to create validation script`: `<submitty repository root>/site/public`
6767
- `Deployment Server`: Use the SFTP connection you set up in the first step
@@ -91,7 +91,7 @@ Now you can browse the tables in the database window by expanding the tabs next
9191

9292
## Running PHPUnit tests
9393

94-
Under PhpStorm settings, open `Languages & Frameworks` > `PHP` > `Test Frameworks`. Press the `+` button to add a testing configuration, using the `PHPUnit by Remote Interpreter` type. Choose the interpreter you configured in earlier steps. Then set:
94+
Under PhpStorm settings, open `PHP` > `Test Frameworks`. Press the `+` button to add a testing configuration, using the `PHPUnit by Remote Interpreter` type. Choose the interpreter you configured in earlier steps. Then set:
9595

9696
- `PHPUnit Library`: `Use Composer autoloader`
9797
- `Path to script`: `/usr/local/submitty/GIT_CHECKOUT/Submitty/site/vendor/autoloader.php`
@@ -132,7 +132,7 @@ Press `OK` to save the run configuration. If you then `Debug` the configuration,
132132

133133
During debugging, you may get decently upset at how often you step into magic methods and class loaders etc. There's an easy fix for this:
134134

135-
Under PhpStorm settings, open `Languages & Frameworks` > `PHP` > `Debug` > `Step Filters`. Check `Skip magic methods` and add the following to `Skipped Methods`:
135+
Under PhpStorm settings, open `PHP` > `Debug` > `Step Filters`. Check `Skip magic methods` and add the following to `Skipped Methods`:
136136

137137
- `app\views\AbstractView->__construct`
138138
- `app\models\AbstractModel->convertName`

_docs/developer/getting_started/vm_install_using_vagrant_apple_silicon.md

+2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ the installation process.
5959
6060
$ brew install --cask vagrant
6161
62+
$ vagrant plugin install vagrant-timezone
63+
6264
$ vagrant plugin install vagrant-qemu
6365
```
6466
Note: It is possible that you may need to install Rosetta before installing vagrant. Run the following command to install Rosetta:

_docs/developer/troubleshooting/installation_troubleshooting.md

+48-1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ with no explanation, then there are a couple of things that may be going wrong:
6767
brew reinstall --cask vagrant
6868
vagrant plugin update
6969
vagrant box update
70+
vagrant plugin install vagrant-timezone
7071
```
7172
7273
If you continue to have errors on Mac with `vagrant up` after
@@ -109,11 +110,25 @@ with no explanation, then there are a couple of things that may be going wrong:
109110
directories/repositories to clean up unwanted VMs.
110111
111112
The following command can help locate misplaced repositories/VMs:
112-
113113
```
114114
vagrant global-status
115115
```
116116
117+
If you see unnecessary VMs, you can clean them up with (replace
118+
`1a2b3c4d` with the id of the VM you wish to destroy):
119+
```
120+
vagrant destroy 1a2b3c4d
121+
```
122+
123+
If the command above does not successfully destroy and remove the VM from the
124+
global-status list, you may see an error similar to: `The machine
125+
with the name 'ubuntu-20.04' was not found configured for this
126+
Vagrant environment.` You can try to clean up these undestroyed VMs record by
127+
running:
128+
```
129+
vagrant global-status --prune
130+
```
131+
117132
* If you might have old, forgotten VMs from previous OS versions
118133
hanging around it can be helpful to completely delete the `.vagrant`
119134
folder in your repository. Also check to see if you have multiple
@@ -180,3 +195,35 @@ broadcast 192.168.56.255
180195
```
181196
182197
References and useful links: [https://gist.github.com/pjdietz/5768124](https://gist.github.com/pjdietz/5768124) and [http://christophermaier.name/2010/09/01/host-only-networking-with-virtualbox/](http://christophermaier.name/2010/09/01/host-only-networking-with-virtualbox/)
198+
199+
200+
## Guest Additions
201+
202+
203+
Submitty vagrant no longer uses Virtual Box Guest Additions. If you
204+
see errors about version mismatch with Guest Additions, and if the VM
205+
hangs trying to update the version of Guest Additions to match the
206+
host version of Guest Additions, you may have old versions of the
207+
development process on your machine and may need to more completely
208+
uninstall and reinstall Virtual Box and Vagrant to reset your system.
209+
210+
**NOTE: THESE ACTIONS WILL DELETE ALL VMS ON YOUR SYSTEM.**
211+
212+
Some things to check:
213+
214+
* From your main Submitty repository, e.g. `<SOMETHING>/GIT_CHECKOUT/Submitty/`
215+
run `rm -rf .vagrant`
216+
217+
(you may need to put sudo in front)
218+
219+
* Check all files on your filesystem for vagrant. Run 'locate
220+
vagrant' and remove any old library / installation files you see.
221+
E.g.:
222+
223+
```
224+
rm /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
225+
rm -rf /opt/vagrant/
226+
rm -rf /Users/MY_HOME_DIRECTORY/.vagrant.d/
227+
rm -rf /Users/MY_HOME_DIRECTORY/.gem/specs/rubygems.org%443/quick/Marshal.4.8/vagrant-vbguest-0.31.0.gemspec
228+
```
229+

_docs/instructor/autograding/docker_ui.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Depending on your assignment, you may need to install new docker
77
images on the system to perform autograding. You can do this via the
88
Docker UI page available to instructors with the role `Faculty`. To
99
check if you have access, click on "My Profile" from the left sidebar.
10-
If you don't see "Access Level: Faculty", as your sysadmin to give you
10+
If you don't see "Access Level: Faculty", ask your sysadmin to give you
1111
this access.
1212

1313
From the Docker UI page, you can see what capabilities are
@@ -19,7 +19,7 @@ disabled or there was an error associated with the updating of
1919
said machine. In the case of an error, there will be an area with
2020
the error within the System Wide Information section.
2121

22-
### Adding Image
22+
### Adding Images
2323

2424
To add an image to a capability, you must first select the
2525
capability to add to. Next you must provide a valid Docker

_docs/instructor/course_settings/rainbow_grades/customization_basics.md

+80-8
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,26 @@ It can contain the following:
2626
* ``"instructor_notes"``: Shows notes for early warnings, plagiarism, etc. only to the instructor
2727
* ``"grade_summary"``: Shows the overall score and score for each syllabus bucket (e.g. Homework)
2828
* ``"grade_details"``: Shows the score for each gradeable
29+
* ``"section"``: Show the students' registration section.
30+
* ``"messages"``: Show a text message at the top of the page.
2931
* ``"final_grade"``: Shows final grade letters and some statistics about the final grade distribution.
32+
* ``"manual_grade"``: Manually assign final grades to specific students.
3033
* ``"exam_seating"``: Shows exam seating assignments. To display the assignment on the Submitty course homepage,
3134
the instructor should make sure "Display Rainbow Grades Custom Message" is enabled in "Course Settings" on the Submitty
3235
course page.
3336
* ``"display_rank_to_individual"``: Shows each student's rank in the course, independent of section.
3437

38+
```json
39+
"display": [
40+
"grade_summary",
41+
"grade_details",
42+
"section",
43+
"messages",
44+
"final_grade",
45+
"manual_grade"
46+
]
47+
```
48+
3549
* **field:** ``"display_benchmark"``
3650
**type:** _array of strings_
3751
**REQUIRED** if using ``"curve"`` in ``"gradeables"`` described below
@@ -43,6 +57,18 @@ It can contain the following:
4357
* ``"lowest_a-``, ``"lowest_b-"``, ``"lowest_c-"``, ``"lowest_d"``: Based on curves, the lowest scores that will earn
4458
the name of the benchmark.
4559

60+
```json
61+
"display_benchmark": [
62+
"average",
63+
"stddev",
64+
"perfect",
65+
"lowest_a-",
66+
"lowest_b-",
67+
"lowest_c-",
68+
"lowest_d"
69+
]
70+
```
71+
4672
* **field:** ``"benchmark_percent"``
4773
**type:** _associative array / mapping from string to float_
4874
**REQUIRED** if using ``"curve"`` in ``"gradeables"`` described below, or if any grade-letter benchmarks are used in ``"display_benchmark"`` above.
@@ -51,6 +77,16 @@ It can contain the following:
5177
necessary to obtain that grade. For example to require an 82% for an A-, there should be an entry in the ``"benchmark_percent"`` array:
5278
``"lowest_a-": 0.82``
5379

80+
To display all benchmarks, include the following:
81+
```json
82+
"benchmark_percent": {
83+
"lowest_a-": 0.9,
84+
"lowest_b-": 0.8,
85+
"lowest_c-": 0.7,
86+
"lowest_d": 0.6
87+
}
88+
```
89+
5490
* **field:** ``"section"``
5591
**type:** _associative array / mapping from string to string_
5692
**REQUIRED**
@@ -60,34 +96,70 @@ It can contain the following:
6096
this array will be treated as invalid and ignored. These labels are only displayed
6197
on the instructor's `output.html`.
6298

99+
```json
100+
"section": {
101+
"1": "1",
102+
"2": "2",
103+
"3": "3",
104+
"4": "4",
105+
"5": "5",
106+
"6": "6",
107+
"7": "7",
108+
"8": "8",
109+
"9": "9",
110+
"10": "10"
111+
}
112+
```
113+
63114
* **field:** ``"messages"``
64115
**type:** _array of strings_
65116

66117
These messages will be displayed at the top of the instructor summary and each
67118
student's individual Rainbow Grades report.
68119

120+
```json
121+
"messages": [
122+
"Example message"
123+
]
124+
```
125+
69126
* **field:** ``"final_cutoff"``
70127
**type:** _associative array / mapping from string to float_
71128
**REQUIRED** if using ``"final_grade"`` in ``"display"``
72129

73130
Each grade letter that you want should be associated with the minimum overall semester score required to get that grade.
74-
This array is unrelated to benchmarks.
131+
This array is unrelated to benchmarks. For example:
132+
133+
```json
134+
"final_cutoff" : {
135+
"A": 93.0,
136+
"A-": 90.0,
137+
"B+": 87.0,
138+
"B": 83.0,
139+
"B-": 80.0,
140+
"C+": 77.0,
141+
"C": 73.0,
142+
"C-": 70.0,
143+
"D+": 67.0,
144+
"D": 63.0
145+
}
146+
```
75147

76148
* **field:** ``"manual_grade"``
77-
**type:** _associative array / mapping from string to associative array_
149+
**type:** _array of associative arrays_
78150

79-
For each student that you want to assign a manual grade to, their id must
80-
be mapped to an associative array with a field ``"grade"`` mapped to a string
81-
with the letter grade you want to give them, and ``"note"`` containing any note
82-
about the adjustment. The note is only visible to the instructor. For example,
151+
For each student that you want to assign a manual grade to, add an item to
152+
``"manual_grade"`` with fields ``"user"``, ``"grade"``, and ``"note"`` containing
153+
any note about the adjustment. The note is only visible to the instructor. For example,
83154
to give user ``smithj`` a grade lettter of ``D`` with a reason of
84155
``"Put in extraordinary effort."``:
85156

86157
```json
87-
"smithj" : {
158+
"manual_grade" : [{
159+
"user":"smithj",
88160
"grade": "D",
89161
"note": "Put in extraordinary effort."
90-
}
162+
}]
91163
```
92164

93165
* **field:** ``"warning"``

0 commit comments

Comments
 (0)