A+ v1.15 Release Notes
June 2022 (GitHub milestone)
A+ v1.15.0
Changes / A+ front
- Teachers may easily create new A+ course instances themselves as self-service. (issue #963)
- There is no longer a need to request course instances from A+ administrators unless you need a new course space with a new course code and name.
- The new teacher’s user interface in A+ (under the Edit course section) creates the course instance in the Git Manager backend as well.
- Teachers may modify typical Git Manager settings directly in A+. Therefore, teachers usually need not access the Git Manager web site separately.
demo video- Updated demo video for v1.16
- Experimental alternative API for getting course results (issue #918)
- Recent versions of A+ have suffered from very poor performance in the “All results” view so that in some cases, it has been unusable. We implemented an experimental alternative of the API endpoint used by the view, to test its efficiency in production environment. This will be replaced by a finalized implementation later, so this API is temporary, and not intended to be used by external applications.
- The All results view now by default ignores the assignment setting “grading mode - last submission” (the last submission defines the grade). The setting has not been used often. There is a checkbox for enabling the grading mode setting, but it makes the page much slower.
- If you use the setting “grading mode - last submission”, pay attention so that you export the correct grades from the system.
- New feature: approve late or unofficial submissions as normal, graded submissions without penalties. (issue #892)
- In the inspect submission view, teachers may approve late or unofficial submissions with a new Approve button.
- First, inspect a submission that is late or unofficial. The Approve button is not visible otherwise.
- The teacher may approve a single submission, the student’s all submissions in one assignment or the whole module.
- In this version, adding new deviations (personal deadline extensions) does not automatically approve any submissions. That part of the feature is still unfinished.
- New API endpoint for regrading submissions. (issue #1008)
- Course staff can (programmatically) re-submit an existing submission for grading through the
/api/v2/submissions/ID/re-submit
endpoint.
- Course staff can (programmatically) re-submit an existing submission for grading through the
- Show hidden modules and exercises to teachers on the “Your points” page (issue #1012).
- In particular, teachers can see enrollment questionnaires on the “Your points” page.
- Clarify enrollment counts in the participants view.
- The different enrollment statuses (active/banned/removed/pending) are shown more clearly than before.
- Add download button for model answers and assignment templates as well as submitted files. (issue #894)
- Add button to the user profile view to regenerate the personal API access token. (issue #1022)
Bug fixes
- Fix enrollment questionnaire functionality when SISU enrollment is in use. (issue #1042)
- Map static web addresses (such as images) in assignment descriptions to the correct server. (issue #974)
- A+ used to map relative URLs in assignment descriptions to the Grader server.
However, after the Git Manager was introduced, static files have been hosted in the Git Manager server.
It is advisable to use the
static_host
setting in conf.py to generate proper full URLs for static files.
- A+ used to map relative URLs in assignment descriptions to the Grader server.
However, after the Git Manager was introduced, static files have been hosted in the Git Manager server.
It is advisable to use the
In addition, there are small coding style, documentation, etc. improvements.
For system administrators
- Added
GITMANAGER_URL
to the Django settings of the A+ front. It should be set if the Git Manager service is used. This setting enables the new Git Manager tab under the A+ Edit course section. - Added
BASE_URL
to the Django settings of the MOOC-Grader. This must be manually set to the web address visible to end users, for example,https://grader.aalto.fi
. - Removed possibility to sign in as another user in A+. (issue #1032)
Git manager
- Git Manager uses the
DEFAULT_GRADER_URL
setting if exercise configure files settings are missing a URL. This implies that the course settings in the course git repos do not have to include any grader URLs if they want to use the default servers. - Added setting
LOCAL_COURSE_SOURCE_PATH
so that local testing does not require setting up any git repositories for courses. The run-gitmanager Docker container image uses the setting. Course directories may be mounted to/srv/courses/source/COURSEKEY
in the container and the git origin setting is left empty. - Git Manager performance improvements:
- Added caching for different stages of the course builds. The Django settings must define
CACHES
. Memcached is recommended.requirements_prod.txt
includes the Memcached clientpymemcache
. - Avoid copying unnecessary files in the course builds.
- Note that new versions of git include a new security feature. Git checks if the current users owns the git repository directory.
Pay attention to the
$HOME
variable so that the git operations find the correct.gitconfig
file when you try to set global git settings and allow all directories for git (safe.directories = *
).
- Added caching for different stages of the course builds. The Django settings must define
A-plus-rst-tools v1.5
- A-plus-rst-tools v1.5 is only compatible with A+ v1.15 and not any older A+ releases.
- New settings for the Git Manager:
- conf.py
course configures
: used to send additional files to grading services. configures-files
option in thesubmit
andquestionnaire
directives: used to send additional assignment-specific files to grading services. Files that are dependent on other settings, such ascontainer.mount
andcontainer.mounts
, are already automatically sent to the grading services.- conf.py
unprotected_paths
: list of directory paths that are served to the public web without authentication.- The paths are relative to the
static_dir
in the output yaml.static_dir
is usually the html output directory, i.e.,_build/html
. _static
,_images
and_downloads
are always served to the public web. These directories are used by Sphinx to serve static files.- This new protection in the Git Manager protects built files in the
_build/html
directory from being served to the public web. Especially, it protects the built chapter HTML files. They should not be normally served to the public web since most courses are not open as public MOOCs. If A+ restricts access to the chapters, then unauthenticated users could still circumvent the access restrictions if the backend served the same content without authentication. - The older version a-plus-rst-tools v1.4 does not enable any protection in the Git Manager. Then, the built chapter HTML files are still served to the public web.
- The paths are relative to the
- conf.py
- Improved the usability of the Thebe/BinderHub interactive code blocks.
- Launch button may be integrated to each code cell instead of having a separate launch button somewhere outside the code cells.
Add the directive
thebe-precell-button
before a code block to use this. - Support execution environments defined in private Aalto GitLab repositories (version.aalto.fi).
- Launch button may be integrated to each code cell instead of having a separate launch button somewhere outside the code cells.
Add the directive
- Renamed the field
language
tolang
in index.yaml.
Jutut feedback
- Updated the Django framework to v3.2 LTS.
- Updated other dependencies too.
Rubyric
- Updated the Ruby on Rails framework to v6.1.