All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Compilation of symlinks
- Rumbas execution with absolute paths.
- Rumbas execution within project subfolder.
- Support for symlinks
- Default value support for templated values
- Load templated questions directly from exam files
- Recursive templates: a template can have a template as parent.
- BREAKING: template files should now placed in the normal folders (
exams
andquestions
) instead of specific ones (question_templates
andexam_templates
) - Imported files are now formatted after import
- Support to update from version 0.4.0
- The
editor_output
command
- Order of keys in a map are now sorted in numbas exam outputs
- Order of default file application. It used to be random due to the usage of a HashMap which removed the ordering.
- Minifying in docker works again
- Executing in docker works again
- Support for
rulesets
. - Some builtin
jme
functions. - Support for superscript powers in
jme
. - Support for the new variable naming restrictions in
jme
. (Can start with a$
and_
now). - Better error messages on failing import of numbas exams. A formatted file of the exam is saved and the failing line is shown for this formatted line.
- Support for
restricted
option inCustomPartAvailability
rumbas
now checks whether the version in therc
file equals the version of the rumbas binary.- Version of Numbas (now uses
7e0f0f9ec332ad9c00ee32386b85eb845f9da166
) - Version of the
quantities
extension. startpassword
is now a noneable field (startpassword: none
is the same asstartpassword: ""
)
- Importing of (older) numbas exams.
- Use default values used by numbas when the exam file doesn't specify a value for the field.
- Support
\(
and\)
for latex blocks.
fmt
command: basic command to format the rumbas yaml files, currently only fixes strings to be multiline if useful
- Using
µ
for\var
works again
- numbas version
- Statements and answers in match answer parts are content area's instead of EmbracedJMEStrings.
- Support for
||
asor
in jme - A Translation text without translation can now be written as plain text instead of needing a map with
content
andplaceholders
keys.
- Feedback in multiple choices are content area's instead of EmbracedJMEStrings.
check
andcompile
command do now accept multiple paths, which will all be checked / compiled.- Some debug prints are changed from INFO level to DEBUG level (default file logs).
answer_display
field tojme
part type.sqlite
extensiontext
extension--no-minification
flag forcompile
command to suppress thejs
andcss
minification of Numbas. Before this addition, minification was not performed, now it is enabled by default.
- Renamed
custom_marking_algorithm
tocustom_marking_algorithm_notes
- The type is changed from a string, to a map
- Validation of JME fields
- Previously they were parsed as strings
- Now they are parsed as JME expressions / ContentAreas
- Better error message when there is something wrong in the yaml of a question_part
- Moved
use_times_dot
field fromJMEAnswerSimplification
toJMEAnswerDisplay
and renamed it toalways_show_multiplication_sign
. - Renamed fields of
JMEAnswerSimplification
:- The new names should be much more clear
- The old names are still valid
- Dockerfile: updated numbas version (so minify_css is supported)
- Syntax for
TranslatableString
is changed.- Instead of a map that contains
content
, some locale fields and some placeholders that are surrounded with brackets ({<placeholder>}
) - It now is a map with fields
content
andplaceholders
content
is either a map (with locales mapping to strings) or just a string (not locale dependant)placeholders
is a map that maps placeholders (strings) toTranslatableString
s
- Instead of a map that contains
- Improved Input support
- Enums that have multiple variants with a type that is an Input struct, work
- Previously the first variant was always used
- Now parsing an Input struct fails when all fields are None
- Enums that have multiple variants with a type that is an Input struct, work
- removed
has_to_select_option
fromchoose_one
. display
inchoose_one
parts is now an object:type
is eitherdropdown
orradio
- if it is
radio
is also has acolumns
field - previously this was flattened and the
columns
field was set at the higher level
display
inmatch_answers
parts is now an object:type
is eithercheck
orradio
- if it is
check
is also has amarking_method
field - previously this was flattened and the
columns
field was set at the higher level
- Added
minimal_achievable_marks
andmaximal_achievable_marks
tomatch_answers
part types. - Added
minimal_achievable_marks
,maximal_achievable_marks
andmarking_method
tochoose_multiple
part types.
- Multiple choice marking
- Support for
allow_printing
in navigation - Support for
geogebra
andeukleides
extensions (you will need to add a default value todefauls/question.yaml
for the these extensions) - Support for diagnostic exams
builtin_constants
andcustom_constants
in question descriptiondiagnostic_topic_names
in question descriptionresources
in question description- Support for
NumbasLike
answers field for ChooseOne part (this means that a type has to be specified) - Support for
matrix
part type - Support for resources
rumbas init
: command to initialize a rumbas projectrumbas import
: command to import numbas .exam fileswrong_nb_answers_warning_type
field to all multiple choice part types
- Better messages when the yaml is invalid. The specific part that is invalid, is shown.
- Numbas version (v6.0)
should_select_at_least
inQuestionPartChooseOne
is changed to a booleanhas_to_select_option
- The command to compile a question or an exam is now
rumbas compile <path>
instead of justrumbas <path>
. - Change template folder names to
question_templates
andexam_templates
(instead oftemplate_questions
andtemplate_exams
) - Parsing of answer simplification types also handles the
!
operation. checking_type
andchecking_accuracy
fields in jme part are moved to a new fieldanswer_check
which is an object.- This object has a
type
(previously this waschecking_type
) - If the type is
relative_difference
orabsolute_difference
there is a second fieldmax_difference
(previously this waschecking_accuracy
) - If the type is
decimal_places
orsignificant_figures
there is a second fieldamount
(previously this waschecking_accuracy
)
- This object has a
answers
field in multiple choice parts in renamed toanswer_data
(old name is still allowed)- Added
type
field toanswer_data
- Added
- Renamed and added some AnswerStyles.
plain
is renamed toenglish-plain
etc allow_regenerate
field in navigation is changed tocan_regenerate
(old name is still allowed)allow_steps
field in navigation is changed toshow_steps
(old name is still allowed)show_frontpage
field in navigation is changed toshow_title_page
(old name is still allowed)reverse
field in navigation is changed tocan_move_to_previous
(old name is still allowed)prevent_leaving
field in navigation is changed toconfirm_when_leaving
(old name is still allowed)- Added
type
field toinput_widget
field of custom part types
checking_type
option innumber_entry
questionpartsname
andstrings
options inmust_match_pattern
,max_length
andmin_length
option ofjme
questionpartsname
field inmust_have
andmay_not_have
option ofjme
questionparts
- Support for
stats
extension (you will need to add a default value todefauls/question.yaml
for thestats
extension) - Support for
simplify_no_leading_minus
,simplify_fractions
,simplify_trigonometric
,cancel_terms
,cancel_factors
,collect_like_fractions
,order_canonical
,use_times_dot
andexpand_brackets
in answer simplification. value_generators
support in JME
- Numbas version
- Numbas version
- Creation of the
_output
folder and locale folders within
- Support for
questionpart.gapfill.gap.choose_one
default file - Support for
jsx_graph
extension - Support for
match_answers
part type
- Type of marks in multiple choice answer (from float to primitive)
- Type of parameters in function (from HashMap to Vec to preserve order)
- Support for
choose_multiple
part type
- Use yaml instead of json as file format
- Templating is much more robust now
- Cli options: scorm and zip
- First release