Skip to content
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.32.0 #9248

Merged
merged 42 commits into from
Mar 24, 2025
Merged

Release v2.32.0 #9248

merged 42 commits into from
Mar 24, 2025

Conversation

cvat-bot[bot]
Copy link
Contributor

@cvat-bot cvat-bot bot commented Mar 24, 2025

Added

Changed

Deprecated

  • Utilizing GET /api/projects/id/dataset?action=import_status API endpoint to check the status of the import process. Instead, the GET /api/requests/rq_id requests API should be used (API to download export results #9075)

Removed

Fixed

cvat-bot bot and others added 30 commits March 3, 2025 19:59
All of the support code in the auto-annotation SDK layer is already
there, we just need to send sublabel information when creating a native
function, and validate it when running an agent.

In addition, force keypoint sublabel types to be "points", since this is
how the UI creates them for tasks/projects.
This PR adds a search and filtering features to Organization page.
Removed extra styles that caused extra scrolls to appear
This PR specifies explicitly which arguments are expected to be
`positional-only` or `keyword-only` in methods decorated with
`validate_file_status`. This fixes the newly introduced issue when
`IndexError` is raised when checking file status [1].

[1] https://github.com/cvat-ai/cvat/blob/6cefd3fe0025d58236de9db38f12622d889518e4/cvat/apps/engine/cloud_provider.py#L123
Continuing to remove Black exceptions.
Coverage of consensus task creation from #8939

### How has this been tested?

- Check `Advanced Configuration` -> `Consensus Replicas` field in task
creation. Allowed values: `0 <= x <= 10` but `x≠1`. Bad values should
trigger form to show error message. Creating task with unmet condition
should result in an error notification
- Submit & Open task
- Task page should contain two tags with text 'Consensus' 
- Consensus job should have a collapsible drop-down with text e.g. `2
Replicas`, the number should be correct
- Open drop-down with job replicas. There should be a correct number of
replicas, ordered desc by job ids, top to bottom

### Checklist
- [ ] I submit my changes into the `develop` branch
- [ ] I have created a changelog fragment
- [ ] 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))

### 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.

---------

Co-authored-by: cvat-bot[bot] <147643061+cvat-bot[bot]@users.noreply.github.com>
Co-authored-by: Oleg Valiulin <[email protected]>
Co-authored-by: Kirill Lakhov <[email protected]>
This makes them easier to read, as the key is visually separated from
the value. Also, it emphasizes the key-value nature of labels.
This PR introduces the following changes:

- Several server API endpoints have been deprecated or no longer handle
  the process of exporting specific resources:
  - [API] **GET /api/projects/id/dataset?action=import_status** is
    deprecated
  - [API] **GET /api/projects/id/dataset**(no action parameter or action
    != import_status) returns 410 status code - API endpoint no longer used
    to handle export datasets flow
  - [API] **GET /api/projects/id/annotations** returns 410 status code -
    API endpoint no longer used to handle export annotations flow
  - [API] **GET /api/projects/id/backup** returns 410 status code - API
    endpoint no longer used to handle export backups flow
  - [API] **GET /api/tasks/id/backup** returns 410 status code - API
    endpoint no longer used to handle export backups flow
  - [API] **GET /api/tasks/id/annotations?format=<format>** returns 410
    status code - API endpoint no longer used to handle export annotations
    flow
  - [API] **GET /api/tasks/d/dataset** returns 410 status code - API
    endpoint no longer used to handle export datasets flow
  - [API] **GET /api/jobs/id/annotations?format=<format>** returns 410
    status code - API endpoint no longer used to handle export annotations
    flow
  - [API] **GET /api/jobs/id/dataset** returns 410 status code - API
    endpoint no longer used to handle export datasets flow

- Introduced new "private" endpoints to download prepared files (they
are hidden in the generated server schema):
  - [API] GET /api/projects/id/dataset/download?rq_id=rq_id
  - [API] GET /api/projects/id/backup/download?rq_id=rq_id
  - [API] GET /api/tasks/id/dataset/download?rq_id=rq_id
  - [API] GET /api/tasks/id/backup/download?rq_id=rq_id
  - [API] GET /api/jobs/id/dataset/download?rq_id=rq_id
- Changed permissions used when downloading a prepared file (now admin
  and RQ job owner have rights to download a prepared file related to a
  specific background job (it's a questionable topic whether should be
  resource access checked also))
- Added result filename saving to RQ metadata for export-related RQ
  jobs:
  ```
  {
      ...
      "result_filename": str // is used as the final filename when downloading files/uploading to cloud storage
  }
  ```
- Final file name is taken from meta when uploading a file to cloud
  storage (`key` and `key_pattern` args have been removed)
#### Depends on #9178

