Releases: ucfopen/Materia
Materia v10.3.0
v10.3.0 is our largest and last release of 2024, incorporating several long-requested features as well as major architectural changes and plenty of bug fixes! Let's dive in and a take a look.
Feature Highlight: Question Generation
We wanted to approach AI content generation in Materia with thoughtfulness, care, and consideration for pedagogical impact. Individual widget engines can now opt-in to the question generation feature, which generates (or appends to) question sets based on a given topic:
When enabled, the "Generate" feature will be available in the action bar of the widget creator UI for instructors (or users with the basic_author
role.) Widget engines must be updated and installed with the requisite is_generable
flag in their install.yaml
, and can optionally provide a generation_prompt
to provide additional clarifying information about how a qset is structured.
Feature Highlight: AI Generation Endpoint for Creators
The creator interface for widget engines can now implement a new CreatorCore.submitPrompt()
endpoint to submit bespoke prompts to an AI model. This enables individual widget engines to utilize AI content generation in a more granular manner than the question generation feature. Widgets must implement the newest version of the Materia Widget Developer Kit and question generation must be properly configured and enabled system-wide for this feature to be available.
Feature Highlight: Style Adjustments and Dark Mode
You asked, we listened: the v10.0 redesign last year looks great, but it's so... bright. Give your eyes some relief by enabling dark mode in your profile settings.
Note that as it says on the tin, dark mode does not influence widget appearance (though we'd love to address this in the future.) While we worked on Dark Mode, we improved font rendering system-wide to enhance visual clarity.
Feature Highlight: First-Time Setup Overhaul
Our work with other institutions made it clear that the one-size-fits-all run_first
script didn't quite cut it. So we made two!
run_first_for_dev.sh
inherits most of the responsibilities of the originalrun_first
script and rapidly configures your local Materia environment for development.run_first_for_nodev.sh
is intended for users who aren't as interested in local development, but are looking to play with Materia locally and potentially transition towards a production environment. The script will ask a series of configuration questions to output a customized docker compose override file.
In both cases, docker/docker-compose.override.yml
is now untracked, and we've made a bunch of tweaks to how environment variable configurations are handled in docker. We also took the time to overhaul both READMEs, with the docker README now substantially expanded to better enable both developers and administrators to successfully configure a local Materia install with docker. This is the beginning of more significant updates to our docs site in the near future.
Other Notable Highlights
- User asset storage in AWS S3 is now available as an
ASSET_STORAGE_DRIVER
configuration. When enabled, user media assets are directly uploaded (and indirectly requested from) AWS S3. Assets will continue to be served from your existing media URLs, allowing for minimal reconfiguration headaches. - Revamped the Individual Scores table for selected instances in My Widgets as well as the pre-embed views for widgets.
- Improved query retry behavior on several pages to make error states more immediate and obvious.
- Included an accessibility statement in the Help page.
Full List of Changes and Associated Pull Requests
- Disabled
retry
behavior across most front-end components to reduce issues with delayed responses to error states .(#1596) - Updated most scripts and GitHub actions to explicitly use
docker compose
(v2) instead ofdocker-compose
(v1) to address deprecation. - Updated widget pre-embed views (#1597)
- Updated & completed S3 asset storage driver for use on local dev and AWS (#1588)
- Updates
materia-theme-ucf
composer package tov2.0.4
(#1608) - Adds validation and error boundaries for excessive instance title length (#1604)
- Updates the creator Save Draft button to revert to the default "Save Draft" text after a short delay (#1602)
- Adds the question generation feature, allowing widget engines to opt in to having a generative AI create entire qsets based on a desired topic. (#1582)
- Fixed an issue where score module log validation was not including the semester as part of attempt limit calculation (#1612)
- Adds a new Creator Core method to facilitate generative AI prompts on behalf of a widget creator. (#1591)
- Removes the cookie override class and adds optional webserver
https
override env variable. (#1615) - Improvements to first-time dev environment setup, including the publishing of
-dev
and-stable
webserver
andapp
images associated with each release. (#1617) - Replaces deprecated
react-dom
render
method to ensure compatibility with React 18. Removed references to react query devtools. (#1606) - Massive rework of first-time setup, docker compose files, and both the READMEs in the root and
docker/
directories (#1620) - Fix for inconsistencies with widget filtering in the catalog (#1622)
- Updates visual appearance and improves accessibility of individual scores display in My Widgets. (#1623)
- Adds a platform-wide dark mode that can be optionally enabled on a user's profile settings page. This PR also adjusted and improved font rendering across many individual views across the application. (#1609).
- Adds an accessibility statement to the help page. (#1624).
- Adjusted static file cache headers in production NGINX configuration.
Upgrading to v10.3.0
Refer to the wiki page for upgrading to v10.3.0.
Contributors
- Corey Peterson @clpetersonucf, Materia Lead Developer
- Cay Henning @cayb0rg, Techranger Alumnus
- Chris Solanilla @chrissolanilla, Techranger
- Patrick Koss @fudgeu, Techranger
- Simon Roth @SimonRothUCF, Techranger
v10.3.0-rc.3
v10.3.0-rc.3
v10.3.0-rc.2
v10.3.0-rc.2
v10.3.0-rc.1
v10.3.0-rc.1
v10.3.0-alpha.11
v10.3.0-alpha.11
v10.3.0-alpha.10
v10.3.0-alpha.10
v10.3.0-alpha.9
v10.3.0-alpha.9
v10.3.0-alpha.8
v10.3.0-alpha.8
Materia v10.2.0
v10.2.0 continues to build on the affordances provided by our 10.0 update, adding a number of quality-of-life features, bug fixes, deprecation fixes, and improvements.
Enhancements
- Improved API error handling across the board, with changes to how to the API sends errors (no more errors provided with 200 response codes!) and how the front-end processes them. (#1547)
- Support users can now review instance scores directly from the admin panel, either when managing an individual instance or when reviewing an instance embedded within a user page. (#1581)
- Adds configuration scaffolding to adjust the
pm.max_children
value in the base Materia image or in the Docker compose file. (#1593)
Bug Fixes
- Fixes and improves the way custom score screens request qset information, ensuring they always receive the qset associated with the given play instead of the latest qset. (#1575)
- Fix to Save History feature when used with freshly saved widget instances. (#1580)
- Fix to error state associated with expired preview logs. (#1585)
- Fixed "Get Materia" link on homepage inadvertently pointing to the widget catalog instead of this repository.
- Adds a "guardrail" to prevent score percentage values over 100 from being written to the database. (#1584)
Miscellaneous
- Updates
Materia-Theme-UCF
tov2.0.3
in composer. - Updates
phpseclib
to address deprecation issues in composer. - Finally added a CONTRIBUTING document 🎉
Associated Pull Requests
- Custom score screen qset acquisition changes by @clpetersonucf in #1575
- Save History fix for new instances by @clpetersonucf in #1580
- API Error Handling Overhaul by @cayb0rg in #1547
- Updates hard-coded imsglobal urls to use https by @clpetersonucf in #1572
- Support users can view instance scores by @clpetersonucf in #1581
- Prevents play score percentages over 100 by @clpetersonucf in #1584
- Fixes/improves expired preview log handling by @clpetersonucf in #1585
- Adds php-fpm config override to adjust pm.max_children value by @clpetersonucf in #1593
- Dev/10.2.0 by @clpetersonucf in #1578
Full Changelog: v10.1.0...v10.2.0
Materia v10.1.0
v10.1.0 includes several significant quality-of-life improvements, bug fixes, and optimizations to the platform in the wake of the v10.0.0 update.
Enhancements
- Improvements to the Settings dialog, particularly related to users with the student role. In some cases, a user could inadvertently lose access to their own instances when their role changed from
basic_author
to student. The instance owner is now identified in the collaboration dialog, and additional checks and fixes have been implemented associated with student users. (#1540) - Student users can now view score information associated with instances, even when an instance is not in Guest Mode. Score data in this context are now anonymized, but identity information will again be included if the user regains the
basic_author
role. (#1540, #1541) - Improvements to API endpoints associated with instances and user search. Pagination behavior has been optimized and certain requests have been made paginated to improve performance. (#1541)
- Improvements to the invalid login dialog and the application states that display it. (#1537)
- Significant optimizations to JS imports; a development version of React and React-DOM are no longer imported, and the majority of vendor JS is imported in a common file that's included in every page request. (#1563)
- The application log stream is no longer inundated with
access.log
spam from phpfpm. (#1548)
Bug Fixes
- Fixes play context indicator in the Instances Played section of the User Admin page (#1544)
- Fixed broken search behavior in the individual scores component in My Widgets (#1554)
- Fixed display issue in My Widgets associated with updated settings not persisting until the page is refreshed (#1556)
- Formalized "triage" fixes associated with missing LTI tokens in session data; if tokens are not present, the play log's environment data is searched for the tokens instead. (#1560)
- Added missing stylesheets associated with player and creator guides to the
Materia-Widget-Dependencies
package manifest (#1539) - Deprecated Node Sass node dependency replaced with Dart Sass (#1551)
- Several dependabot updates
Associated Pull Requests
- Add guides.css to MWD by @cayb0rg in #1539
- Replace Node Sass with Dart Sass by @cayb0rg in #1551
- improves play.auth string check in user admin panel by @clpetersonucf in #1544
- Improved invalid login states by @clpetersonucf in #1537
- Fixes to My Widgets score summary user search by @clpetersonucf in #1554
- Instance list request modifications to fix settings persistence by @clpetersonucf in #1556
- Nullify php-fpm log spam by @clpetersonucf in #1548
- Triage fixes for LTI score passback bug by @clpetersonucf in #1560
- Issue/settings dialog by @cayb0rg in #1540
- Issue/1508 pagination by @cayb0rg in #1541
- JS import optimizations by @clpetersonucf in #1563
- Fix settings dialog by @cayb0rg in #1564
- Dev/10.1.0 by @clpetersonucf in #1545
- Bump aws/aws-sdk-php from 3.67.17 to 3.288.1 by @dependabot in #1552
- Bump jquery-ui from 1.12.1 to 1.13.2 by @dependabot in #1534
Full Changelog: v10.0.1...v10.1.0