-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v2.24.0 #8849
Release v2.24.0 #8849
Conversation
Update develop after v2.23.1
This workflow runs for draft PRs, so there's no need to run it again when a PR is marked as ready.
Update instructions for running tests: - for running docker without sudo, the user has to be in docker group (as per Docker's [Linux post-install](https://docs.docker.com/engine/install/linux-postinstall/)) - the referenced guide already has instructions for installing the local packages, no need to duplicate it here
```pip install cvat-sdk/``` command is error-prone, the user can easily forget the slash and start downloading from PyPI, which is not required. To avoid this, it's better to write explicitly with current directory in mind
<!-- Raise an issue to propose your change (https://github.com/cvat-ai/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> - Removed functionality to run quality report updates automatically after task changes ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I submit my changes into the `develop` branch - [ ] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> - [ ] I have updated the documentation accordingly - [ ] I have added tests to cover my changes - [ ] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Enhanced documentation for automated quality assurance (QA) processes, including clearer instructions for managing Ground Truth jobs and validation modes. - **Bug Fixes** - Removed automatic quality report updates, streamlining the quality management process. - **Documentation** - Updated the document on automated QA to improve clarity and functionality, including expanded sections on quality estimation and management. - **Chores** - Removed deprecated settings related to quality check job delays in various configuration files. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Boris Sekachev <boris.sekachev@yandex.ru>
…to 'YOLO 1.1' instead of the non-existing 'YOLO ZIP 1.0' (#8754) Fixes clear typos and mistakes in the docs. Also: In several comments or docstrings, the data format 'YOLO ZIP 1.0' is mentioned as an example. However, using this identifier will result in an error like "Unknown format specified for the request", since the format is not supported anymore, or maybe it is just referenced by a different name now. This PR changes those comments in favor of 'YOLO 1.1' as an example format. ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. --------- Co-authored-by: Gordon Böer <gordon.boeer@ibak.de> Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
Currently, the CLI has one level of subcommands, and all subcommands work on tasks. This leaves no room for subcommands that work on other CVAT resources. This change redesigns the CLI interface by adding another level of subcommand hierarchy. Instead of running `cvat-cli <action>`, the user will now run `cvat-cli <resource> <action>`. Previously available commands are left available as deprecated aliases. As a proof of concept, this PR adds some basic project actions. I have also used this opportunity to correct some of the task action names, specifically `export`, `import`, `dump` and `upload`. These names don't correspond to either SDK function names, API endpoints, or UI labels corresponding to these actions. In the new subcommand hierarchy, I renamed those commands to `backup`, `create-from-backup`, `export-dataset` and `import-dataset`, which are more consistent with how other CVAT components call these actions. I rewrote the introduction and usage sections of the cli README and reference in order to reduce clutter and remove the need to resynchronize the help output after every interface change.
In the current implementation, if a job is rescheduled for later execution (due to a `LockNotAvailableError` raised during the export process), the job's metadata is not filtered when creating a new job. This PR introduces RQ job metadata fields that must be reset when rescheduling a job.
…8815) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated `.gitignore` to ignore virtual environment directories (`venv/` and `.venv/`). <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- Raise an issue to propose your change (https://github.com/cvat-ai/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> - Changed honeypot selection algorithm in task creation to be more uniform - Changed random honeypot reroll algorithm to produce/maintain a uniform distribution of validation frames in the task ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I submit my changes into the `develop` branch - [ ] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> - [ ] I have updated the documentation accordingly - [ ] I have added tests to cover my changes - [ ] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Enhanced uniformity in validation frame distribution for honeypot tasks. - Improved selection process for validation frames, ensuring fair allocation across jobs. - **Bug Fixes** - Refined error handling for validation frame selection and task configurations. - **Tests** - Added new tests for validation frames and honeypot management. - Updated existing tests to improve robustness and error handling related to task annotations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Maria Khrustaleva <maria@cvat.ai>
cvat-ui depends on icons v4, but antd depends on icons v5. Fixing this discrepancy gets rid of a few duplicate dependencies.
The underlying SDK functions already emit human-friendly log messages with the ID of the created resource. Instead of printing largely the same message twice, we can just print the ID. That way, the CLI can be more easily integrated into other software.
…nt (#8799) <!-- Raise an issue to propose your change (https://github.com/cvat-ai/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I submit my changes into the `develop` branch - [ ] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> - [ ] I have updated the documentation accordingly - [ ] I have added tests to cover my changes - [ ] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new permission scope for sending external events. - Added a method to log external events, accessible via a POST request. - **Bug Fixes** - Ensured existing event logging functionalities remain intact while integrating new features. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- Raise an issue to propose your change (https://github.com/cvat-ai/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> When a frame which contains a keyframe of a track is deleted, the keyframe continues to exist. When a dataset is exported (in all formats except CVAT for video), tracks are interpolated and keyframe from deleted frame is not ignored. Fixing it. ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I submit my changes into the `develop` branch - [ ] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> - [ ] I have updated the documentation accordingly - [ ] I have added tests to cover my changes - [ ] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced shape management by allowing exclusion of shapes based on deleted frames in both `AnnotationManager` and `TrackManager`. - Introduced a method for deleting specified frames from job data and verifying the integrity of subsequent annotations in tests. - **Bug Fixes** - Improved handling of deleted frames by transitioning from a dictionary to a set for better performance and clarity. - **Tests** - Added tests to ensure frame deletion functionality works as intended without affecting subsequent annotations. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
<!-- Raise an issue to propose your change (https://github.com/cvat-ai/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I submit my changes into the `develop` branch - [ ] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> - [ ] I have updated the documentation accordingly - [ ] I have added tests to cover my changes - [ ] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Updated various dependencies to their latest versions, ensuring improved performance and compatibility. - **Bug Fixes** - General maintenance updates may include bug fixes from the updated packages. - **Documentation** - Updated requirements files to reflect the new dependency versions across different environments (base, development, production, and dataset manifest). <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The regression test fails from time to time because notification of successful export is not closed. Probably because we use the contains command which selects the same element twice
…rocess is killed (#8721) The main problem fixed by this PR is as follows: In the previous implementation, "long" locks were used when exporting a resource or deleting an export cache. If the export process was killed (e.g., by the OOM killer with 9 signal), the acquired lock was not released and remained active until the auto-release timeout expired (e.g., 4 hours). A subsequent user request to export a dataset could not acquire the lock, causing the job to be scheduled for execution after 60 seconds (default value). When the scheduled job ran again, it still could not acquire the lock, and the entire process was repeated. Additionally, if a user initiated the export process after the job was marked as scheduled, they were unable to re-initiate the process and received an error because the RQ job status was not set and handled correctly (it was remaining `STARTED`). One more found and fixed problem is that 2 users that have rights to export a resource could not make export in parallel (with the same options like format, save_images) and one of them received a `LockNotAvailableError` error. --------- Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
Regression test for missing frames after exporting a CVAT dataset
<!-- Raise an issue to propose your change (https://github.com/cvat-ai/cvat/issues). It helps to avoid duplication of efforts from multiple independent contributors. Discuss your ideas with maintainers to be sure that changes will be approved and merged. Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### Motivation and context <!-- Why is this change required? What problem does it solve? If it fixes an open issue, please link to the issue here. Describe your changes in detail, add screenshots. --> Fixes #8686 Includes #8689 - Optimized task validation layout updates - Refactored `take_by` and `chunked_list` uses in the server code - Fixed response values and reroll logic when both `disabled_frames` and `frame_selection_method` are used simultaneously in `PATCH /tasks/id/validation_layout` - Fixed missing context image chunks cleanup on honeypot changes in jobs and tasks - Fixed invalid context image chunk cache keys ### How has this been tested? <!-- Please describe in detail how you tested your changes. Include details of your testing environment, and the tests you ran to see how your change affects other areas of the code, etc. --> ### Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. If an item isn't applicable for some reason, then ~~explicitly strikethrough~~ the whole line. If you don't do that, GitHub will show incorrect progress for the pull request. If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I submit my changes into the `develop` branch - [ ] I have created a changelog fragment <!-- see top comment in CHANGELOG.md --> - [ ] I have updated the documentation accordingly - [ ] I have added tests to cover my changes - [ ] I have linked related issues (see [GitHub docs]( https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/cvat-ai/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/cvat-ai/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/cvat-ai/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/cvat-ai/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Enhanced honeypot task functionality for improved validation frame selection and randomization. - Introduced a new class for managing frame selection, ensuring uniform usage across tasks. - **Bug Fixes** - Improved error handling and validation checks in task management and annotation processes. - **Tests** - Expanded test coverage for task creation, validation frame management, and annotation import/export, ensuring robust functionality. - **Documentation** - Updated internal documentation to reflect new features and changes in task management processes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Maria Khrustaleva <maria@cvat.ai>
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Quality Gate passedIssues Measures |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #8849 +/- ##
==========================================
- Coverage 73.94% 73.88% -0.06%
==========================================
Files 409 408 -1
Lines 43957 44086 +129
Branches 3986 3986
==========================================
+ Hits 32502 32573 +71
- Misses 11455 11513 +58
|
Added
[CLI] Added new commands:
project create
,project delete
,project ls
(Make the CLI hierarchical #8787)[SDK] You can now use
client.projects.remove_by_ids
to remove multiple projects (Make the CLI hierarchical #8787)Support for boolean parameters in annotations actions (Added support for boolean parameters in annotations actions #8798)
Changed
Improved uniformity of validation frames distribution in honeypot tasks and random honeypot rerolls (Improve validation frame distribution in tasks with honeypots #8776)
[CLI] Switched to a new subcommand hierarchy; now CLI subcommands have the form
cvat-cli <resource> <action>
(Make the CLI hierarchical #8787)[CLI] The output of the
task create
,task create-from-backup
andproject create
commands is now just the created resource ID, making it machine-readable (CLI: make the output ofcreate
commands machine-readable #8833)/api/events can now be used to receive events from several sources (/api/events endpoint can be used to receive events not only from client #8799)
Deprecated
cvat-cli <action>
are now deprecated. Usecvat-cli task <action>
instead (Make the CLI hierarchical #8787)Removed
Fixed
Uploading a skeleton template in configurator does not work (Fixed uploading a skeleton template in configurator #8822)
Installation of YOLOv7 on GPU (Fixed installation of YOLOv7 on GPU #8824)
[Server API] Significantly improved preformance of honeypot changes in tasks (Optimize validation layout updates #8789)
[Server API]
PATCH tasks/id/validation_layout
responses now include correctdisabled_frames
and handle simultaneous updates ofdisabled_frames
and honeypot frames correctly (Optimize validation layout updates #8789)Fixed handling of tracks keyframes from deleted frames on export (ignore deleted frames when converting tracks to shapes #8834)
Exporting datasets could start significantly later than expected, both for 1 and several users in the same project/task/job (Fix an issue of releasing lock for rq export job when the worker subprocess is killed #8721)
Scheduled RQ jobs could not be restarted due to incorrect RQ job status updating and handling (Fix an issue of releasing lock for rq export job when the worker subprocess is killed #8721)