Skip to content

Commit 61def72

Browse files
Merge pull request #9779 from cvat-ai/release-2.44.0
Release v2.44.0
2 parents 38f0b50 + 49b0d2e commit 61def72

File tree

319 files changed

+33432
-19678
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

319 files changed

+33432
-19678
lines changed

.github/workflows/bandit.yml

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,10 @@ jobs:
55
runs-on: ubuntu-latest
66
steps:
77
- uses: actions/checkout@v4
8-
- id: files
9-
uses: tj-actions/[email protected]
10-
with:
11-
files: |
12-
**/*.py
13-
files_ignore: |
14-
**/cvat-sdk/*
158

169
- name: Run checks
1710
run: |
18-
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"
11+
pipx install $(grep "^bandit" ./dev/requirements.txt)
1912
20-
if [[ ! -z $CHANGED_FILES ]]; then
21-
pipx install bandit
22-
23-
echo "Bandit version: "$(bandit --version | head -1)
24-
echo "The files will be checked: "$(echo $CHANGED_FILES)
25-
bandit -a file --ini .bandit $CHANGED_FILES
26-
else
27-
echo "No files with the \"py\" extension found"
28-
fi
13+
echo "Bandit version: "$(bandit --version | head -1)
14+
bandit -a file --ini .bandit --recursive .

.github/workflows/eslint.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ jobs:
1111

1212
- name: Install dependencies
1313
run: |
14-
yarn install --frozen-lockfile
15-
(cd tests && yarn install --frozen-lockfile)
14+
corepack enable yarn
15+
yarn install --immutable
16+
(cd tests && yarn install --immutable)
1617
1718
- name: Run checks
1819
run: |

.github/workflows/full.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,8 @@ jobs:
308308
run: |
309309
docker exec -i cvat_server /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell"
310310
cd ./tests
311-
yarn --frozen-lockfile
311+
corepack enable yarn
312+
yarn --immutable
312313
313314
if [[ ${{ matrix.specs }} == canvas3d_* ]]; then
314315
npx cypress run \

.github/workflows/main.yml

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ jobs:
7272

7373
- name: Instrumentation of the code then rebuilding the CVAT UI
7474
run: |
75-
yarn --frozen-lockfile
75+
corepack enable yarn
76+
yarn --immutable
7677
yarn run coverage
7778
7879
- name: CVAT UI. Build and push
@@ -143,6 +144,8 @@ jobs:
143144
allow_cache: 'no'
144145
- pattern: "not test_task_data"
145146
allow_cache: 'no'
147+
- pattern: "not test_task_data"
148+
allow_cache: 'true'
146149
name: rest_api_testing [${{ matrix.pattern }}, cache-${{ matrix.allow_cache }}]
147150
steps:
148151
- uses: actions/checkout@v4
@@ -192,14 +195,10 @@ jobs:
192195
- name: Uploading code coverage results as an artifact
193196
uses: actions/upload-artifact@v4
194197
with:
195-
name: ${{
196-
contains(matrix.pattern, 'not')
197-
&& 'coverage_results_rest_api'
198-
|| format(
199-
'coverage_results_rest_api-{0}-cache-{1}',
200-
matrix.pattern, matrix.allow_cache
201-
)
202-
}}
198+
name: ${{format(
199+
'coverage_results_rest_api-{0}-cache-{1}',
200+
matrix.pattern, matrix.allow_cache
201+
)}}
203202
path: |
204203
coverage*.json
205204
@@ -218,28 +217,20 @@ jobs:
218217
if: failure() && steps.run_tests.conclusion == 'failure'
219218
uses: actions/upload-artifact@v4
220219
with:
221-
name: ${{
222-
contains(matrix.pattern, 'not')
223-
&& 'rest_api_container_logs'
224-
|| format(
225-
'rest_api_container_logs-{0}-cache-{1}',
226-
matrix.pattern, matrix.allow_cache
227-
)
228-
}}
220+
name: ${{format(
221+
'rest_api_container_logs-{0}-cache-{1}',
222+
matrix.pattern, matrix.allow_cache
223+
)}}
229224
path: "${{ github.workspace }}/rest_api_testing"
230225

231226
- name: Upload allure results
232227
if: always()
233228
uses: actions/upload-artifact@v4
234229
with:
235-
name: ${{
236-
contains(matrix.pattern, 'not')
237-
&& 'allure-results-tests-api'
238-
|| format(
239-
'allure-results-tests-api-{0}-cache-{1}',
240-
matrix.pattern, matrix.allow_cache
241-
)
242-
}}
230+
name: ${{format(
231+
'allure-results-tests-api-{0}-cache-{1}',
232+
matrix.pattern,matrix.allow_cache
233+
)}}
243234
path: tests/python/allure-results
244235

245236
unit_testing:
@@ -319,6 +310,8 @@ jobs:
319310
- uses: actions/setup-node@v4
320311
with:
321312
node-version: '22.x'
313+
# NOTE: corepack is not bundled after Node 25
314+
# https://nodejs.org/docs/v22.18.0/api/corepack.html#corepack
322315

323316
- name: Download CVAT server image
324317
uses: actions/download-artifact@v4
@@ -371,7 +364,8 @@ jobs:
371364
run: |
372365
docker exec -i cvat_server /bin/bash -c "echo \"from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')\" | python3 ~/manage.py shell"
373366
cd ./tests
374-
yarn --frozen-lockfile
367+
corepack enable yarn
368+
yarn --immutable
375369
376370
if [[ ${{ matrix.specs }} == canvas3d_* ]]; then
377371
npx cypress run \

.github/workflows/remark.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ jobs:
1111

1212
- name: Run checks
1313
run: |
14-
yarn install --frozen-lockfile
14+
corepack enable yarn
15+
yarn install --immutable
1516
1617
echo "Remark version: "`npx remark --version`
1718
npx remark --quiet --frail -i .remarkignore .

.github/workflows/schedule.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,8 @@ jobs:
256256
- name: Run tests
257257
run: |
258258
cd ./tests
259-
yarn --frozen-lockfile
259+
corepack enable yarn
260+
yarn --immutable
260261
261262
shopt -s extglob
262263
if [[ ${{ matrix.specs }} == canvas3d_* ]]; then

.github/workflows/stylelint.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ jobs:
1111

1212
- name: Install dependencies
1313
run: |
14-
yarn install --frozen-lockfile
14+
corepack enable yarn
15+
yarn install --immutable
1516
1617
- name: Run checks
1718
run: |

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ yarn-error.log*
5050
node_modules
5151
/*env*/
5252
/.*env*
53+
perfkit.egg-info/
5354

