Releases: learningequality/studio
v2025.10.06
What's Changed
- Fix validation to allow upload of HTML5 files by @rtibbles in #5418
- When creating exercises, default randomize to true as data. by @rtibbles in #5427
Full Changelog: v2025.9.29...v2025.10.06
v2025.9.29
What's Changed
High level overview
This major release includes:
- a closed beta for recommendations when importing content from other channels in Studio
- support for QTI exercise export
- foundational technical work for a new Rich Text Editor (not yet available to users in the UI)
- foundational technical work for a staging/draft channel publishing experience (not yet available to users in the UI)
- contributions towards the Open Source Community project "Remove Vuetify from Studio"
- numerous bug fixes, optimizations, and improvements
Supporting PRs for Recommendations and Feedback Mechanism
- Welcome Embeddings 🚀 by @vkWeb in #4322
- Allow docker build on push to
search-recommendationsby @bjester in #4499 - Core functionality of
connectandmake_requestmethods onBackendclass by @AlexVelezLl in #4494 - Embed topics and content logic by @akolson in #4588
- Extract content urls by @akolson in #4604
- Update
search-recommendationswith the latest fromunstableby @akolson in #4848 - Updates kds breaking changes by @akolson in #4842
- Merge down hotfixes into unstable by @bjester in #4853
- Update
search-recommendationswith the latest code changes by @akolson in #4856 - Implement recommendations display by @akolson in #4803
- String fixes from UX writing review by @marcellamaki in #5364
- Add initial pass of translations (Spanish) for QA team review by @marcellamaki in #5365
- Add locales for search recommendations beta by @marcellamaki in #5383
- Fixes missing scheme error when hitting recommendations API by @akolson in #5056
- Implement recommendation feedback utilities by @ozer550 in #5055
- Handle port default for CA API-- port 8000 by @bjester in #5071
- Search recommendations strings by @marcellamaki in #5357
- Add thumbnail placeholder to recommendation card by @bjester in #5261
- Search recommendations branch cleanups by @akolson in #5015
- Revamp content file mgt by @akolson in #4872
- Adds go to navigation to recommended resource card popout icon by @akolson in #5016
- Updates pillow version by @akolson in #5002
- Search recs unstable merger by @akolson in #5005
- Search recommendations Feature by @akolson in #5014
- Fixes unprocessed SASS expression in Thumbnail by @akolson in #5147
- More tweaks from #5014 review by @akolson in #5020
- Fixes the recommended resource card title duplication by @akolson in #5126
- Gherkin scenarios updates and corrections by @pcenov in #4902
- Add defensiveness against missing language for recommendations by @bjester in #5125
- Clean up recently ran migrations by @ozer550 in #4778
Supporting PRs for Dev Experience, Automations, QoL, Environment/Build
- Remove studio PR template in favor of org template. by @marcellamaki in #4823
- Remove use of deprecated set-output, use pre-commit lite action instead by @rtibbles in #4806
- Use notify_team_new_comment workflow action from .github repo by @rparadowski in #4844
- Remove 'pull_request_review' event from the community contributions spreadsheet action by @MisRob in #4859
- QoL improvement for IntelliJ based IDEs by @bjester in #4858
- feat: add community contribution labeling workflow by @iamshobhraj in #4927
- Fix the action not updating some data in the contributions tracking sheet by @MisRob in #4900
- Add new local_dev_wsl guide and update host and docker guides with references to it by @GautamBytes in #4904
- Node.js 18, pnpm 8, jest 29, linting/formatting updates, and webpack fixes by @bjester in #4462
- Switch package ecosystem to npm by @bjester in #5030
- Pin node and yarn versions by @EshaanAgg in #4822
- Remove unused code and dependencies by @rtibbles in #4934
- Reinstate .styl noop replacement for production webpack builds by @bjester in #5344
- unassign inactive users by @SukhvirKooner in #4979
- Revert flake8 and re-formats python files by @akolson in #5044
- Update Minio download link in local_dev_host.md and host_setup_services.md by @GautamBytes in #4892
- Prepare transition to postgresql 16 by @bjester in #4912
- Update contact information in the contributing guidelines by @MisRob in #4932
- Update workflow that handles contributor comments to the latest version by @MisRob in #5190
- Update manage issue header workflow events by @MisRob in #5177
- Update Node.js version to 20.x by @rtibbles in #5143
- Remove stylus module replacement causing non-hot devserver to break by @bjester in #5035
- Remove custom issue templates, turn on issue header automation, reference new contributing guidelines by @MisRob in #5105
- Explicitly specify localhost as an allowed host, and add WSLIP IP in WSLEnvironments. by @rtibbles in #5134
- Approve vue-demi postinstall build by @bjester in #5070
Supporting PRs for new Rich Text Editor
- feat(texteditor): initial standalone tiptap editor component by @habibayman in #5097
- feat(texteditor): implement insertion toolbar actions by @habibayman in #5155
- Use bundler advice for including fonts for mathlive. by @rtibbles in #5196
- Make tip tap editor sandbox completely dev only by @rtibbles in #5197
Supporting PRs for Remove Vuetify from Studio
- Replace Material Icons with Kolibri Design System Icon by @SukhvirKooner in #4913
- Migrate kradiobutton usages by @akolson in #4889
- Migrate LESS styles to SCSS by @adibmbrk in #4880
- Removed unused vuetify components by @drona-gyawali in #4911
- Upgrade KDS from 5.2.0 to 5.2.1 by @MisRob in #5210
- Issue#5123 : Migrated the offline alert bar in Settings from Vuetify to Kolibri Design System. by @AadarshM07 in #5162
- Do not use hardcoded colors in 'Request more space' form by @yeshwanth235 in #5195
- Use KTransition instead of VSlideYTransition in 'Request more space' form by @yeshwanth235 in #5194
- Feedback utility functions by @akolson in #5088
- Remove old Kolibri loading gif in favour of KLogo. by @rtibbles in #5149
- [Remove Vuetify from Studio] Top-level buttons in Channels by @RONAK-AI647 in #5232
- Updated LoadingText to KCircularLoader KDS component by @yeshwanth235 in #5215
- Fix/Replace Vuetify with KDS on ‘Channel Not Found’ Page by @vtushar06 in #5242
- Upgrade KDS from 5.0.0 to 5.2.0. by @MisRob in #5108
- Updated the license info section to use the KExternalLink component for l...
v2025.05.05
What's Changed
- Remove no longer needed deploy migration by @rtibbles in #5038
- Patch release v2025.05.05 by @marcellamaki in #5045
Full Changelog: v2025.04.29...v2025.05.05
v2025.04.29
What's Changed
- Update JS constants for le-utils latest. by @rtibbles in #5027
- Patch release v2025.04.29 by @marcellamaki in #5036
Full Changelog: v2025.04.28...v2025.04.29
v2025.04.28
Bug Fixes
- Fixes a bug with first numerical inputs not saving properly when working in the question editor
- Fixes error due to undefined node details
- Fixes validation error
What's Changed
- Save numerical input answers by @akolson in #4957
- Fix node details must be defined reference error by @ozer550 in #4993
- raise rest_framework.ValidationError when lft is not an integer by @nucleogenesis in #4990
- Upgrade le-utils to 0.2.10 by @bjester in #5011
- Patch release v2025.04.28 by @marcellamaki in #5008
Full Changelog: v2025.03.05...v2025.04.28
v2025.03.05
Bug Fixes
- Fixes a long standing bug in the sync command where license_description field was not synced from imported nodes
- Reinstates the previous syncing rectification code, but targets it specifically to license_description discrepancies and rectification
- Removes the date filter, as this problem will affect any node that has ever been imported
What's Changed
- Merge down from production by @bjester in #4905
- License description rectification by @rtibbles in #4917
- Allow read of production Studio bucket by @bjester in #4926
- Swap order of backends by @bjester in #4928
- Allow access to GCS client externally by @bjester in #4929
Full Changelog: v2024.12.03...v2025.03.05
v2024.12.03
Summary
This patch release includes various bug fixes to improve the reliability and performance of Kolibri Studio.
Bug fixes
- Adds missing pagination to trash and move modal
- Adds untranslated string for IMSCP option which became visible in content edit modal
- Fixes issues editing user storage within internal admin interface
- Addresses issues cheffing a previously deleted channel
- Fixes issue where modal appeared persistently when rearranging resources in a folder that has metadata
Performance
- Addresses query performance issues when opening channels and their details
- Addresses query performance issues when processing garbage collection
- Addresses query performance issues when checking whether content for a language exists in a channel, and providing language options upon publishing a channel
- Prepares for PostgreSQL 12
What's Changed
- Ensure actor_id gets passed in case channel creation API endpoint ends up in undeleting channel by @rtibbles in #4785
- Validate UUID Format in Public API Requests to Prevent 500 Errors by @ozer550 in #4794
- Channel details modal fixes by @rtibbles in #4807
- Adds missing string(IMSCP) for HTML5 file type by @akolson in #4818
- optimize garabge collection command by @ozer550 in #4808
- cherry-pick #4778: clean up migrations by @bjester in #4821
- Revert accidental change to update as admin method. by @rtibbles in #4791
- Add pagination to every place that displays long lists of nodes from loadChildren by @rtibbles in #4810
- Update node details query to use CTE and more robust tests by @bjester in #4824
- Use CTE for server rev query, add tests by @bjester in #4826
- Add signal handler that runs postgres setting on connection created by @bjester in #4834
- Conditionalize the JIT setting by @bjester in #4835
- Fixes sorting order of trash items by @akolson in #4845
- Optimize language existant query by @bjester in #4847
- Inherit modal does not appear when sorting items in a folder with metadata by @bjester in #4849
Full Changelog: v2024.10.02...v2024.12.03
v2024.10.02
Summary
This release adds the ability to quickly edit titles, descriptions, and other metadata through a new quick edit modal, with options for both single and bulk edits. Additionally, it also includes numerous UI/UX improvements and bug fixes that enhance the overall user experience.
Enhancements
- A quick edit modal has been introduced to simplify editing titles, descriptions, and other metadata, through single or bulk edit options.
- A user is now prompted when moving content from one location to another if the metadata doesn't match.
- Pagination has been added to make browsing topics easier.
- Alphabetic sorting is now available in the topic tree.
- H5P resources can now be uploaded.
- The login password policy has been strengthened for better security.
- The channel import and publish processes have been enhanced.
- Channel imports now prevent incomplete resources from being added.
- Numerous UI/UX improvements have been made to enhance the overall experience, including:
- Admin users can now only see their channel collections.
- Multi-click submissions when creating a collection have also been restricted.
- Error reporting in the edit modal has been enhanced.
- The checkboxes, icon buttons, and icons have been improved.
- External links now have a clearer, more consistent appearance.
- Additional storage requests have been enhanced to include a subject.
- The language dropdown has been improved for better accessibility.
- Page and list scrolling have been optimized for a smoother experience.
Bug fixes
- A user can now delete an account with shared channels.
- A user can now undo the deletion of the last remaining folder or resource in a channel.
- Checkboxes are now fully accessible and display outlines when selected.
- A user is now presented with the correct folder/resource counts when moving items using the clipboard.
- A user can now save their search.
- Uploaded resources now correctly reflect their completeness state.
- The default sidebar now displays with the correct width.
- All file type strings, including the less common ones, are now translated.
- A user can now select all trash items and delete them in bulk.
- A user now sees the correct completion value for a practice quiz.
What's Changed
- Welcome AI by @vkWeb in #4283
- AppNexus - The API Layer for contentcuration by @akash5100 in #4282
- Move appnexus to automation by @akolson in #4300
- Add recommendations backend boilerplate by @akolson in #4301
- Implement Recommendations Adapter by @akolson in #4303
- Adds whisper backend by @akash5100 in #4305
- Changed the router-link tag to KrouterLink by @ShivangRawat30 in #4293
- Add CloudStorage backend boilerplate by @ozer550 in #4309
- Implements Automation Manager Class by @ozer550 in #4306
- Bump @babel/traverse from 7.18.2 to 7.23.2 by @dependabot in #4312
- Bump tibdex/github-app-token from 1 to 2 by @dependabot in #4274
- Bump tornado from 6.0.4 to 6.3.3 by @dependabot in #4254
- Bump ajv from 8.11.0 to 8.12.0 by @dependabot in #4240
- Bump django-registration from 3.3 to 3.4 by @dependabot in #4226
- Bump @adobe/css-tools from 4.2.0 to 4.3.1 by @dependabot in #4269
- Bump gevent from 21.12.0 to 23.9.1 by @dependabot in #4291
- Bump pygments from 2.7.4 to 2.15.0 by @dependabot in #4237
- Resolve Celery TaskObject Race Condition by @ozer550 in #4268
- Remove extra whitespace between icons and text in channel card menu. by @KshitijThareja in #4320
- Bump django from 3.2.19 to 3.2.23 by @dependabot in #4324
- Fix the incorrect retrieval query in return_tasks function by @ozer550 in #4333
- Fix timeout caused by nginx by @aronasorman in #4336
- Add contributing guidelines and organize developer documentation by @MisRob in #4345
- Bump @adobe/css-tools from 4.3.1 to 4.3.2 by @dependabot in #4346
- Bump axios from 1.4.0 to 1.6.2 by @dependabot in #4340
- Bump actions/setup-node from 3 to 4 by @dependabot in #4317
- Bump i18n-iso-countries from 7.6.0 to 7.7.0 by @dependabot in #4315
- Bump actions/setup-python from 4 to 5 by @dependabot in #4348
- Quick edit modal for content title and description by @AlexVelezLl in #4354
- Add GH workflow for building postgres image by @bjester in #4362
- Disable skip after success, b/c push skip on PR by @bjester in #4363
- Fix issue with image in wrong place by @bjester in #4364
- Fixes Checkbox issue 4352 on Create Account page by @cerdo03 in #4358
- Add new kebab menu items and refactor structure for quick edit modals by @AlexVelezLl in #4368
- Fix wrong computed prop name by @vkWeb in #4371
- Merge down hotfixes by @bjester in #4379
- Bump kolibri-constants from 0.1.42 to 0.2.0 by @dependabot in #4380
- Bump fonttools from 4.40.0 to 4.43.0 by @dependabot in #4388
- Bump follow-redirects from 1.15.2 to 1.15.4 by @dependabot in #4390
- Quick edit modal for content language by @AlexVelezLl in #4355
- Bump urllib3 from 1.26.14 to 1.26.18 by @dependabot in #4391
- Hotfixes --> Unstable by @vkWeb in #4393
- issue number 2074 resolved by @cerdo03 in #4350
- Update descentants changes by @AlexVelezLl in #4372
- Changed IconButton to KRouterLink by @BabyElias in #4374
- Quick edit modal to edit "what you will need" by @AlexVelezLl in #4394
- fix:scroller by @nick2432 in #4400
- Upgrade to python 3.10 by @Jovian-Dsouza in #4384
- Fix node availability when propagating import copy by @vkWeb in #4377
- Make ContentNode Menus Keyboard accessible by @AlexVelezLl in #4402
- Bump the github group with 1 update by @dependabot in #4407
- Bump core-js from 3.25.1 to 3.35.0 by @dependabot in #4396
- Bump pillow from 9.4.0 to 10.2.0 by @dependabot in #4383
- Changed components to KComponents by @BabyElias in #4398
- Improve errors reporting in edit modal by @FidalMathew in #4404
- Add quick edit modals for Boolean Maps Properties by @AlexVelezLl in #4386
- Remove unused prod dependencies by @rtibbles in #4410
- Updated Components to KComponents by @BabyElias in #4413
- double submit issue resolved by @GarvitSinghal47 in #4414
- Addressing Incorrect Topic Empty State Issue in Staging Preview by @GarvitSinghal47 in #4422
- Fix issue created by download_sigil.sh by @aronasorman in #4343
- Upgrade the unstable branch to KDS v3.0.0 by @MisRob in #4412
- update django_bulk_update with inbuilt bulk_update by @FidalMathew in #4417
- admin-panel collection error resolved by @GarvitSinghal47 in #4401
- Bump django from 3.2.23 to 3.2.24 by @dependabot in #4429
- Bump grpcio from 1.53.0 to 1.53.2 by @dependabot in #4435
- Quick edit modal to edit audience by @AlexVelezLl in #4405
- Quick edit modal to edit Source by @AlexVelezLl in #4424
- Track input modality in studio frontend apps by @AlexVelezLl in https://git...
v2024.06.04
Summary
This Studio release includes new colors, logos, and styles. This rebrand will be rolled out across our product ecosystem and communications platforms, and it will be more widely announced in the coming weeks. We hope you enjoy the new Kolibri Studio!
Enhancements
- The UI has been rebranded with the new Learning Equality theme colors
- The collection of channels related to COVID information is no longer pinned to the top of Content Library.
Bug fixes
- The misalignment of the copy failure retry action has been fixed
- Import search filters have been fixed.
- A user can now copy a resource into a clipboard when importing from other channels
- When editing a channel, a user is now able to upload content and preview it correctly.
What's Changed
- Fix misalignment of copy failure retry CTA by @KshitijThareja in #4319
- [fix] Import applied language filter by @FidalMathew in #4376
- Copies nginx proxy timeout configuration update by @bjester in #4458
- Upgrade KDS to v3 in hotfixes branch by @bjester in #4454
- Studio: Audit and fix theme token updates against KDS by @akolson in #4459
- Update welcome email with rebranded colors and logo by @bjester in #4520
- Updates Create an account logo by @akolson in #4522
- Fix hover color for red delete account button by @bjester in #4531
- Properly format node_id+channel_id query parameter by @bjester in #4530
- Adds new LE logo by @akolson in #4523
- Finalization of rebranded logos by @rtibbles in #4539
- Update favicon to have no background. by @rtibbles in #4546
- Post-rebranding update to Card hover styling by @bjester in #4549
- Explicitly configure nginx proxy settings by @bjester in #4564
- Switch back to $proxy_host by @bjester in #4568
- add spacing and hover state to channel list cards by @marcellamaki in #4574
- Remove pinned covid channel collection by @bjester in #4581
Full Changelog: v2023.09.27...v2024.06.04
v2023.09.27
Summary
This is a major release including some enhancements as well as bug fixes for issues raised since last release, and updates for Kolibri 0.16 support.
Enhancements
- Uploading H5P resources extracts metadata from the file
- Users are able to retry copy operations after a failure, including some visibility into the failure
- Restricts editing some metadata fields for imported resources
- Import search is now faster
Bug fixes
- Users now have insight into copy failures
- Auto scroll removed when adding a new exercise question
- Navigation drawer closes when choosing option to change language
- Preview of practice quiz details correctly denotes itself as a practice quiz
What's Changed
- Merge down latest hotfixes to unstable by @bjester in #4124
- Fixes error that appears in the console on drag nested resource to root by @akolson in #4150
- Prevent source edits for copied/imported resources by @akolson in #4189
- Remove public API export from 'deploy-migrate' by @bjester in #4210
- Misc smaller patch release fixes for v2023.07.05 by @bjester in #4199
- Close nav drawer when clicking to change language by @bjester in #4207
- Bump stylus-loader from 7.1.2 to 7.1.3 by @dependabot in #4129
- Bump semver from 5.7.1 to 5.7.2 by @dependabot in #4213
- Bump grpcio from 1.51.1 to 1.53.0 by @dependabot in #4192
- Bump fonttools from 4.27.1 to 4.40.0 by @dependabot in #4132
- Bump workbox-precaching from 6.5.4 to 7.0.0 by @dependabot in #4217
- Fix to ignore language settings for kolibri public APIs by @vkWeb in #4198
- Bump jest-serializer-vue from 2.0.2 to 3.1.0 by @dependabot in #4218
- Bump google-cloud-kms from 1.4.0 to 2.10.0 by @dependabot in #3887
- Bump workbox-webpack-plugin from 6.5.4 to 7.0.0 by @dependabot in #4225
- Bump locust from 2.8.6 to 2.15.1 by @dependabot in #4224
- Bump django-s3-storage from 0.13.11 to 0.14.0 by @dependabot in #4223
- Bump workbox-window from 6.5.4 to 7.0.0 by @dependabot in #4227
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #4228
- Bump attrs from 19.3.0 to 23.1.0 by @dependabot in #4230
- Empty channels publish handling by @rtibbles in #4231
- Fix bitmask filtering by multiple labels for AND rather than OR by @rtibbles in #4233
- Prevent errors when creating already existing tag through model entries. by @rtibbles in #4232
- Bump dexie from 3.2.2 to 3.2.4 by @dependabot in #4234
- Bump less-loader from 11.0.0 to 11.1.3 by @dependabot in #4235
- added text truncate in import channel dropdown by @Jaspreet-singh-1032 in #4186
- Fixes undo of copying by @vkWeb in #4244
- Merge down hotfixes into unstable by @bjester in #4245
- removed scroll on adding new question by @Jaspreet-singh-1032 in #4181
- fix ordering issue by @Jaspreet-singh-1032 in #4250
- Enhance tests and add special handling for mptt fields. by @rtibbles in #4251
- Implementation to extract metadata from H5P Content Package by @manavagr1108 in #4131
- Bump le-utils from 0.1.42 to 0.2.1 by @dependabot in #4252
- H5p finalization by @rtibbles in #4255
- New django app 'automation' for future AI features by @akash5100 in #4262
- Fixes incorrect value for Practice quiz by @akolson in #4260
- Bump actions/checkout from 3 to 4 by @dependabot in #4271
- Allow users to retry copy failures by @vkWeb in #4176
- Fix missing attributes from change objects by @vkWeb in #4278
- Super Duper Fast Import Search 🚀 by @vkWeb in #4279
- Merge unstable to hotfixes by @marcellamaki in #4270
- Fixes incorrectly truncated channel titles in 'Channel/source' and 'Language' dropdowns by @akolson in #4288
- Add instance ID to public API response by @bjester in #4298
New Contributors
- @Jaspreet-singh-1032 made their first contribution in #4186
Full Changelog: v2023.07.05...v2023.09.27