Releases: learningequality/kolibri
v0.19.1
What's Changed
This release includes HTML5 Article Renderer improvements, performance optimizations including a ~25% reduction in JS bundle size, and foundational work for upcoming features. We also addressed some tech debt and continued cleaning up Python 2.7 compatibility code with great help from the community.
Added
Content & Rendering
- Adds polyfill for to ensure browser compatibility in HTML5 Article Renderer by @AllanOXDi in #13951
- [HTML5 Article Renderer] Refactor Table Implementation by @AllanOXDi in #14002
- Implements simple scroll progress tracking for safe html5 renderer by @akolson in #13983
- Add modality field to ContentNode by @AlexVelezLl in #14042
- Add modality filter query param in Content API by @nucleogenesis in #14058
Courses Feature (Foundational)
- Add initial core courses Django app files by @LianaHarris360 in #14066
- Add courses_exist to the coach's plugin_data by @AlexVelezLl in #14068
Developer Tooling
- Add ESLint rule to validate translator key destructuring by @rtibbles in #13932
- LFS File pre-commit check by @rtibbles in #13947
- Add comprehensive documentation for URL namespacing by @rtibbles in #13863
- Add documentation about plugin enabling on pex by @rtibbles in #13948
Changed
Performance & Build
- Reduce JS production build size by ~25% by @rtibbles in #13912
- Update KDS to 5.5.0 by @MisRob in #13999
- Update H5P JavaScript library by @learning-equality-bot[bot] in #13993
- remove varchar_pattern_ops index by @ozer550 in #14076
Tech debt / refactors
- Removes the paginatedListContainerWithBackend by @AllanOXDi in #13871
- Migrate from assets/src to frontend by @rtibbles in #14009
- Update .git-blame-ignore-revs for frontend migration changes by @rtibbles in #14011
Python 2.7 Cleanup
- Remove Python 2.7 legacy: hasattr(output, 'decode') runtime checks by @AadarshM07 in #13915
- Remove Python 2.7: Replace mkdirp() with os.makedirs() by @AadarshM07 in #13927
- Remove Python 2.7 legacy: Simplify OSError/IOError exception by @AadarshM07 in #13943
- Refactor replace replace() with os.replace() by @AadarshM07 in #13949
- Remove Python 2.7 legacy: Remove lru_cache backport by @Prashant-thakur77 in #13952
- Remove Python 2.7 legacy: Update JSONDecodeError exception handling by @Prashant-thakur77 in #13950
- Remove Python 2.7: Simple syntax and import cleanups by @AadarshM07 in #13955
- Update super calls python3 by @Prashant-thakur77 in #13984
- Remove Python 2.7 FileNotFoundError compatibility shims by @rtibbles in #13985
New Contributors
- @AadarshM07 made their first contribution in #13915
- @Prashant-thakur77 made their first contribution in #13952
Full Changelog:
v0.19.0...v0.19.1-rc0
v0.19.1-rc0
What's Changed
This release includes HTML5 Article Renderer improvements, performance optimizations including a ~25% reduction in JS bundle size, and foundational work for upcoming features. We also addressed some tech debt and continued cleaning up Python 2.7 compatibility code with great help from the community.
Added
Content & Rendering
- Adds polyfill for to ensure browser compatibility in HTML5 Article Renderer by @AllanOXDi in #13951
- [HTML5 Article Renderer] Refactor Table Implementation by @AllanOXDi in #14002
- Implements simple scroll progress tracking for safe html5 renderer by @akolson in #13983
- Add modality field to ContentNode by @AlexVelezLl in #14042
- Add modality filter query param in Content API by @nucleogenesis in #14058
Courses Feature (Foundational)
- Add initial core courses Django app files by @LianaHarris360 in #14066
- Add courses_exist to the coach's plugin_data by @AlexVelezLl in #14068
Developer Tooling
- Add ESLint rule to validate translator key destructuring by @rtibbles in #13932
- LFS File pre-commit check by @rtibbles in #13947
- Add comprehensive documentation for URL namespacing by @rtibbles in #13863
- Add documentation about plugin enabling on pex by @rtibbles in #13948
Changed
Performance & Build
- Reduce JS production build size by ~25% by @rtibbles in #13912
- Update KDS to 5.5.0 by @MisRob in #13999
- Update H5P JavaScript library by @learning-equality-bot[bot] in #13993
- remove varchar_pattern_ops index by @ozer550 in #14076
Tech debt / refactors
- Removes the paginatedListContainerWithBackend by @AllanOXDi in #13871
- Migrate from assets/src to frontend by @rtibbles in #14009
- Update .git-blame-ignore-revs for frontend migration changes by @rtibbles in #14011
Python 2.7 Cleanup
- Remove Python 2.7 legacy: hasattr(output, 'decode') runtime checks by @AadarshM07 in #13915
- Remove Python 2.7: Replace mkdirp() with os.makedirs() by @AadarshM07 in #13927
- Remove Python 2.7 legacy: Simplify OSError/IOError exception by @AadarshM07 in #13943
- Refactor replace replace() with os.replace() by @AadarshM07 in #13949
- Remove Python 2.7 legacy: Remove lru_cache backport by @Prashant-thakur77 in #13952
- Remove Python 2.7 legacy: Update JSONDecodeError exception handling by @Prashant-thakur77 in #13950
- Remove Python 2.7: Simple syntax and import cleanups by @AadarshM07 in #13955
- Update super calls python3 by @Prashant-thakur77 in #13984
- Remove Python 2.7 FileNotFoundError compatibility shims by @rtibbles in #13985
New Contributors
- @AadarshM07 made their first contribution in #13915
- @Prashant-thakur77 made their first contribution in #13952
Full Changelog:
v0.19.0...v0.19.1-rc0
v0.19.1-beta0
QA Guidance
1. All Content Viewers
What to test: Every content type renderer (HTML5, H5P, BloomPUB, video, audio, PDF, ePub, Perseus, slideshow, QTI)
What to look for: JavaScript errors, broken interactions, content failing to load, performance differences
Why: Webpack bundling changes re-enabled Terser mangling and changed how core-js polyfills are loaded in the sandbox. These affect all compiled JavaScript.
- 6a4c0c4 - Webpack bundle size optimizations (mangling re-enabled)
- de9ac92 - Fix core-js duplication in viewer bundles
- 54eb476 - H5P JavaScript library update
2. Application Startup & Navigation
What to test: Initial page load, navigation menu population
What to look for: Delayed or missing navigation items, flash of untranslated content, race conditions on slow connections
Why: i18n setup is now async with lazy-loaded locale data. Navigation component registration is deferred until i18n completes. This changes the timing of when the app becomes fully interactive.
- 2eb1fba - Lazy load all intl and vue-intl locale files, defer nav component registration
3. Internationalization Across the App
What to test: Non-English languages, RTL languages, language switching
What to look for: Missing translations, layout breaks in RTL, errors when switching languages
Why: The entire i18n initialization flow was refactored from synchronous to asynchronous. Any code that assumed translations were immediately available could break.
- 2eb1fba - Lazy load all intl and vue-intl locale files
4. Channel Import
What to test: Import channels from various sources
What to look for: Import failures, missing metadata post-import
Why: Channel import now includes modality annotation step. The annotation uses options__contains JSON string matching.
- 3458d8f - Annotate modality field on upgrade and channel import flows
v0.19.0
High level overview
Release 0.19.0 updates user management capabilities to make it easier for administrators to manage user accounts. The changes reduce the number of repetitive tasks required for class enrollment and unenrollment of learners, and general account management. This makes both setting up new programs and and year-over-year user management simpler and more efficient.
Added
New Feature: User Management
Administrators can now perform actions on multiple users at once, reducing the time needed to manage users at scale. Key workflows include:
- Bulk user selection and actions: Allows admins to select multiple users and apply actions to all of them at once, including enrollment, removal from classes, and deletion
- Copy classes: Admins can now copy classes of learners and coaches
- Learner-only device management: Allow admins to remove learner-only devices users from a device and import them outside of the setup wizard workflow
- Improved user creation workflow Admins can now enroll a user in one or more classes during user account creation
List of supporting PRs
- [WIP] Added Sorting facility to Users KTable by @BabyElias in #13393
- Implement all_objects manager class in FacilityUser by @ozer550 in #13433
- Bulk User Management strings by @nucleogenesis in #13424
- Selectable list by @AlexVelezLl in #13460
- Implement soft delete users in bulk by @ozer550 in #13483
- Bulk User: Strings fixes w/ ICU + add Class copy strings by @nucleogenesis in #13466
- Insert checkbox column in Facility > Users KTable to allow user selection by @AllanOXDi in #13479
- Improved Object Validations with New ValidateObject by @Abhishek-Punhani in #13301
- Deleted facilityuser viewset by @AlexVelezLl in #13502
- Update Fundamental routing & data architecture for users page by @LianaHarris360 in #13515
- Manage users in LOD by @AlexVelezLl in #12228
- BUM SidePanel: Implement Enroll (learners) to classes functionality by @LianaHarris360 in #13544
- Introduce copy class functionality by @AllanOXDi in #13517
- BUM: Improved user creation by @AlexVelezLl in #13538
- Setup bulk user action buttons on the Facility Users page by @AllanOXDi in #13513
- Implement repeating cleanup task for hard-deleting expired soft-deleted FacilityUsers by @ozer550 in #13591
- Disable class copy submission if class name is empty by @LianaHarris360 in #13607
- Remove class title in favour of class name in class copy form by @AllanOXDi in #13617
- sorts class names in the dropdown menu alphabetically by @AllanOXDi in #13616
- Add user type column to csv logs export by @AlexVelezLl in #13624
- [BUM] Add filters side panel by @AlexVelezLl in #13608
- Implement move to trash side panel by @AlexVelezLl in #13600
- BUM SidePanel: Implement remove users from classes side panel functionality by @LianaHarris360 in #13651
- Add removed users page by @AlexVelezLl in #13650
- Fix error when deleting a single user in UsersTable by @LianaHarris360 in #13655
- BUM SidePanel: Implement Assign (coaches) to classes functionality by @ozer550 in #13614
- Update copy class to include learners and move from SidePanelModal to KModal by @LianaHarris360 in #13665
- Remove white spaces from formfields by @AllanOXDi in #13606
- Refactor undo actions + consistent go back and close confirmation guards by @AlexVelezLl in #13674
- Fix scroll users page by @AlexVelezLl in #13671
- Fix LOD user management server sync interruptions by @LianaHarris360 in #13695
- Move auth methods to the useUser composable by @AlexVelezLl in #13704
- Fixes the remove icon enabled when a super admin is selected by @AllanOXDi in #13700
- Resolve error when re-enrolling the same user in multiple classes by @LianaHarris360 in #13681
- Fixes the deletion of super admin by admin user. by @AllanOXDi in #13666
- Uncenter dropdown options within Users Table by @LianaHarris360 in #13741
- Fix users reload after soft-deleting a user by @AlexVelezLl in #13739
- Update bulk action icons to need only one TAB press for keyboard navigation by @LianaHarris360 in #13755
- Standarize side panels styles by @AlexVelezLl in #13763
- Handle deletion of coach from the assigned classes by @AllanOXDi in #13652
- Fixes selected users clearing before an action is completed by @AllanOXDi in #13701
- Can copy (or rename or delete) on ClassEditPage as well by @nucleogenesis in #13771
- User Table Style Updates by @nucleogenesis in #13743
- Allow class search to match text anywhere in the string by @LianaHarris360 in #13773
- Remove unused modal by @AlexVelezLl in #13788
- Add empty messages on classes lists by @AlexVelezLl in #13785
- [Bulk User]: Handle bad-data errors w/
handleApiError(+ better side panel refresh handling) by @nucleogenesis in #13769 - Filter out soft deleted users from lessons, quizzes and groups by @AlexVelezLl in #13806
- Prototyping User Table Design Updates by @nucleogenesis in #13808
- [Copy a class]: Use vuex getter for facility-aware redirection by @nucleogenesis in #13858
- [BUM Side Panel]: Fix hidden android side panels by @nucleogenesis in #13855
- have copy learners in copy class workflow set to true by default by @marcellamaki in #13864
- Refactor UsersTableToolbar by @AlexVelezLl in #13862
- Updates empty filter state messaging by @AllanOXDi in #13762
- Manually cherry-picked rebasing of @AllanOXDi 's
filtersupdatebranch #13830 by @nucleogenesis in #13860 - Fixes Bulk User Creation Failed prop console error by @AllanOXDi in #13830
- Fix CopyClassModal handle removed coaches by @nucleogenesis in #13879
- Robustly clear sessions on user deletion to cause immediate logout by @rtibbles in #13757
Noteworthy technical updates include upgrading to Node.js v20, upgrading to Morango for improved sync reliability, implementing SQLite transaction improvements for better performance, and adding Django-silk support for development performance profiling.
Other technical additions include upgrading Morango for improved sync performance, implementing load testing framework for learner interactions, and finalizing JS package renaming and migration in the packages directory.
List of supporting PRs
Changed
Code cleanup and refactoring.
v0.19.0-rc1
0.19.0
High level overview
Release 0.19.0 updates user management capabilities that make it easier for administrators to manage users. The changes reduce the number of repetitive tasks required for class enrollment and unenrollment of learners, and general user account management. This makes both setting up new programs and and year-over-year user management simpler and more efficient.
Additionally, this release upgrades to node v20.
Added
New Feature: Bulk User Management
Administrators can now perform actions on multiple users at once, reducing the time needed to manage users at scale. Key workflows include:
- Bulk user selection and actions: Allows admins to select multiple users and apply actions to all of them at once, including enrollment, removal from classes, and deletion
- Copy classes: Admins can now copy classes of learners and coaches
- Learner-only device management: Allow admins to remove learner-only devices users from a device and import them outside of the setup wizard workflow
- Improved user creation workflow Admins can now enroll a user in one or more classes during user account creation
List of supporting PRs
- [WIP] Added Sorting facility to Users KTable by @BabyElias in #13393
- Implement all_objects manager class in FacilityUser by @ozer550 in #13433
- Bulk User Management strings by @nucleogenesis in #13424
- Selectable list by @AlexVelezLl in #13460
- Implement soft delete users in bulk by @ozer550 in #13483
- Bulk User: Strings fixes w/ ICU + add Class copy strings by @nucleogenesis in #13466
- Insert checkbox column in Facility > Users KTable to allow user selection by @AllanOXDi in #13479
- Improved Object Validations with New ValidateObject by @Abhishek-Punhani in #13301
- Deleted facilityuser viewset by @AlexVelezLl in #13502
- Update Fundamental routing & data architecture for users page by @LianaHarris360 in #13515
- Manage users in LOD by @AlexVelezLl in #12228
- BUM SidePanel: Implement Enroll (learners) to classes functionality by @LianaHarris360 in #13544
- Introduce copy class functionality by @AllanOXDi in #13517
- BUM: Improved user creation by @AlexVelezLl in #13538
- Setup bulk user action buttons on the Facility Users page by @AllanOXDi in #13513
- Implement repeating cleanup task for hard-deleting expired soft-deleted FacilityUsers by @ozer550 in #13591
- Disable class copy submission if class name is empty by @LianaHarris360 in #13607
- Remove class title in favour of class name in class copy form by @AllanOXDi in #13617
- sorts class names in the dropdown menu alphabetically by @AllanOXDi in #13616
- Add user type column to csv logs export by @AlexVelezLl in #13624
- [BUM] Add filters side panel by @AlexVelezLl in #13608
- Implement move to trash side panel by @AlexVelezLl in #13600
- BUM SidePanel: Implement remove users from classes side panel functionality by @LianaHarris360 in #13651
- Add removed users page by @AlexVelezLl in #13650
- Fix error when deleting a single user in UsersTable by @LianaHarris360 in #13655
- BUM SidePanel: Implement Assign (coaches) to classes functionality by @ozer550 in #13614
- Update copy class to include learners and move from SidePanelModal to KModal by @LianaHarris360 in #13665
- Remove white spaces from formfields by @AllanOXDi in #13606
- Refactor undo actions + consistent go back and close confirmation guards by @AlexVelezLl in #13674
- Fix scroll users page by @AlexVelezLl in #13671
- Fix LOD user management server sync interruptions by @LianaHarris360 in #13695
- Move auth methods to the useUser composable by @AlexVelezLl in #13704
- Fixes the remove icon enabled when a super admin is selected by @AllanOXDi in #13700
- Resolve error when re-enrolling the same user in multiple classes by @LianaHarris360 in #13681
- Fixes the deletion of super admin by admin user. by @AllanOXDi in #13666
- Uncenter dropdown options within Users Table by @LianaHarris360 in #13741
- Fix users reload after soft-deleting a user by @AlexVelezLl in #13739
- Update bulk action icons to need only one TAB press for keyboard navigation by @LianaHarris360 in #13755
- Standarize side panels styles by @AlexVelezLl in #13763
- Handle deletion of coach from the assigned classes by @AllanOXDi in #13652
- Fixes selected users clearing before an action is completed by @AllanOXDi in #13701
- Can copy (or rename or delete) on ClassEditPage as well by @nucleogenesis in #13771
- User Table Style Updates by @nucleogenesis in #13743
- Allow class search to match text anywhere in the string by @LianaHarris360 in #13773
- Remove unused modal by @AlexVelezLl in #13788
- Add empty messages on classes lists by @AlexVelezLl in #13785
- [Bulk User]: Handle bad-data errors w/
handleApiError(+ better side panel refresh handling) by @nucleogenesis in #13769 - Filter out soft deleted users from lessons, quizzes and groups by @AlexVelezLl in #13806
- Prototyping User Table Design Updates by @nucleogenesis in #13808
- [Copy a class]: Use vuex getter for facility-aware redirection by @nucleogenesis in #13858
- [BUM Side Panel]: Fix hidden android side panels by @nucleogenesis in #13855
- have copy learners in copy class workflow set to true by default by @marcellamaki in #13864
- Refactor UsersTableToolbar by @AlexVelezLl in #13862
- Updates empty filter state messaging by @AllanOXDi in #13762
- Manually cherry-picked rebasing of @AllanOXDi 's
filtersupdatebranch #13830 by @nucleogenesis in #13860 - Fixes Bulk User Creation Failed prop console error by @AllanOXDi in #13830
- Fix CopyClassModal handle removed coaches by @nucleogenesis in #13879
- Robustly clear sessions on user deletion to cause immediate logout by @rtibbles in #13757
Noteworthy technical updates include upgrading to Node.js v20, upgrading to Morango for improved sync reliability, implementing SQLite transaction improvements for better performance, and adding Django-silk support for development performance profiling.
Other technical additions include upgrading Morango for improved sync performance, implementing load testing framework for learner interactions, and finalizing JS package renaming and migration in the packages directory.
List of supporting PRs
Changed
- BREAKING CHANGE - Node.js has been upgraded from v18 to v20.
Additional changes are code cleanup and non-breaking refactoring.
Supporting PRs
- Upgrade Node.js from v18 to v20 by @rtibbles in #13531
- Remove vestigial is_facility_user flag in favour of standard Django user properties by @rtibbles in https://github.com/lear...
v0.19.0-rc0
0.19.0
High level overview
Release 0.19.0 updates user management capabilities that make it easier for administrators to manage users. The changes reduce the number of repetitive tasks required for class enrollment and unenrollment of learners, and general user account management. This makes both setting up new programs and and year-over-year user management simpler and more efficient.
Additionally, this release upgrades to node v20.
Added
New Feature: Bulk User Management
Administrators can now perform actions on multiple users at once, reducing the time needed to manage users at scale. Key workflows include:
- Bulk user selection and actions: Allows admins to select multiple users and apply actions to all of them at once, including enrollment, removal from classes, and deletion
- Copy classes: Admins can now copy classes of learners and coaches
- Learner-only device management: Allow admins to remove learner-only devices users from a device and import them outside of the setup wizard workflow
- Improved user creation workflow Admins can now enroll a user in one or more classes during user account creation
List of supporting PRs
- [WIP] Added Sorting facility to Users KTable by @BabyElias in #13393
- Implement all_objects manager class in FacilityUser by @ozer550 in #13433
- Bulk User Management strings by @nucleogenesis in #13424
- Selectable list by @AlexVelezLl in #13460
- Implement soft delete users in bulk by @ozer550 in #13483
- Bulk User: Strings fixes w/ ICU + add Class copy strings by @nucleogenesis in #13466
- Insert checkbox column in Facility > Users KTable to allow user selection by @AllanOXDi in #13479
- Improved Object Validations with New ValidateObject by @Abhishek-Punhani in #13301
- Deleted facilityuser viewset by @AlexVelezLl in #13502
- Update Fundamental routing & data architecture for users page by @LianaHarris360 in #13515
- Manage users in LOD by @AlexVelezLl in #12228
- BUM SidePanel: Implement Enroll (learners) to classes functionality by @LianaHarris360 in #13544
- Introduce copy class functionality by @AllanOXDi in #13517
- BUM: Improved user creation by @AlexVelezLl in #13538
- Setup bulk user action buttons on the Facility Users page by @AllanOXDi in #13513
- Implement repeating cleanup task for hard-deleting expired soft-deleted FacilityUsers by @ozer550 in #13591
- Disable class copy submission if class name is empty by @LianaHarris360 in #13607
- Remove class title in favour of class name in class copy form by @AllanOXDi in #13617
- sorts class names in the dropdown menu alphabetically by @AllanOXDi in #13616
- Add user type column to csv logs export by @AlexVelezLl in #13624
- [BUM] Add filters side panel by @AlexVelezLl in #13608
- Implement move to trash side panel by @AlexVelezLl in #13600
- BUM SidePanel: Implement remove users from classes side panel functionality by @LianaHarris360 in #13651
- Add removed users page by @AlexVelezLl in #13650
- Fix error when deleting a single user in UsersTable by @LianaHarris360 in #13655
- BUM SidePanel: Implement Assign (coaches) to classes functionality by @ozer550 in #13614
- Update copy class to include learners and move from SidePanelModal to KModal by @LianaHarris360 in #13665
- Remove white spaces from formfields by @AllanOXDi in #13606
- Refactor undo actions + consistent go back and close confirmation guards by @AlexVelezLl in #13674
- Fix scroll users page by @AlexVelezLl in #13671
- Fix LOD user management server sync interruptions by @LianaHarris360 in #13695
- Move auth methods to the useUser composable by @AlexVelezLl in #13704
- Fixes the remove icon enabled when a super admin is selected by @AllanOXDi in #13700
- Resolve error when re-enrolling the same user in multiple classes by @LianaHarris360 in #13681
- Fixes the deletion of super admin by admin user. by @AllanOXDi in #13666
- Uncenter dropdown options within Users Table by @LianaHarris360 in #13741
- Fix users reload after soft-deleting a user by @AlexVelezLl in #13739
- Update bulk action icons to need only one TAB press for keyboard navigation by @LianaHarris360 in #13755
- Standarize side panels styles by @AlexVelezLl in #13763
- Handle deletion of coach from the assigned classes by @AllanOXDi in #13652
- Fixes selected users clearing before an action is completed by @AllanOXDi in #13701
- Can copy (or rename or delete) on ClassEditPage as well by @nucleogenesis in #13771
- User Table Style Updates by @nucleogenesis in #13743
- Allow class search to match text anywhere in the string by @LianaHarris360 in #13773
- Remove unused modal by @AlexVelezLl in #13788
- Add empty messages on classes lists by @AlexVelezLl in #13785
- [Bulk User]: Handle bad-data errors w/
handleApiError(+ better side panel refresh handling) by @nucleogenesis in #13769 - Filter out soft deleted users from lessons, quizzes and groups by @AlexVelezLl in #13806
- Prototyping User Table Design Updates by @nucleogenesis in #13808
- [Copy a class]: Use vuex getter for facility-aware redirection by @nucleogenesis in #13858
- [BUM Side Panel]: Fix hidden android side panels by @nucleogenesis in #13855
- have copy learners in copy class workflow set to true by default by @marcellamaki in #13864
- Refactor UsersTableToolbar by @AlexVelezLl in #13862
- Updates empty filter state messaging by @AllanOXDi in #13762
- Manually cherry-picked rebasing of @AllanOXDi 's
filtersupdatebranch #13830 by @nucleogenesis in #13860 - Fixes Bulk User Creation Failed prop console error by @AllanOXDi in #13830
- Fix CopyClassModal handle removed coaches by @nucleogenesis in #13879
- Robustly clear sessions on user deletion to cause immediate logout by @rtibbles in #13757
Noteworthy technical updates include upgrading to Node.js v20, upgrading to Morango for improved sync reliability, implementing SQLite transaction improvements for better performance, and adding Django-silk support for development performance profiling.
Other technical additions include upgrading Morango for improved sync performance, implementing load testing framework for learner interactions, and finalizing JS package renaming and migration in the packages directory.
List of supporting PRs
Changed
- BREAKING CHANGE - Node.js has been upgraded from v18 to v20.
Additional changes are code cleanup and non-breaking refactoring.
Supporting PRs
- Upgrade Node.js from v18 to v20 by @rtibbles in #13531
- Remove vestigial is_facility_user flag in favour of standard Django user properties by @rtibbles in https://github.com/lear...
v0.19.0-beta2
QA List
🎉 At this point, we are ready to begin critical workflows and integration testing! 🎉
As we've done recent years, we'll be using our somewhat-consolidated testing matrix that includes critical workflows on each OS version, but full integration only once per browser as a whole for each OS.
As an example:
- critical workflows on Windows 7, 10 and 11.
- full integration once each on Firefox, Chrome and Edge
So, in other words, no need to do full integration on Firefox on Windows 7, Firefox on Windows 10, Firefox on Windows 11, and then repeat on Chrome and Edge.
This allows us to confirm that our most essential tasks work on all of our supported OS versions, but not spend too much time worrying about browser-specific bug, which tend to be frontend bugs in the browser itself, not in Kolibri, that we wouldn't be able to easily address.
What's Changed
- Add always on support for Django-silk in development. by @rtibbles in #13807
- [Copy a class]: Use vuex getter for facility-aware redirection by @nucleogenesis in #13858
- Check unusable device on user_auth plugin by @AlexVelezLl in #13759
- [BUM Side Panel]: Fix hidden android side panels by @nucleogenesis in #13855
- have copy learners in copy class workflow set to true by default by @marcellamaki in #13864
- Refactor UsersTableToolbar by @AlexVelezLl in #13862
- Gherkin scenarios updates for Kolibri 0.19 by @pcenov in #13647
- Updates empty filter state messaging by @AllanOXDi in #13762
- Manually cherry-picked rebasing of @AllanOXDi 's
filtersupdatebranch #13830 by @nucleogenesis in #13860 - shows error message immediately the token entered fails by @AllanOXDi in #13870
- options button remain active after selection by @AllanOXDi in #13838
- Add load testing framework for learner lesson interactions. by @rtibbles in #13856
- Fixes Bulk User Creation Failed prop console error by @AllanOXDi in #13830
- Finalize the renaming and migration of JS packages in the packages directory by @rtibbles in #13869
- Robustly clear sessions on user deletion to cause immediate logout by @rtibbles in #13757
- Fix CopyClassModal handle removed coaches by @nucleogenesis in #13879
- Remove vestigial is_facility_user flag in favour of standard Django user properties by @rtibbles in #13857
- Use BEGIN IMMEDIATE for all SQLite transactions by default by @rtibbles in #13878
- Cleanup unused dependencies for kolibri-tools by @rtibbles in #13877
Dependencies
- Bump @testing-library/jest-dom from 6.6.4 to 6.9.1 by @dependabot[bot] in #13815
- Bump core-js from 3.45.1 to 3.46.0 by @dependabot[bot] in #13835
- Bump dompurify from 3.2.7 to 3.3.0 by @dependabot[bot] in #13836
- Bump katex from 0.16.22 to 0.16.25 by @dependabot[bot] in #13831
- Bump webpack from 5.102.0 to 5.102.1 by @dependabot[bot] in #13814
- Bump min-document from 2.19.0 to 2.19.1 by @dependabot[bot] in #13881
- Bump the github group across 1 directory with 4 updates by @dependabot[bot] in #13876
Full Changelog: v0.19.0-beta1...v0.19.0-beta2
v0.19.0-beta1
What's Changed
QA Review List
Regression testing bulk user behavior
The following has made substantial changes to the look & feel of the bulk user management table. Please test all bulk action workflows on:
- Android app
- Mobile screens (portrait orientation)
- Tablet screens & larger
- Prototyping User Table Design Updates by @nucleogenesis in #13808
Fixes & updates
- Allow class search to match text anywhere in the string by @LianaHarris360 in #13773
- Remove unused modal by @AlexVelezLl in #13788
- Add empty messages on classes lists by @AlexVelezLl in #13785
- [HTML5 Article Renderer] Add lightbox functionality for images by @WinnyChang in #13639
- Morango upgrade and sync queue tweaks by @rtibbles in #13774
- Unwrapped strings rule by @rtibbles in #13787
- QTI Survey fixes by @rtibbles in #13791
- bump version by @marcellamaki in #13796
- Add funding.json manifest to Kolibri for submission to FLOSS fund by @bjester in #13805
- Update changelog by @marcellamaki in #13809
- 0.18 into develop by @rtibbles in #13811
- Update from target repository commit by @learning-equality-bot[bot] in #13837
- [Bulk User]: Handle bad-data errors w/
handleApiError(+ better side panel refresh handling) by @nucleogenesis in #13769 - Update build docs by @rtibbles in #13789
- Filter out soft deleted users from lessons, quizzes and groups by @AlexVelezLl in #13806
Dependency updates
- Bump dompurify from 3.2.6 to 3.2.7 by @dependabot[bot] in #13776
- Bump iso8601-duration from 2.1.2 to 2.1.3 by @dependabot[bot] in #13775
- Bump jest-environment-jsdom from 30.1.2 to 30.2.0 by @dependabot[bot] in #13797
- Bump babel-jest from 30.1.2 to 30.2.0 by @dependabot[bot] in #13798
- Bump webpack from 5.101.3 to 5.102.0 by @dependabot[bot] in #13800
- Bump typescript from 5.9.2 to 5.9.3 by @dependabot[bot] in #13802
- Bump jest from 30.1.3 to 30.2.0 by @dependabot[bot] in #13801
Full Changelog: v0.19.0-beta0...v0.19.0-beta1
v0.18.4
What's Changed
- Remove unneeded post-approval BCK upload by @rtibbles in #13756
- QTI Survey fixes by @rtibbles in #13791
- bump version by @marcellamaki in #13796
- Update changelog by @marcellamaki in #13809
Full Changelog: v0.18.3...v0.18.4
v0.18.4-rc0
What's Changed
- Remove unneeded post-approval BCK upload by @rtibbles in #13756
- QTI Survey fixes by @rtibbles in #13791
- bump version by @marcellamaki in #13796
QA Guidance: Survey Fixes
- Create a NEW survey (since we also made changes in Studio, the existing version of the channel shared with the token will not have the necessary changes in it). The survey should have a free-response question (non-numeric).
- Import the survey in Kolibri. Learners should be able to enter free responses, and have their responses saved and viewable through the survey report.
Numeric input questions with multiple answers in a survey that also contains free response questions is not resolved in the scope of this patch release
Full Changelog: v0.18.3...v0.18.4-rc0