1.14.0

HumanSignal/label-studio1.14.0Nov 4, 2024by github-actions[bot]

AI Summary

Version 1.14.0 adds Video Frame Classification via the new `<TimelineLabels>` tag, supports Python 3.13, and introduces a new hotkey (Ctrl + h) to toggle region visibility. It also upgrades Django from 3 to 4.

Key Highlights

  • Video Frame Classification allows applying labels to specific video frames using the `<TimelineLabels>` tag.
  • Added support for Python 3.13 on Linux and Mac systems.
  • New `Ctrl + h` hotkey hides or shows all regions.
  • Duration of selections is now displayed under the Info tab.
  • Improved look and feel of TextArea elements in the labeling interface.

Breaking Changes

  • Dropped support for Python 3.8.
  • Upgraded Django from 3 to 4.

New Features

  • Video frame classification
  • Python 3.13 support
  • Region visibility hotkey
  • Duration display
  • TextArea UI improvements

Full Release Notes

# 🌟 What's New

## 🎉 New Features

### 🎞 Video Frame Classification

You can now apply labels to video frames. Previously, we only supported per-video classification.

This new feature allows you to apply labels at a per-frame level. You can implement this feature using a new tag: [**`<TimelineLabels>`**](https://labelstud.io/tags/timelinelabels). ([#6191](https://github.com/HumanSignal/label-studio/pull/6191))

![image](https://github.com/user-attachments/assets/1c12f737-d29d-4348-85b2-c9301b8dbc6a)

## ✅ Enhancements

- Added support for Python 3.13 on Linux and Mac systems. 

- Improved look and feel of TexArea elements in the labeling interface. ([#6413](https://github.com/HumanSignal/label-studio/pull/6413))

- A new hotkey (**Ctrl + h**) has been added. Use this shortcut to hide all regions. Or, if no regions are visible, show all regions. Special thanks to community member @LouisJULIEN for contributing this enhancement. ([#6212](https://github.com/HumanSignal/label-studio/pull/6212))

- When creating regions that have start and end times (such as when annotating sections of an audio track), you will now see the duration of your selection under the **Info** tab. Special thanks to community member @phantrung18072001 for contributing this enhancement. ([#6244](https://github.com/HumanSignal/label-studio/pull/6244))

  ![image](https://github.com/user-attachments/assets/b008c893-7f90-48ac-8b2c-2f0a059ec16a)

# 🚨 Breaking Changes

- This release drops support for Python 3.8. 

- This release also includes an upgrade from Django 3 to 4. In a future release, we will be upgrading to Django 5. For that reason, we strongly recommend that you upgrade to this release to ensure a smooth migration path to future Label Studio versions. 

# 🐞 Bug Fixes

- Fixed an issue where Redis storages were missing a field that prevented users from using Redis as Target Storage. ([#6255](https://github.com/HumanSignal/label-studio/pull/6255))

- Fixed an issue in which draft lead time could incorrectly inflate the lead time calculation for an annotation. ([#6406](https://github.com/HumanSignal/label-studio/pull/6406))

- Fixed an issue where the View All action was not working when task data had an empty value for Text fields. ([#6190](https://github.com/HumanSignal/label-studio/pull/6190))

- Fixed an issue with missing padding around TextArea regions. ([#6496](https://github.com/HumanSignal/label-studio/pull/6496))

- Fixed an issue that was causing CSRF errors when using Docker. ([#6344](https://github.com/HumanSignal/label-studio/pull/6344))

- Fixed an issue which caused the Label Config UI preview to display stale information. ([#6417](https://github.com/HumanSignal/label-studio/pull/6417))

- Fixed an issue in which clicking **Label n Tasks** with all tasks selected would not respect filters that had been applied in the Data Manager. ([#6410](https://github.com/HumanSignal/label-studio/pull/6410))

- Fixed an issue in which Data Manager drop-down menus were inaccessible in smaller viewports. ([#6426](https://github.com/HumanSignal/label-studio/pull/6426))

- Fixed a regression issue with BigInteger support in the Data Manager. ([#6328](https://github.com/HumanSignal/label-studio/pull/6328))

- Fixed an issue in which users were not able to use Quick View to load tasks that included an external taxonomy. ([#6381](https://github.com/HumanSignal/label-studio/pull/6381))

# 🏁 Feature Flag Changes

- Removed the following feature flag: `fflag_fix_front_lsdv_4673_rect3point_relative_310523_short` ([#6162](https://github.com/HumanSignal/label-studio/pull/6162))

 # 🤩 Contributors
 
 - @LouisJULIEN 
 - @phantrung18072001 
 - @hlomzik 
 - @ricardoantoniocm 
 - @luarmr 
 - @makseq 
 - @bmartel 
 - @juliosgarbi 
 - @jombooth 
 - @yyassi-heartex 


> Full Changelog: [tags/1.13.1...1.14.0](https://github.com/HumanSignal/label-studio/compare/tags/1.13.1...4223d73ba3dc1711ecbf30c4bf5df5acbf099c28)
> This changelog was updated in response to a push of 4223d73ba3dc1711ecbf30c4bf5df5acbf099c28 [Workflow run](https://github.com/HumanSignal/label-studio/actions/runs/11507302227)
> 
> [Jira Release Issues 1.14.0 Filter](https://humansignal.atlassian.net/issues/?jql=fixversion%3D%22LS%20OpenSource/1.14.0%22%20ORDER%20BY%20created%20DESC)
> <details>
> <summary>Turned off Feature Flags (97)</summary>
> 
> - [feat_all_optic_71_dashboard_multiple_labeling_group_support_v1_01092023_short](https://app.launchdarkly.com/default/community/features/feat_all_optic_71_dashboard_multiple_labeling_group_support_v1_01092023_short/targeting)
> - [feat_front_dev_1752_notification_links_in_label_and_review_streams](https://app.launchdarkly.com/default/community/features/feat_front_dev_1752_notification_links_in_label_and_review_streams/targeting)
> - [feat_front_dev_3260_alternative_shortcuts_for_video_naviagtion](https://app.launchdarkly.com/default/community/features/feat_front_dev_3260_alternative_shortcuts_for_video_naviagtion/targeting)
> - [feat_front_dev_399_lock_interface_when_trial_expired_short](https://app.launchdarkly.com/default/community/features/feat_front_dev_399_lock_interface_when_trial_expired_short/targeting)
> - [feat_optic_1098_annotation_history_lead_time_charts](https://app.launchdarkly.com/default/community/features/feat_optic_1098_annotation_history_lead_time_charts/targeting)
> - [ff_back_2004_async_review_24032022_short](https://app.launchdarkly.com/default/community/features/ff_back_2004_async_review_24032022_short/targeting)
> - [ff_back_2884_comments_notifications_02092022_short](https://app.launchdarkly.com/default/community/features/ff_back_2884_comments_notifications_02092022_short/targeting)
> - [ff_back_DEV_1711_review_queue_140222_short](https://app.launchdarkly.com/default/community/features/ff_back_DEV_1711_review_queue_140222_short/targeting)
> - [ff_back_DEV_3374_review_query_160922_short](https://app.launchdarkly.com/default/community/features/ff_back_DEV_3374_review_query_160922_short/targeting)
> - [ff_back_dev_1948_reviewed_status_16052022_short](https://app.launchdarkly.com/default/community/features/ff_back_dev_1948_reviewed_status_16052022_short/targeting)
> - [ff_back_dev_2362_project_credentials_060722_short](https://app.launchdarkly.com/default/community/features/ff_back_dev_2362_project_credentials_060722_short/targeting)
> - [ff_back_dev_4664_remove_storage_file_on_export_delete_29032023_short](https://app.launchdarkly.com/default/community/features/ff_back_dev_4664_remove_storage_file_on_export_delete_29032023_short/targeting)
> - [ff_back_experimental_features](https://app.launchdarkly.com/default/community/features/ff_back_experimental_features/targeting)
> - [ff_front_DEV_1713_audio_ui_150222_short](https://app.launchdarkly.com/default/community/features/ff_front_DEV_1713_audio_ui_150222_short/targeting)
> - [ff_front_dev_1442_unselect_shape_on_click_outside_080622_short](https://app.launchdarkly.com/default/community/features/ff_front_dev_1442_unselect_shape_on_click_outside_080622_short/targeting)
> - [ff_front_dev_1480_created_on_in_review_180122_short](https://app.launchdarkly.com/default/community/features/ff_front_dev_1480_created_on_in_review_180122_short/targeting)
> - [ff_front_dev_1658_notification_center_170222_short](https://app.launchdarkly.com/default/community/features/ff_front_dev_1658_notification_center_170222_short/targeting)
> - [ff_front_dev_1682_model_version_dropdown_070622_short](https://app.launchdarkly.com/default/community/features/ff_front_dev_1682_model_version_dropdown_070622_short/targeting)
> - [ff_front_dev_2186_comments_for_update](https://app.launchdarkly.com/default/community/features/ff_front_dev_2186_comments_for_update/targeting)
> - [ff_front_dev_2671_anchor_rotate_bbox_010722_short](https://app.launchdarkly.com/default/community/features/ff_front_dev_2671_anchor_rotate_bbox_010722_short/targeting)
> - [fflag-feat-dev-2887-comments-ui-editor-short](https://app.launchdarkly.com/default/community/features/fflag-feat-dev-2887-comments-ui-editor-short/targeting)
> - [fflag-feat-dev-3034-comments-with-drafts-short](https://app.launchdarkly.com/default/community/features/fflag-feat-dev-3034-comments-with-drafts-short/targeting)
> - [fflag-feat-front-dev-2866-free-trial-invite-short](https://app.launchdarkly.com/default/community/features/fflag-feat-front-dev-2866-free-trial-invite-short/targeting)
> - [fflag-feat-front-dev-3051-trial-experience](https://app.launchdarkly.com/default/community/features/fflag-feat-front-dev-3051-trial-experience/targeting)
> - [fflag__feature_develop__prompts__dia_1362_custom_llm_endpoint](https://app.launchdarkly.com/default/community/features/fflag__feature_develop__prompts__dia_1362_custom_llm_endpoint/targeting)
> - [fflag__feature_develop__prompts__dia_1398_prompt_auto_refinement](https://app.launchdarkly.com/default/community/features/fflag__feature_develop__prompts__dia_1398_prompt_auto_refinement/targeting)
> - [fflag__feature_develop__prompts__dia_14444_prompt_cost_estimate](https://app.launchdarkly.com/default/community/features/fflag__feature_develop__prompts__dia_14444_prompt_cost_estimate/targeting)
> - [fflag__feature_develop__prompts__dia_1485_prompts_multiskill](https://app.launchdarkly.com/default/community/features/fflag__feature_develop__prompts__dia_1485_prompts_multiskill/targeting)
> - [fflag_feat_all_dia_1312-i_create_an_ner_prompt_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_dia_1312-i_create_an_ner_prompt_short/targeting)
> - [fflag_feat_all_dia_13_structured_data_support_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_dia_13_structured_data_support_short/targeting)
> - [fflag_feat_all_dia_1443_prompt_overview_panel_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_dia_1443_prompt_overview_panel_short/targeting)
> - [fflag_feat_all_dia_835_prompter_workflow_long](https://app.launchdarkly.com/default/community/features/fflag_feat_all_dia_835_prompter_workflow_long/targeting)
> - [fflag_feat_all_leap_1181_bulk_annotation_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_leap_1181_bulk_annotation_short/targeting)
> - [fflag_feat_all_leap_1534_custom_task_lock_timeout_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_leap_1534_custom_task_lock_timeout_short/targeting)
> - [fflag_feat_all_lops_315_temp_datasets_limitations_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_lops_315_temp_datasets_limitations_short/targeting)
> - [fflag_feat_all_lops_e_3_datasets_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_lops_e_3_datasets_short/targeting)
> - [fflag_feat_all_lsdv_4915_async_task_import_13042023_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_lsdv_4915_async_task_import_13042023_short/targeting)
> - [fflag_feat_all_lsdv_e_295_project_level_roles_via_saml_scim_ldap_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_lsdv_e_295_project_level_roles_via_saml_scim_ldap_short/targeting)
> - [fflag_feat_all_optic_1117_automax_generate_project_config_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_optic_1117_automax_generate_project_config_short/targeting)
> - [fflag_feat_all_optic_114_soft_delete_for_churned_employees](https://app.launchdarkly.com/default/community/features/fflag_feat_all_optic_114_soft_delete_for_churned_employees/targeting)
> - [fflag_feat_all_optic_1181_membership_performance](https://app.launchdarkly.com/default/community/features/fflag_feat_all_optic_1181_membership_performance/targeting)
> - [fflag_feat_all_optic_520_annotator_report_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_optic_520_annotator_report_short/targeting)
> - [fflag_feat_all_optic_991_dashboard_v2_short](https://app.launchdarkly.com/default/community/features/fflag_feat_all_optic_991_dashboard_v2_short/targeting)
> - [fflag_feat_back_dev_3756_queue_enrollment_min_short](https://app.launchdarkly.com/default/community/features/fflag_feat_back_dev_3756_queue_enrollment_min_short/targeting)
> - [fflag_feat_back_lsdv_3958_server_side_encryption_for_target_storage_short](https://app.launchdarkly.com/default/community/features/fflag_feat_back_lsdv_3958_server_side_encryption_for_target_storage_short/targeting)
> - [fflag_feat_back_lsdv_4932_enable_memory_profiler](https://app.launchdarkly.com/default/community/features/fflag_feat_back_lsdv_4932_enable_memory_profiler/targeting)
> - [fflag_feat_back_lsdv_5307_import_reviews_drafts_29062023_short](https://app.launchdarkly.com/default/community/features/fflag_feat_back_lsdv_5307_import_reviews_drafts_29062023_short/targeting)
> - [fflag_feat_back_optic_428_scim_multi_mapping](https://app.launchdarkly.com/default/community/features/fflag_feat_back_optic_428_scim_multi_mapping/targeting)
> - [fflag_feat_dev_2755_regions_list_grouped_by_labels_with_ordered_collapse_short](https://app.launchdarkly.com/default/community/features/fflag_feat_dev_2755_regions_list_grouped_by_labels_with_ordered_collapse_short/targeting)
> - [fflag_feat_front_dev-2536_comment_notifications_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_dev-2536_comment_notifications_short/targeting)
> - [fflag_feat_front_dev_3051_trial_experience_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_dev_3051_trial_experience_short/targeting)
> - [fflag_feat_front_leap_1173_disable_postpone_skip_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_leap_1173_disable_postpone_skip_short/targeting)
> - [fflag_feat_front_leap_482_self_serve_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_leap_482_self_serve_short/targeting)
> - [fflag_feat_front_lops_134_find_similarity_29082023_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lops_134_find_similarity_29082023_short/targeting)
> - [fflag_feat_front_lops_86_datasets_storage_edit_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lops_86_datasets_storage_edit_short/targeting)
> - [fflag_feat_front_lops_e_10_updated_ux_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lops_e_10_updated_ux_short/targeting)
> - [fflag_feat_front_lsdv_3025_outliner_filter_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lsdv_3025_outliner_filter_short/targeting)
> - [fflag_feat_front_lsdv_4583_6_images_preloading_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lsdv_4583_6_images_preloading_short/targeting)
> - [fflag_feat_front_lsdv_4583_multi_image_segmentation_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lsdv_4583_multi_image_segmentation_short/targeting)
> - [fflag_feat_front_lsdv_4701_audio_default_decoder_ffmpeg_long](https://app.launchdarkly.com/default/community/features/fflag_feat_front_lsdv_4701_audio_default_decoder_ffmpeg_long/targeting)
> - [fflag_feat_front_optic_1217_theme_toggle_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_optic_1217_theme_toggle_short/targeting)
> - [fflag_feat_front_optic_767_annotator_project_multiselect_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_optic_767_annotator_project_multiselect_short/targeting)
> - [fflag_feat_front_prod_281_project_list_search_19072023_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_prod_281_project_list_search_19072023_short/targeting)
> - [fflag_feat_front_prod_292_archive_workspaces_short](https://app.launchdarkly.com/default/community/features/fflag_feat_front_prod_292_archive_workspaces_short/targeting)
> - [fflag_feat_optic_1025_zendesk_widget_integration](https://app.launchdarkly.com/default/community/features/fflag_feat_optic_1025_zendesk_widget_integration/targeting)
> - [fflag_feat_optic_161_project_settings_for_low_agreement_threshold_score_short](https://app.launchdarkly.com/default/community/features/fflag_feat_optic_161_project_settings_for_low_agreement_threshold_score_short/targeting)
> - [fflag_feat_optic_198_multi_select_users_short](https://app.launchdarkly.com/default/community/features/fflag_feat_optic_198_multi_select_users_short/targeting)
> - [fflag_feat_optic_378_limit_projects_per_page_to_ten_short](https://app.launchdarkly.com/default/community/features/fflag_feat_optic_378_limit_projects_per_page_to_ten_short/targeting)
> - [fflag_feat_optic_650_target_storage_task_format_long](https://app.launchdarkly.com/default/community/features/fflag_feat_optic_650_target_storage_task_format_long/targeting)
> - [fflag_feat_optic_67_drag_and_drop_charts](https://app.launchdarkly.com/default/community/features/fflag_feat_optic_67_drag_and_drop_charts/targeting)
> - [fflag_feature_develop__prompts__dia_1488_select_virtualized](https://app.launchdarkly.com/default/community/features/fflag_feature_develop__prompts__dia_1488_select_virtualized/targeting)
> - [fflag_fix_all_leap_877_annotator_membership_api_03042024_short](https://app.launchdarkly.com/default/community/features/fflag_fix_all_leap_877_annotator_membership_api_03042024_short/targeting)
> - [fflag_fix_all_lsdv_4813_async_export_conversion_22032023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_all_lsdv_4813_async_export_conversion_22032023_short/targeting)
> - [fflag_fix_all_lsdv_4896_dm_actions_to_reviewers_20230403_short](https://app.launchdarkly.com/default/community/features/fflag_fix_all_lsdv_4896_dm_actions_to_reviewers_20230403_short/targeting)
> - [fflag_fix_all_lsdv_4971_async_reimport_09052023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_all_lsdv_4971_async_reimport_09052023_short/targeting)
> - [fflag_fix_all_optic_18_dashboard_label_distribution_chart_async_22082023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_all_optic_18_dashboard_label_distribution_chart_async_22082023_short/targeting)
> - [fflag_fix_all_optic_79_task_count_is_wrong_short](https://app.launchdarkly.com/default/community/features/fflag_fix_all_optic_79_task_count_is_wrong_short/targeting)
> - [fflag_fix_back_dev_3668_review_stream_optimizaion_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_dev_3668_review_stream_optimizaion_short/targeting)
> - [fflag_fix_back_dev_4174_overlap_issue_experiments_10012023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_dev_4174_overlap_issue_experiments_10012023_short/targeting)
> - [fflag_fix_back_dev_4185_next_task_additional_logging_long](https://app.launchdarkly.com/default/community/features/fflag_fix_back_dev_4185_next_task_additional_logging_long/targeting)
> - [fflag_fix_back_leap_24_tasks_api_optimization_05092023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_leap_24_tasks_api_optimization_05092023_short/targeting)
> - [fflag_fix_back_leap_612_explore_review_09042024_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_leap_612_explore_review_09042024_short/targeting)
> - [fflag_fix_back_lsdv_1044_check_annotations_24012023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_lsdv_1044_check_annotations_24012023_short/targeting)
> - [fflag_fix_back_lsdv_4523_show_overlap_first_order_27022023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_lsdv_4523_show_overlap_first_order_27022023_short/targeting)
> - [fflag_fix_back_lsdv_5410_temporary_disable_auto_inference_jobs_short](https://app.launchdarkly.com/default/community/features/fflag_fix_back_lsdv_5410_temporary_disable_auto_inference_jobs_short/targeting)
> - [fflag_fix_back_lsdv_5425_1_enable_permissions_restrictions_for_annotators_long](https://app.launchdarkly.com/default/community/features/fflag_fix_back_lsdv_5425_1_enable_permissions_restrictions_for_annotators_long/targeting)
> - [fflag_fix_font_lsdv_3009_draft_saving_stuck_130223_short](https://app.launchdarkly.com/default/community/features/fflag_fix_font_lsdv_3009_draft_saving_stuck_130223_short/targeting)
> - [fflag_fix_front_dev_2918_labeling_filtered_paragraphs_250822_short](https://app.launchdarkly.com/default/community/features/fflag_fix_front_dev_2918_labeling_filtered_paragraphs_250822_short/targeting)
> - [fflag_fix_front_dev_3391_interactive_view_all](https://app.launchdarkly.com/default/community/features/fflag_fix_front_dev_3391_interactive_view_all/targeting)
> - [fflag_fix_front_dev_3734_hide_task_counter_131222_short](https://app.launchdarkly.com/default/community/features/fflag_fix_front_dev_3734_hide_task_counter_131222_short/targeting)
> - [fflag_fix_front_leap_443_select_annotation_once](https://app.launchdarkly.com/default/community/features/fflag_fix_front_leap_443_select_annotation_once/targeting)
> - [fflag_fix_front_lsdv_4600_lead_time_27072023_short](https://app.launchdarkly.com/default/community/features/fflag_fix_front_lsdv_4600_lead_time_27072023_short/targeting)
> - [fflag_fix_optic_214_extra_blank_dashboard_charts_short](https://app.launchdarkly.com/default/community/features/fflag_fix_optic_214_extra_blank_dashboard_charts_short/targeting)
> - [fflag_fix_optic_391_tasks_outside_low_agreement_project_counts_short](https://app.launchdarkly.com/default/community/features/fflag_fix_optic_391_tasks_outside_low_agreement_project_counts_short/targeting)
> - [fflag_front_dia_1150_ddisco_sneak_preview](https://app.launchdarkly.com/default/community/features/fflag_front_dia_1150_ddisco_sneak_preview/targeting)
> - [fix_back_dev_3351_ml_validation_error_extension_short](https://app.launchdarkly.com/default/community/features/fix_back_dev_3351_ml_validation_error_extension_short/targeting)
> - [fix_backend_dev_3134_exclude_deactivated_users](https://app.launchdarkly.com/default/community/features/fix_backend_dev_3134_exclude_deactivated_users/targeting)
> 
> </details>
> 
> **ALL QUOTE LINES WILL BE IGNORED**