Skip to content

Commit

Permalink
Merge branch 'develop' into fb-dia-1783/tailwind-next
Browse files Browse the repository at this point in the history
  • Loading branch information
nick-skriabin committed Mar 5, 2025
2 parents 60bdf1b + 7487d6e commit 1f44b51
Show file tree
Hide file tree
Showing 15 changed files with 181 additions and 123 deletions.
92 changes: 14 additions & 78 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,83 +1,19 @@
### PR fulfills these requirements
- [ ] Commit message(s) and PR title follows the format `[fix|feat|ci|chore|doc]: TICKET-ID: Short description of change made` ex. `fix: DEV-XXXX: Removed inconsistent code usage causing intermittent errors`
- [ ] Tests for the changes have been added/updated (for bug fixes/features)
- [ ] Docs have been added/updated (for bug fixes/features)
- [ ] Best efforts were made to ensure docs/code are concise and coherent (checked for spelling/grammatical errors, commented out code, debug logs etc.)
- [ ] Self-reviewed and ran all changes on a local instance (for bug fixes/features)
<!--
This description MUST be filled out for a PR to receive a review. Its primary purposes are:
- to enable your reviewer to review your code easily, and
- to convince your reviewer that your code works as intended.
#### Change has impacts in these area(s)
_(check all that apply)_
- [ ] Product design
- [ ] Backend (Database)
- [ ] Backend (API)
- [ ] Frontend
Some pointers to think about when filling out your PR description:
- Reason for change: Description of problem and solution
- Screenshots: All visible changes should include screenshots.
- Rollout strategy: How will this code be rolled out? Feature flags / env var / other
- Testing: Description of how this is being verified
- Risks: Are there any known risks associated with this change, eg to security or performance?
- Reviewer notes: Any info to help reviewers approve the PR
- General notes: Any info to help onlookers understand the code, or callouts to significant portions.
You may use AI tools such as Copilot Actions to assist with writing your PR description (see https://docs.github.com/en/copilot/using-github-copilot/using-github-copilot-for-pull-requests/creating-a-pull-request-summary-with-github-copilot); however, an AI summary isn't enough by itself. You'll need to provide your reviewer with strong evidence that your code works as intended, which requires actually running the code and showing that it works.

### Describe the reason for change
_(link to issue, supportive screenshots etc.)_



#### What does this fix?
_(if this is a bug fix)_



#### What is the new behavior?
_(if this is a breaking or feature change)_



#### What is the current behavior?
_(if this is a breaking or feature change)_



#### What libraries were added/updated?
_(list all with version changes)_



#### Does this change affect performance?
_(if so describe the impacts positive or negative)_



#### Does this change affect security?
_(if so describe the impacts positive or negative)_



#### What alternative approaches were there?
_(briefly list any if applicable)_



#### What feature flags were used to cover this change?
_(briefly list any if applicable)_



### Does this PR introduce a breaking change?
_(check only one)_
- [ ] Yes, and covered entirely by feature flag(s)
- [ ] Yes, and covered partially by feature flag(s)
- [ ] No
- [ ] Not sure (briefly explain the situation below)



### What level of testing was included in the change?
_(check all that apply)_
- [ ] e2e
- [ ] integration
- [ ] unit



### Which logical domain(s) does this change affect?
_(for bug fixes/features, be as precise as possible. ex. Authentication, Annotation History, Review Stream etc.)_

-->
54 changes: 34 additions & 20 deletions docs/source/guide/setup_project.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,37 +18,51 @@ All labeling activities in Label Studio occur in the context of a project.

After you [start Label Studio](start) and [create an account](signup), create a project to start labeling your data.

1. [Create a project](#Create-a-project)
2. Import data into Label Studio.
1. **[Create a project](#Create-a-project)**.
2. **[Import data into Label Studio](tasks)**.

For small projects, testing, or proof of concept work, you can import local files directly into Label Studio. However, for larger projects, we recommend setting up cloud storage. For more information, see [Get data into Label Studio](tasks) and [Sync data from external storage](storage).
3. After you have imported your data, then you can [set up the labeling interface for your project](setup).
4. Finally, you can configure optional settings to such as task sampling and annotation instructions. For more information, see [Project settings](project_settings).

</div>
For small projects, testing, or proof of concept work, you can import local files directly into Label Studio through the UI. You can do this during the project creation workflow.

However, for larger projects, we recommend setting up cloud storage. You will need to create the project first, and then add storage from the project settings. For more information, see [Sync data from external storage](storage).
3. **[Customize your labeling interface](setup)**.

We recommend that you begin with a pre-configured template and modify it, but you can also create your own custom template using our [tag library](/tags).

4. **[Configure project settings](project_settings)**.

Finally, you can configure optional settings to such as task sampling and annotation instructions.

</div>

<div class="enterprise-only">

1. [Create a project](#Create-a-project)
2. [Import data](tasks.html).
3. Select a template to configure the labeling interface for your dataset. [Set up the labeling interface for your project](setup.html).
4. (Optional) [Set up annotation settings for your project](#Set-up-annotation-settings-for-your-project).
5. (Optional) [Set up review settings for your project](#Set-up-review-settings-for-your-project).
2. Import data into Label Studio.
1. **[Create a project](#Create-a-project)**.
2. **[Import data into Label Studio](tasks)**.

For small projects, testing, or proof of concept work, you can import local files directly into Label Studio. However, for larger projects, we recommend setting up cloud storage. For more information, see [Get data into Label Studio](tasks) and [Sync data from external storage](storage).
3. After you have imported your data, then you can [set up the labeling interface for your project](setup).
4. Next, you will want to configure what information annotators and reviewers can see, and how automated you want their workflow to be.
For small projects, testing, or proof of concept work, you can import local files directly into Label Studio through the UI. You can do this during the project creation workflow.

However, for larger projects, we recommend setting up cloud storage. You will need to create the project first, and then add storage from the project settings. For more information, see [Sync data from external storage](storage).
3. **[Customize your labeling interface](setup)**.

We recommend that you begin with a pre-configured template and modify it, but you can also create your own custom template using our [tag library](/tags).

If enabled, can start by describing to the Label Studio [AI assistant](ask_ai) what your are looking for and let it generate the XML on your behalf.
4. **[Configure project settings](project_settings_lse)**.

Next, you will want to configure what information annotators and reviewers can see, and how automated you want their workflow to be.

By default, any annotator who is a member of project can begin labeling as soon as it is published, and each task only requires one annotator before being considered complete. To customize this, see the [**Annotation** section of the project settings](project_settings_lse#Annotation).

By default, reviewers do not need to be assigned to completed tasks, and each task only needs one accepted annotation. To customize this, see the [**Review** section of the project settings](project_settings_lse#Review).


5. [Add members to your project](#Add-members-to-a-project).
6. [Publish your project](#Publish-project-to-annotators).
5. **[Add members to your project or workspace](#Add-members-to-a-project).**

Users in the Owner and Admin role can see all projects. But users in the Manager, Annotator, and Reviewer role must be added to a project [or its parent workspace](workspaces) before they can access it.

6. **[Publish your project](#Publish-project-to-annotators)**.

Users in the Manager role can see unpublished projects if they are members of that project. But users in the Annotator or Reviewer role are unable to see or access a project until it is published.

</div>

Expand Down Expand Up @@ -76,7 +90,7 @@ Once complete, you can click **Save** to create the project, or you can complete

From here, you can upload files into Label Studio. You can do this now or after the project has been created.

However, for larger projects, we recommend setting up cloud storage or using a different import method. For more information, see [Get data into Label Studio](tasks) and [Sync data from external storage](storage).
For larger projects, we recommend setting up cloud storage or using a different import method. For more information, see [Get data into Label Studio](tasks) and [Sync data from external storage](storage).

</dd>

Expand All @@ -86,7 +100,7 @@ However, for larger projects, we recommend setting up cloud storage or using a d

You can select a template to begin your labeling configuration. For easier setup, select a [template](/templates). You can later customize template to meet your needs. See [Configure labeling](setup).

You can do this now or after the project has been created.
You can do this now or after the project has been created.

</dd>

Expand Down
26 changes: 26 additions & 0 deletions docs/source/tags/video.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,32 @@ Video tag plays a simple video file. Use for video annotation tasks such as clas

Use with the following data types: video

### Video format

Label Studio relies on your web browser to play videos, so it's essential that your videos use a format and codecs that are universally supported. To ensure maximum compatibility, we recommend using an MP4 container with video encoded using the H.264 (AVC) codec and audio encoded with AAC. This combination is widely supported across all modern browsers and minimizes issues like incorrect total duration detection or problems with playback. In addition, it's important to convert your videos to a constant frame rate (CFR), ideally around 30 fps, to avoid discrepancies in frame counts and issues with duplicated or missing frames.

Converting your videos to this recommended format will help ensure that they play smoothly in Label Studio and that the frame rate and duration are correctly recognized for accurate annotations. To convert any video to this format, you can use FFmpeg. For example, the following command converts an input video to MP4 with H.264 video, AAC audio, and a constant frame rate of 30 fps:

```bash
ffmpeg -i input_video.mp4 -c:v libx264 -profile:v high -level 4.0 -pix_fmt yuv420p -r 30 -c:a aac -b:a 128k output_video.mp4
```

In this command:
- `-i input_video.mp4` specifies your source video.
- `-c:v libx264` uses the H.264 codec for video encoding.
- `-profile:v high -level 4.0` sets compatibility parameters for a broad range of devices.
- `-pix_fmt yuv420p` ensures the pixel format is compatible with most browsers.
- `-r 30` forces a constant frame rate of 30 fps. You can also omit the -r option, ffmpeg will save your current frame rate. This is fine if you are 100% certain that your video has a constant frame rate.
- `-c:a aac -b:a 128k` encodes the audio in AAC at 128 kbps.
- `output_video.mp4` is the converted video file ready for use in Label Studio.

Using this FFmpeg command to re-encode your videos will help eliminate playback issues and ensure that Label Studio detects the total video duration accurately, providing a smooth annotation experience.

It is a good idea to check all parameters of your video using this command:
```bash
ffprobe -v error -show_format -show_streams -print_format json input.mp4
```

### Parameters

| Param | Type | Default | Description |
Expand Down
56 changes: 55 additions & 1 deletion label_studio/feature_flags.json
Original file line number Diff line number Diff line change
Expand Up @@ -2604,7 +2604,7 @@
"trackEvents": false,
"trackEventsFallthrough": false,
"debugEventsUntilDate": null,
"version": 3,
"version": 4,
"deleted": false
},
"fflag_feat_front_optic_1479_improve_image_tag_memory_usage_short": {
Expand Down Expand Up @@ -2661,6 +2661,33 @@
"version": 3,
"deleted": false
},
"fflag_feat_front_optic_1746_improve_global_error_messages_short": {
"key": "fflag_feat_front_optic_1746_improve_global_error_messages_short",
"on": false,
"prerequisites": [],
"targets": [],
"contextTargets": [],
"rules": [],
"fallthrough": {
"variation": 0
},
"offVariation": 1,
"variations": [
true,
false
],
"clientSideAvailability": {
"usingMobileKey": false,
"usingEnvironmentId": false
},
"clientSide": false,
"salt": "e31a1913483c4765a2eda65c37577ff3",
"trackEvents": false,
"trackEventsFallthrough": false,
"debugEventsUntilDate": null,
"version": 2,
"deleted": false
},
"fflag_feat_front_optic_66_lazy_chart_evaluation_19092023_short": {
"key": "fflag_feat_front_optic_66_lazy_chart_evaluation_19092023_short",
"on": true,
Expand Down Expand Up @@ -4159,6 +4186,33 @@
"debugEventsUntilDate": null,
"version": 4,
"deleted": false
},
"sample-feature": {
"key": "sample-feature",
"on": false,
"prerequisites": [],
"targets": [],
"contextTargets": [],
"rules": [],
"fallthrough": {
"variation": 0
},
"offVariation": 1,
"variations": [
true,
false
],
"clientSideAvailability": {
"usingMobileKey": true,
"usingEnvironmentId": true
},
"clientSide": true,
"salt": "840eaf270c944ffcbeb7a5755a6086fb",
"trackEvents": false,
"trackEventsFallthrough": false,
"debugEventsUntilDate": null,
"version": 2,
"deleted": false
}
}
}
19 changes: 10 additions & 9 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ djangorestframework-simplejwt = {extras = ["crypto"], version = "^5.4.0"}
tldextract = ">=5.1.3"

# Humansignal repo dependencies
label-studio-sdk = {url = "https://github.com/HumanSignal/label-studio-sdk/archive/0fecdd0030b8cefe471b574deed3ca19b64ff323.zip"}
label-studio-sdk = {url = "https://github.com/HumanSignal/label-studio-sdk/archive/4b2f1d9b3befa4a546907321912055a43a408d17.zip"}

[tool.poetry.group.test.dependencies]
pytest = "7.2.2"
Expand Down
2 changes: 1 addition & 1 deletion web/dist/apps/labelstudio/278.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion web/dist/apps/labelstudio/main.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion web/dist/apps/labelstudio/main.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion web/dist/apps/labelstudio/vendor.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion web/dist/apps/labelstudio/vendor.js.map

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions web/dist/apps/labelstudio/version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"message": "chore: LEAP-1293: Remove fflag_feat_back_lsdv_5035_use_created_at_fro… (#7135)",
"commit": "5a180200585ac61e43e3e9b3aa19ed5512783bfc",
"date": "2025-02-27T14:35:14.000Z",
"message": "docs: Add context to Video tag page (#7160)",
"commit": "28c8aeb226d01aaccb1dbd6a22f50e86508dad1f",
"date": "2025-03-03T21:27:21.000Z",
"branch": "develop"
}
6 changes: 3 additions & 3 deletions web/dist/libs/datamanager/version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"message": "chore: LEAP-1293: Remove fflag_feat_back_lsdv_5035_use_created_at_fro… (#7135)",
"commit": "5a180200585ac61e43e3e9b3aa19ed5512783bfc",
"date": "2025-02-27T14:35:14.000Z",
"message": "docs: Add context to Video tag page (#7160)",
"commit": "28c8aeb226d01aaccb1dbd6a22f50e86508dad1f",
"date": "2025-03-03T21:27:21.000Z",
"branch": "develop"
}
6 changes: 3 additions & 3 deletions web/dist/libs/editor/version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"message": "chore: LEAP-1293: Remove fflag_feat_back_lsdv_5035_use_created_at_fro… (#7135)",
"commit": "5a180200585ac61e43e3e9b3aa19ed5512783bfc",
"date": "2025-02-27T14:35:14.000Z",
"message": "docs: Add context to Video tag page (#7160)",
"commit": "28c8aeb226d01aaccb1dbd6a22f50e86508dad1f",
"date": "2025-03-03T21:27:21.000Z",
"branch": "develop"
}
Loading

0 comments on commit 1f44b51

Please sign in to comment.