-
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.14.0 #7926
Release v2.14.0 #7926
Conversation
Update develop after v2.13.0
…7859) <!-- 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. --> There is a condition that may occur during Kubernetes deployment, where the frontend service already has an endpoint (i.e. the frontend pod), but the backend service does not. For example, the backend pod may not have started yet or the service controller may not have had time to react to the backend pod. In this case, when Traefik serves a request with an `/api/...` path, it will see that it matches the `/api` rule, but since the corresponding service has no endpoints, it will _skip_ that rule and try other rules. And since the `/` rule matches everything, it will then route the request to the frontend. This is confusing and unhelpful, and more importantly, it makes health checks return the wrong result. Since the frontend will serve `index.html` to every request, a request to `/api/server/health/` or `/api/server/about` will return a 200 code, even though the server isn't actually up. Because of this bug, I have observed weird failures in the Helm workflow, where the "Wait for CVAT to be ready" step completes, but CVAT is not actually ready. (FYI: The failures I've seen are actually in a private repo, but the failure condition could occur in this repo too. It's just more likely in a private repo, because GitHub uses smaller runners in private repos.) The fix is simple: use the `allowEmptyServices` Traefik setting, which disables the rule skipping behavior. With this setting on, Traefik will return a 503 response for backend URLs until the backend service gains an endpoint. ### 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. --> I deployed the Helm chart, then ran a `kubectl delete deployments.apps cvat-backend-server` to simulate the server being unavailable. Then I curled the `/api/server/health/` endpoint. ### 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 - [ ] 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 - [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. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Fixed an issue to prevent incorrect 200 OK responses from API endpoints before backend readiness. - **New Features** - Updated Helm chart to support configurations that allow empty services in the Kubernetes Ingress provider. - **Documentation** - Updated version in Helm chart documentation from `0.12.0` to `0.12.1`. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Added ability to specify ServiceAccount for backend pods Removed passing of DJANGO_MODWSGI_EXTRA_ARGS env variable to server pod Do not set database host and port env variables if they are empty
<!-- 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! --> - [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/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 - [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. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Corrected an issue where analytics reported an incorrect count of objects for skeleton tracks/shapes. - Fixed a bug where the analytic report consistently showed one less object for tracks than the actual count. - **Improvements** - Enhanced filtering logic for shapes and tracks in analytics, improving the accuracy of annotation speed metrics. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
…t applied to annotation speed anymore (#7898) <!-- 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 Depends on ##7883 ### 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! --> - [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/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 - [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. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Corrected an issue where analytic reports showed an incorrect count of objects for skeleton tracks and shapes. - **Improvements** - Renamed metrics related to annotation speed from total to average for jobs, tasks, and projects. - Updated descriptions for annotation speed metrics to specify the number of objects per hour. - Removed unnecessary clamping function for working time statistics. These changes enhance the accuracy and clarity of analytic reports, providing more meaningful insights into annotation speeds and object counts. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Added security headers for Referrer-Policy, X-Content-Type-Options. Referring to Issue #7398, Added additional security headers. Added to address the deduction in security score rating third party scanners. - Referrer-Policy "strict-origin-when-cross-origin";: Limit the referrer information sent when a user navigates away from the website - X-Content-Type-Options "nosniff";: Prevent browsers from attempting to MIME-sniff the content type of a response to reduce risk of XSS and Content Injection Co-authored-by: Roman Donchenko <[email protected]>
…ject (#7919) <!-- 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! --> - [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/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 - [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.
Important Review SkippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 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 as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #7926 +/- ##
==========================================
+ Coverage 83.36% 83.38% +0.01%
==========================================
Files 380 380
Lines 40021 40034 +13
Branches 3765 3769 +4
==========================================
+ Hits 33365 33382 +17
+ Misses 6656 6652 -4
|
Added
Added security headers enforcing strict
Referrer-Policy
for cross origins and disabling MIME type sniffing viaX-Content-Type-Options
. ([GSoC2024] Added additional security headers #7752)[Helm] Ability to specify ServiceAccount for backend pods (Update helm #7894)
Changed
Working time rounding to a minimal value of 1 hour is not applied to the annotation speed metric any more (Fixed analytics report: working time rounding to minimal 1 hour is not applied to annotation speed anymore #7898)
Total annotation speed metric renamed to Average annotation speed (Fixed analytics report: working time rounding to minimal 1 hour is not applied to annotation speed anymore #7898)
Ground truth jobs are not considered when computing analytics report for a task/project (Ignore ground truth jobs when compute analytics report for a task/project #7919)
Fixed
Fixed calculation of annotation speed metrics for analytics reports (Fixed calculation of metrics for analytics reports #7144)
[Helm] Prevented spurious 200 OK responses from API endpoints before the backend is ready (helm-chart: prevent Traefik from ignoring the backend ingress rule #7859)
Analytic reports incorrect count of objects for a skeleton track/shape (Fixed object count in analytics for skeletons and tracks #7883)
Analytic reports incorrect number of objects for a track (always less by 1) (Fixed object count in analytics for skeletons and tracks #7883)
REST API allowed to create several attributes with the same name within one label (fixed server for duplicate attribute names #7890)
Job's/task's status are not updated when job's state updated to completed and stage is already acceptance (Fixed updating job/task status after changing job state #7901)
Exception: Cannot read properties of undefined (reading 'onBlockUpdated') (Fixed exception: Cannot read properties of undefined (reading 'onBloc… #7913)
One more found way to create an empty mask (Fixed one way to create an empty mask #7915)
Slice function may not work in Google Chrome < 110 (Array.toReversed replaced by Array.reduceRight because of better comp… #7916)
Selecting a skeleton by cursor does not work correctly when there are some hidden points (Fixed skeleton selection algorithm #7921)