5455
# Ignore all js dists
5556
cvat-data/dist
@@ -67,3 +68,12 @@ cvat-ui/dist
6768
# produced by allure report
6869
/**/allure-report*
6970
/**/allure-results*
71+
72+
# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
73+
**/.pnp.*
74+
**/.yarn/*
75+
**/!.yarn/patches
76+
**/!.yarn/plugins
77+
**/!.yarn/releases
78+
**/!.yarn/sdks
79+
**/!.yarn/versions

.yarnrc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodeLinker: node-modules

CHANGELOG.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,97 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1616

1717
<!-- scriv-insert-here -->
1818

19+
<a id='changelog-2.44.0'></a>
20+
## \[2.44.0\] - 2025-09-01
21+
22+
### Added
23+
24+
- Introduced bulk actions to perform operations on multiple selected resources at once
25+
- Multi-select resources using click with Ctrl, Shift or using Select all button at the top bar
26+
- Supported resources: Tasks, Jobs, Projects, Requests, Organization members, Webhooks, Cloud Storages
27+
- Supported operations: Export, Backup, Delete, Download, Change: Assignee, State, Stage, Role
28+
(<https://github.com/cvat-ai/cvat/pull/9582>)
29+
30+
- \[SDK\] Auto-annotation functions are now able to output tags
31+
(<https://github.com/cvat-ai/cvat/pull/9671>)
32+
33+
- Now it is possible to move projects and tasks between organizations
34+
(<https://github.com/cvat-ai/cvat/pull/9528>)
35+
36+
- Improved validation errors for invalid json filter queries
37+
(<https://github.com/cvat-ai/cvat/pull/9703>)
38+
39+
- \[SDK, CLI\] Support for exporting with server-generated filename
40+
(<https://github.com/cvat-ai/cvat/pull/9732>)
41+
42+
- Organization transfer now supported as a bulk action
43+
(<https://github.com/cvat-ai/cvat/pull/9727>)
44+
45+
- Ability to replace cloud storage for tasks.
46+
(<https://github.com/cvat-ai/cvat/pull/9535>)
47+
48+
- Lightweight backup option in Export backup dialog (excludes media for cloud-storage tasks).
49+
(<https://github.com/cvat-ai/cvat/pull/9535>)
50+
51+
### Changed
52+
53+
- Updated Yarn version from 1.22.22 to 4.9.2
54+
(<https://github.com/cvat-ai/cvat/pull/9688>)
55+
56+
- \[SDK\] simplified sending of custom requests with `ApiClient`, added documentation
57+
and improved related APIs. Documented using foreign libraries for sending requests.
58+
(<https://github.com/cvat-ai/cvat/pull/9730>)
59+
60+
- \[CLI\] `task backup` and `task export-dataset` now download files with the server-generated
61+
filenames by default
62+
(<https://github.com/cvat-ai/cvat/pull/9732>)
63+
- \[CLI\] `task backup` and `task export-dataset` now always export files locally,
64+
regardless of the default export location on the server
65+
(<https://github.com/cvat-ai/cvat/pull/9732>)
66+
67+
- The cvat/server Docker image is now configured with a numeric UID
68+
rather than a username
69+
(<https://github.com/cvat-ai/cvat/pull/9743>)
70+
71+
- The frontend container no longer runs as root
72+
(<https://github.com/cvat-ai/cvat/pull/9746>)
73+
74+
- \[Helm\] The Clickhouse, PostgreSQL and Redis containers now use
75+
the images from the Bitnami Legacy repository by default
76+
(<https://github.com/cvat-ai/cvat/pull/9754>)
77+
78+
- \[Compose, Helm\] The Vector container now runs as a non-root user
79+
(<https://github.com/cvat-ai/cvat/pull/9755>)
80+
81+
- \[Helm\] The Kvrocks container now has overridden UID/GID, making
82+
it compatible with the `runAsNonRoot` security context setting
83+
84+
- Made the error message when a particular image cannot be saved
85+
to a compressed chunk more useful
86+
(<https://github.com/cvat-ai/cvat/pull/9724>)
87+
88+
- When registering a user, the server will now reject overly long email,
89+
first name and last name fields, instead of truncating them
90+
(<https://github.com/cvat-ai/cvat/pull/9767>)
91+
92+
### Removed
93+
94+
- Removed deprecated `seed` parameter in job creation in favor of `random_seed`
95+
(<https://github.com/cvat-ai/cvat/pull/9744>)
96+
97+
### Fixed
98+
99+
- Invalid GT job frame numbers in backups of video tasks with custom start/stop frame or frame step
100+
(<https://github.com/cvat-ai/cvat/pull/9695>)
101+
102+
- Server error in GT job creation if the `random_per_job` frame selection method
103+
was used with the `seed` parameter.
104+
(<https://github.com/cvat-ai/cvat/pull/9744>)
105+
106+
- \[Helm\] A useless `/models` directory is no longer created in the main
107+
data volume
108+
(<https://github.com/cvat-ai/cvat/pull/9773>)
109+
19110
<a id='changelog-2.43.0'></a>
20111
## \[2.43.0\] - 2025-08-07
21112

0 commit comments

Comments
 (0)