-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Release v2.11.2 #7592
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
Merged
Merged
Release v2.11.2 #7592
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Update develop after v2.11.1
<!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/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. --> Currently, `JobAnnotation.update` needlessly bumps the `updated_date` of the job and the task twice (both via `_delete` and `_create`). These updates are costly in terms of time due to the various side effects associated with them (such as webhook sending and event logging), so it's better to avoid doing them gratuitously. Change the code so that the bumps only happen once. I simplified the code a bit; previously, the code in `_delete` would only bump the date if something was actually deleted (i.e., the annotations passed in actually existed in the database). Now we just check if there were any annotations we _wanted_ to delete. This means that if a request only deletes non-existent annotations, the date will still get bumped. I don't think it's a significant issue, since this is a pathological case. ### 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. --> Manual testing ### 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! --> - [x] I submit my changes into the `develop` branch - [x] 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/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern.
…#7559) Diffing the old and new state of the object is fairly costly, so it helps to avoid doing that when it isn't necessary.
The `PASSWORD` setting is not a URL, so it should not be URL-encoded.
The signal handling code in `cvat.apps.webhooks.signals` always fetches the old version of the resource from the database and serializes it. But if no webhook is defined for the current resource, this work is pointless. Select the webhooks first, and only then (if necessary) serialize the old resource. Also, move the diffing of the old and new versions to the `post_save` signal handler, to avoid serializing the new version a second time. This leads to a considerable speedup for resources with complicated serializers, such as tasks and jobs, when no webhooks are attached. In my experiments, saving of annotations was sped up by 20-25% with this patch. This patch also makes the signal handlers more hygienic with the use of temporary attributes. Both the attributes it uses are now prefixed with `_webhooks` to avoid collisions, and removed after they are used.
…#7549) On uploading video files exceeding the maximum resolution supported by OpenH264, it raises error while trying to decode the video. To handle this more gracefully I have added dimension check based on which it raises an error beforehand with appropriate message. Fixes #7425 --------- Co-authored-by: Maria Khrustaleva <maria@cvat.ai>
Currently, `schedule_analytics_report_autoupdate_job` attempts to debounce job scheduling by 8000 examining existing jobs before scheduling a new one. Unfortunately, the `scheduler.get_jobs` function, which it uses for this purpose, scales poorly. Not only does it fetch IDs of all scheduled jobs (and not just ones related to the current object), but it then fetches information about every job, one by one. The current logic doesn't even need this information, but RQ Scheduler provides no method to get just the IDs. Replace the current logic with a new lightweight approach that uses a custom Redis key to block scheduling of additional jobs.
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #7592 +/- ##
==========================================
- Coverage 83.54% 83.44% -0.10%
==========================================
Files 372 373 +1
Lines 39661 39739 +78
Branches 3724 3741 +17
==========================================
+ Hits 33134 33161 +27
- Misses 6527 6578 +51
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changed
Fixed
Job and task
updated_date
are no longer bumped twice when updating annotations (Remove doubleupdated_date
bumping when saving annotations #7556)Sending
PATCH /jobs/{id}/data/meta
on each job save even if nothing changed in meta data (Fix job meta requests #7560)Sending
GET /jobs/{id}/data/meta
twice on each job load (Fix job meta requests #7560)Made analytics report update job scheduling more efficient (Make analytics report update job scheduling more efficient #7576)
Fixed being unable to connect to in-mem Redis when the password includes URL-unsafe characters (Fix password handling for in-mem Redis #7577)
Segment anything decoder is loaded anytime when CVAT is opened, but might be not required (Load decoder.onnx only when necessary #7564)