Skip to content

v0.18.0

Compare
Choose a tag to compare
@marcellamaki marcellamaki released this 28 Apr 14:49
8f078e7

0.18.0

High level overview

Release 0.18.0 introduces improvements and new features in the Coach experience to make it easier to find materials when creating a lesson or quiz.

Added

New Feature: Coaches can now use metadata filtering when creating lessons and quizzes

Updates to lessons and quizzes help coaches find what they need faster. Coaches can use filters like activity type (video, audio, reading materials), language, level, category (school subjects, vocational materials), and more. By combining a variety of filters, coaches can quickly locate specific and relevant materials they need.

Additional new workflows

  • The navigation in coach is updated and simplified. Pages are now organized around "Lessons" and "Quizzes", rather than "Reports" and "Plan", making it easier to quickly find the relevant lesson and quiz pages. Some pages also have additional information and interactions added.
  • Coaches have updated quiz creation options. They can choose to have Kolibri create a quiz for them from selected exercises, or they can choose specific questions from their available resources.
  • Bloom player is now supported in Kolibri.
  • Coaches can choose when to make quiz reports available to learners.

Noteworthy technical updates include rearchitecting our Coach plugin pages to support the navigation updates, extending the routing structure in coach to use nested routes and a side-panel style UX in lessons, and upgrading KDS to provide a variety of bug fixes and introduce the new KCard component.

List of supporting PRs

Other technical additions include adding file storage option, allowing plugins to be enabled/disabled/applied via env vars, allowing studio URLs to be created as network locations, and the implementation of a task polling composable.

List of key PRs

Changed

Kolibri JS Public API - BREAKING CHANGES

  • BREAKING CHANGE - Large parts of the JS Public API have now been removed. For a complete specification of the current public API see the kolibri npm package.
  • BREAKING CHANGE - Only the TaskResource is now available as a public resource within the JS API. All other API endpoints, aside from those namespaced as 'public' are considered internal and using them is not supported.
  • All previously public code has either been deleted, or is in the unpublished kolibri-common package in the repository. If you need to continue using any of this code, it is recommended to vendor and modify.
List of key PRs related to public API and refactoring
  • Consolidate content node utilities into kolibri-common. by @rtibbles in #12699
  • Fix import path error in kolibri-tools migrate core API functionality by @rtibbles in #13031
  • JS Public API Update by @rtibbles in #12722
  • Add pre-commit hook to prevent references to kolibri-common package in published packages by @rtibbles in #12891
  • Move core channel state into coach - the only place it is still used. by @rtibbles in #12574
  • Move core module registration out of the core store module. by @rtibbles in #12573
  • Move language object sorting and comparison utilities into core i18n module by @rtibbles in #12602
  • Move navroute generation into usenav composable. by @rtibbles in #12701
  • Move renderer suffix into core constants. by @rtibbles in #12700
  • Moved core notifications handling into NotificationsRoot component by @iamshobhraj in #12644
  • Remove unneeded TotalPoints component from core API. by @rtibbles in #12600
  • Remove CoreSnackbar from core API. by @rtibbles in #12627
  • Use webpack's built in dynamic public path setting by @rtibbles in #12848

Other important technical updates include:

  • upgrading to Vue 2.7
  • Python 3.13
  • making linting a standalone package
Other changes include: - Don't allow any learn subnavigation if the user isn't logged in. by @rtibbles in https://github.com//pull/13287 - Pin python version to 3.11 for node-gyp support. by @rtibbles in https://github.com//pull/12984 - Update pre-commit for python 3.12 by @jredrejo in https://github.com//pull/12677 - Upgrade dependencies and test matrix for Python 3.13. by @rtibbles in https://github.com//pull/12746 - Upgrade kds v5.0.0 by @marcellamaki in https://github.com//pull/13098 - Upgrade to vue2.7 and remove @vue/composition-api. by @rtibbles in https://github.com//pull/12933 - Use explicit Python version to suppress warning by @rtibbles in https://github.com//pull/12802

Fixed

Content renderer updates and fixes

List of supporting PRs

Miscellaneous small improvements and fixes

List of supporting PRs

Developer-facing improvements

In this release are also changes that support our use of Github actions in the Kolibri repo, making it easier to engage with our open source community, as well as documentation updates, release process improvements, and developer tooling improvements.

List of supporting PRs
  • Use notify_team_new_comment workflow action from .github repo by @rparadowski in #12900
  • Use kolibri-image-pi repo for building raspberry pi image. by @rtibbles in #12869
  • Add required sanity check flags to ensure deletion of testpypi artifacts by @rtibbles in #12978
  • Adds loose pinning of dev docs requirements to ensure correct builds … by @benjaoming in #12466
  • Create github action for automatically cleaning up test pypi. by @rtibbles in #12905
  • Developer documentation updates by @MisRob in #12849
  • Docs: Remove legacy stuff from conf.py by @benjaoming in #12563
  • feat: add community contribution labeling workflow by @iamshobhraj in #13128
  • Feat: added update-spreadsheet action by @GarvitSinghal47 in #12866
  • Final fix to update the AUTHORS for new contributors by @thesujai in #12689
  • Make linting a standalone package by @rtibbles in #12847
  • Make no unused properties checking maximally strict by @rtibbles in #12910
  • Reactivate PR Size labels by @rtibbles in #12811
  • Remove 'pull_request_review' event from the community contributions spreadsheet action by @MisRob in #12950
  • Remove custom eslint rules that are redundant with eslint-plugin-vue rules. by @rtibbles in #12757
  • Turn off gcloudignore parsing as we do not have one, to suppress warnings by @rtibbles in #12803
  • unassign inactive users action by @SukhvirKooner in #13275
  • Update all jobs to avoid ubuntu-20.04 image removal by @rtibbles in #13163
  • Update contact information in the contributing guidelines by @MisRob in #13139
  • Update eslint-plugin-kolibri version. by @rtibbles in #12899
  • Update linting to properly distinguish between warnings and errors. by @rtibbles in #13113
  • Update mappings for theme updates for newly introduced tokens made by @rtibbles in #12765
  • Update obsolete email in the developer documentation by @MisRob in #13202
  • Update our sqlalchemy schema generation to not include constraints by @rtibbles in #13161
  • Update repository information for all npm packages that will be published. by @rtibbles in #12903
  • Update the pretranslate so that it works correctly with the API by @marcellamaki in #13279
  • Update windows installer to prevent errors from long paths by @rtibbles in #13236

Dependencies

List of supporting PRs

New Contributors

Full Changelog: v0.17.5...v0.18.0