### Motivation and context
Test coverage for merging feature in consensus jobs (#8953)
Commits were cherry-picked from #9190

### How has this been tested?

### Case 1: check new merge buttons exist and are visible.
New freshly created jobs have status 'new'. Trying to merge new jobs
should result in error notifications and a HTTP 400 status code. All
notifications are closed before the next testcase

### Case 2: Check consensus management page
Consensus management page has settings for consensus quorum and minimum
annotation overlap. Check that the page has fields for both options. If
a field is filled incorrectly the form turns red and a message appears
under the form. Trying to save options with erroneous forms should do
nothing - no requests are sent, no errors shown.

### Case 3: Create annotations and check that job replicas merge
correctly
Create annotations with one rectangle in job replicas. The rectangle is
moved with a step in each job's first frame. This means that after
merging, the consensus job will have a rectangle which has to fully
match a rectangle inside the replica in the middle.

- Create annotations.
- Merge consensus jobs. No errors should appear. A notification message
validates the merge, close it
- Go inside consensus job, remember the rectangle's positions
- Go back to the task page using browser's 'Back' button
- After loading the task page, consensus job's status should read
**competed**
- Open the middle job replica. Rectangle should be identical to the
previous one

### Checklist

- [ ] I submit my changes into the `develop` branch
- [ ] I have created a changelog fragment
- [ ] 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))

### 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.

---------

Co-authored-by: Oleg Valiulin <[email protected]>
Co-authored-by: Kirill Lakhov <[email protected]>
There is no point in adding "nuclio" to `no_proxy` by default.

* During the build, Nuclio isn't used.
* When deploying with Docker Compose, the Compose file overrides
`no_proxy`.
* When deploying with Helm, Nuclio has a different hostname.

Even if you're deploying manually, you still have to override
`no_proxy`, since there are many other internal hosts besides `nuclio`
(like `opa`).
The Traefik 2.x release series goes EOL in under two months (and the
2.10 minor that we currently use has reached EOL more than a year ago).
Upgrading will let us keep getting security fixes.

In addition, I'm currently working on a patch that would have to be
changed after the Traefik upgrade. So I'd rather do the upgrade now and
not have to update my patch again.
Worker configuration is still present after #9174 causing an error in vscode during debug config launch
This PR fixes an issue where navigating to task analytics caused `#overview` to be appended to the URL, requiring two back button presses to return to the previous page.
Using rapidjson instead of json-stream to dump annotations in a stream manner on backup
…lows (#9232)

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…9214)

I have a need to add an environment variable for backend containers in
the Enterprise version. `additionalEnv` doesn't work very well for this,
because:

* It is an array, so if a user specifies a different value for it with
  `--set`, any defaults set by the superchart will disappear.

* It is inserted into the resource definition verbatim, so you can't
  refer to things like the release name.

This patch introduces a separate setting for this purpose. It takes a
map, and runs the variable values through `tpl` to support
interpolation.
bsekachev and others added 12 commits March 19, 2025 19:01
Small grammatical improvement of interactor message
The current version is incompatible with Python 3.12, which has broken
the Helm CI job. Why the job worked up until this point is unclear.
The merged commands are more efficient, safer (because pip will verify
that there are no dependency conflicts), and in CI it's easier to
understand the output of one pip command than many.

Also, in the CI-nightly workflow, separate the dependency install
commands into their own step.
Currently, when backup files are extracted from zip file, they first are
read to RAM, and then are written to filesystem. It can be a problem,
when backup has some large files, e.g. videos.
Fixing it.
Test coverage for #9151

### Motivation and context

This tests search within organizations feature

### How has this been tested?
New organization pipeline is updated with two test cases: searching and
filtering organization members. Alongside this, the suite's setup and
teardown routines were updated to use less UI.

Improved test suite's running time by 1m (30%)

### Checklist

- [x] I submit my changes into the `develop` branch
- [ ] I have created a changelog fragment 
- [ ] 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))

### 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.

---------

Co-authored-by: Oleg Valiulin <[email protected]>
…/api/requests` (#9236)

This PR addresses the `KeyError` by making user/request fields in the
meta nullable.
@zhiltsov-max
Copy link
Contributor

@codecov-commenter
Copy link

Codecov Report

Attention: Patch coverage is 80.97928% with 101 lines in your changes missing coverage. Please review.

Project coverage is 74.16%. Comparing base (5fbf59a) to head (fbd3d11).
Report is 49 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9248      +/-   ##
==========================================
+ Coverage   73.33%   74.16%   +0.83%     
==========================================
  Files         448      428      -20     
  Lines       45868    44964     -904     
  Branches     3915     3917       +2     
==========================================
- Hits        33637    33349     -288     
+ Misses      12231    11615     -616     
Components Coverage Δ
cvat-ui 77.22% <87.50%> (+0.11%) ⬆️
cvat-server 71.63% <80.56%> (+1.31%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cvat-bot cvat-bot bot merged commit 15de5ee into master Mar 24, 2025
31 checks passed
@cvat-bot cvat-bot bot deleted the release-2.32.0 branch March 24, 2025 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.