Skip to content

Commit 0208845

Browse files
Merge pull request #10336 from cvat-ai/release-2.59.0
Release v2.59.0
2 parents c453b3b + 164dd4b commit 0208845

119 files changed

Lines changed: 4181 additions & 1373 deletions

File tree

Some content is hidden

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

.vscode/launch.json

Lines changed: 12 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -195,29 +195,7 @@
195195
}
196196
},
197197
{
198-
"name": "server: RQ - import",
199-
"type": "debugpy",
200-
"request": "launch",
201-
"stopOnEntry": false,
202-
"justMyCode": false,
203-
"python": "${command:python.interpreterPath}",
204-
"program": "${workspaceFolder}/manage.py",
205-
"args": [
206-
"rqworker",
207-
"import",
208-
"--worker-class",
209-
"cvat.rqworker.SimpleWorker"
210-
],
211-
"django": true,
212-
"cwd": "${workspaceFolder}",
213-
"env": {
214-
"DJANGO_LOG_SERVER_HOST": "localhost",
215-
"DJANGO_LOG_SERVER_PORT": "8282"
216-
},
217-
"console": "internalConsole"
218-
},
219-
{
220-
"name": "server: RQ - export",
198+
"name": "server: RQ - worker",
221199
"type": "debugpy",
222200
"request": "launch",
223201
"stopOnEntry": false,
@@ -226,31 +204,18 @@
226204
"program": "${workspaceFolder}/manage.py",
227205
"args": [
228206
"rqworker",
207+
"--worker-class=cvat.rqworker.SimpleWorker",
208+
// high priority
209+
"chunks",
210+
// normal priority
211+
"annotation",
212+
"consensus",
229213
"export",
230-
"--worker-class",
231-
"cvat.rqworker.SimpleWorker",
232-
],
233-
"django": true,
234-
"cwd": "${workspaceFolder}",
235-
"env": {
236-
"DJANGO_LOG_SERVER_HOST": "localhost",
237-
"DJANGO_LOG_SERVER_PORT": "8282"
238-
},
239-
"console": "internalConsole"
240-
},
241-
{
242-
"name": "server: RQ - quality reports",
243-
"type": "debugpy",
244-
"request": "launch",
245-
"stopOnEntry": false,
246-
"justMyCode": false,
247-
"python": "${command:python.interpreterPath}",
248-
"program": "${workspaceFolder}/manage.py",
249-
"args": [
250-
"rqworker",
214+
"import",
251215
"quality_reports",
252-
"--worker-class",
253-
"cvat.rqworker.SimpleWorker",
216+
"webhooks",
217+
// low priority
218+
"cleaning",
254219
],
255220
"django": true,
256221
"cwd": "${workspaceFolder}",
@@ -279,110 +244,6 @@
279244
},
280245
"console": "internalConsole"
281246
},
282-
{
283-
"name": "server: RQ - annotation",
284-
"type": "debugpy",
285-
"request": "launch",
286-
"justMyCode": false,
287-
"stopOnEntry": false,
288-
"python": "${command:python.interpreterPath}",
289-
"program": "${workspaceFolder}/manage.py",
290-
"args": [
291-
"rqworker",
292-
"annotation",
293-
"--worker-class",
294-
"cvat.rqworker.SimpleWorker",
295-
],
296-
"django": true,
297-
"cwd": "${workspaceFolder}",
298-
"env": {},
299-
"console": "internalConsole"
300-
},
301-
{
302-
"name": "server: RQ - webhooks",
303-
"type": "debugpy",
304-
"request": "launch",
305-
"justMyCode": false,
306-
"stopOnEntry": false,
307-
"python": "${command:python.interpreterPath}",
308-
"program": "${workspaceFolder}/manage.py",
309-
"args": [
310-
"rqworker",
311-
"webhooks",
312-
"--worker-class",
313-
"cvat.rqworker.SimpleWorker",
314-
],
315-
"django": true,
316-
"cwd": "${workspaceFolder}",
317-
"env": {},
318-
"console": "internalConsole"
319-
},
320-
{
321-
"name": "server: RQ - cleaning",
322-
"type": "debugpy",
323-
"request": "launch",
324-
"stopOnEntry": false,
325-
"justMyCode": false,
326-
"python": "${command:python.interpreterPath}",
327-
"program": "${workspaceFolder}/manage.py",
328-
"args": [
329-
"rqworker",
330-
"cleaning",
331-
"--worker-class",
332-
"cvat.rqworker.SimpleWorker"
333-
],
334-
"django": true,
335-
"cwd": "${workspaceFolder}",
336-
"env": {
337-
"DJANGO_LOG_SERVER_HOST": "localhost",
338-
"DJANGO_LOG_SERVER_PORT": "8282"
339-
},
340-
"console": "internalConsole"
341-
},
342-
{
343-
"name": "server: RQ - chunks",
344-
"type": "debugpy",
345-
"request": "launch",
346-
"stopOnEntry": false,
347-
"justMyCode": false,
348-
"python": "${command:python.interpreterPath}",
349-
"program": "${workspaceFolder}/manage.py",
350-
"args": [
351-
"rqworker",
352-
"chunks",
353-
"--worker-class",
354-
"cvat.rqworker.SimpleWorker"
355-
],
356-
"django": true,
357-
"cwd": "${workspaceFolder}",
358-
"env": {
359-
"DJANGO_LOG_SERVER_HOST": "localhost",
360-
"DJANGO_LOG_SERVER_PORT": "8282"
361-
},
362-
"console": "internalConsole"
363-
},
364-
{
365-
"name": "server: RQ - consensus",
366-
"type": "debugpy",
367-
"request": "launch",
368-
"stopOnEntry": false,
369-
"justMyCode": false,
370-
"python": "${command:python.interpreterPath}",
371-
"program": "${workspaceRoot}/manage.py",
372-
"args": [
373-
"rqworker",
374-
"consensus",
375-
"--worker-class",
376-
"cvat.rqworker.SimpleWorker"
377-
],
378-
"django": true,
379-
"cwd": "${workspaceFolder}",
380-
"env": {
381-
"DJANGO_LOG_SERVER_HOST": "localhost",
382-
"DJANGO_LOG_SERVER_PORT": "8282"
383-
},
384-
"console": "internalConsole"
385-
},
386247
{
387248
"name": "server: migrate",
388249
"type": "debugpy",
@@ -557,15 +418,8 @@
557418
"name": "server: debug",
558419
"configurations": [
559420
"server: django",
560-
"server: RQ - import",
561-
"server: RQ - export",
562-
"server: RQ - annotation",
563-
"server: RQ - webhooks",
421+
"server: RQ - worker",
564422
"server: RQ - scheduler",
565-
"server: RQ - quality reports",
566-
"server: RQ - cleaning",
567-
"server: RQ - chunks",
568-
"server: RQ - consensus",
569423
]
570424
}
571425
]

CHANGELOG.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,65 @@ 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.59.0'></a>
20+
## \[2.59.0\] - 2026-03-06
21+
22+
### Added
23+
24+
- Docker compose to run SAM2 agent
25+
(<https://github.com/cvat-ai/cvat/pull/10272>)
26+
27+
- Added support for using cloud storage as backing storage for local tasks
28+
(<https://github.com/cvat-ai/cvat/pull/10282>)
29+
30+
- Feature to download Projects, Tasks, Jobs list as `.csv` table
31+
(<https://github.com/cvat-ai/cvat/pull/10312>)
32+
33+
### Changed
34+
35+
- Changed the display of parent and replica jobs to a flat list.
36+
For convenience, jobs are now marked with “parent” and “replica” tags.
37+
By default, replica jobs are hidden using a filter, but they can be shown if needed.
38+
(<https://github.com/cvat-ai/cvat/pull/10217>)
39+
40+
- Consistent behaviour for Tab/Shift+Tab on 2D and 3D workspace
41+
(<https://github.com/cvat-ai/cvat/pull/10299>)
42+
43+
- Filters on a task page and on jobs page now create a new browser history entry,
44+
enabling Back/Forward navigation between filter states.
45+
(<https://github.com/cvat-ai/cvat/pull/10217>)
46+
47+
- Models page is now always visible on UI, regardless of whether the serverless module is installed
48+
(<https://github.com/cvat-ai/cvat/pull/10333>)
49+
50+
### Deprecated
51+
52+
- \[Server API\] `GET api/jobs` and `GET api/jobs/{id}/` responses:
53+
- `consensus_replicas` - deprecated in favor of the new `replicas_count` field,
54+
(<https://github.com/cvat-ai/cvat/pull/10217>)
55+
56+
- Property `MODELS` from `/api/server/plugins` now unused on client and soon will be removed from the response
57+
(<https://github.com/cvat-ai/cvat/pull/10333>)
58+
59+
### Removed
60+
61+
- Field `consensus_replicas`, used for consensus-based tasks, removed from task backups.
62+
Backups created before this change can still be imported, but newer backups will require
63+
a recent CVAT version.
64+
(<https://github.com/cvat-ai/cvat/pull/10294>)
65+
66+
- Deprecated properties `GIT_INTEGRATION` and `PREDICT` from `/api/server/plugins`
67+
(<https://github.com/cvat-ai/cvat/pull/10333>)
68+
69+
### Fixed
70+
71+
- The `POST /api/task/<id>/data` endpoint now responds with a correct
72+
`Location` header when invoked without a trailing slash
73+
(<https://github.com/cvat-ai/cvat/pull/10266>)
74+
75+
- Ground truth annotations are not locked in review mode of regular jobs
76+
(<https://github.com/cvat-ai/cvat/pull/10273>)
77+
1978
<a id='changelog-2.58.0'></a>
2079
## \[2.58.0\] - 2026-02-23
2180

Dockerfile.ui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ DISABLE_SOURCE_MAPS="${DISABLE_SOURCE_MAPS}" \
3636
UI_APP_CONFIG="${UI_APP_CONFIG}" \
3737
SOURCE_MAPS_TOKEN="${SOURCE_MAPS_TOKEN}" yarn run build:cvat-ui
3838

39-
FROM nginxinc/nginx-unprivileged:1.29.2-alpine3.22-slim
39+
FROM nginxinc/nginx-unprivileged:1.29.5-alpine3.23-slim
4040

4141
# Replace default.conf configuration to remove unnecessary rules
4242
COPY cvat-ui/react_nginx.conf /etc/nginx/conf.d/default.conf

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ up to 10x. Here is a list of the algorithms we support, and the platforms they c
194194
| Name | Type | Framework | CPU | GPU |
195195
| ------------------------------------------------------------------------------------------------------- | ---------- | ---------- | --- | --- |
196196
| [Segment Anything](/serverless/pytorch/facebookresearch/sam/nuclio/) | interactor | PyTorch | ✔️ | ✔️ |
197-
| [Deep Extreme Cut](/serverless/openvino/dextr/nuclio) | interactor | OpenVINO | ✔️ | |
198197
| [Faster RCNN](/serverless/openvino/omz/public/faster_rcnn_inception_resnet_v2_atrous_coco/nuclio) | detector | OpenVINO | ✔️ | |
199198
| [Mask RCNN](/serverless/openvino/omz/public/mask_rcnn_inception_resnet_v2_atrous_coco/nuclio) | detector | OpenVINO | ✔️ | |
200199
| [YOLO v3](/serverless/openvino/omz/public/yolo-v3-tf/nuclio) | detector | OpenVINO | ✔️ | |
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: cvat-sam2-agent
3+
description: A chart to deploy CVAT SAM2 Agent.
4+
type: application
5+
version: 0.1.0
6+
appVersion: "1.0.4"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== CVAT SAM2 Agent ===
2+
3+
Agent deployed with {{ .Values.agent.replicaCount }} replica(s).
4+
CVAT URL: {{ .Values.agent.cvat_base_url }}
5+
Model: {{ .Values.agent.model_id }}
6+
7+
The function registration job runs as a pre-install/pre-upgrade hook.
8+
Check its status:
9+
kubectl get jobs -n {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }}
10+
11+
View agent logs:
12+
kubectl logs -n {{ .Release.Namespace }} -l app.kubernetes.io/name={{ .Chart.Name }},app.kubernetes.io/component!=job -f
13+
14+
{{- if .Values.agent.cvat_access_token }}
15+
WARNING: You are using a hardcoded CVAT access token in plain text. This token WILL be visible in the Helm release history and in pod definition.
16+
Consider using .Values.agent.secret_env to store the token in a Kubernetes Secret for better security.
17+
NB! this token overrides the value from .Values.agent.secret_env if both are set.
18+
{{- end }}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ include "agent.fullname" . }}
5+
labels:
6+
{{- include "agent.labels" . | nindent 4 }}
7+
spec:
8+
replicas: {{ .Values.agent.replicaCount }}
9+
selector:
10+
matchLabels:
11+
{{- include "agent.selectorLabels" . | nindent 6 }}
12+
template:
13+
metadata:
14+
labels:
15+
{{- include "agent.selectorLabels" . | nindent 8 }}
16+
spec:
17+
securityContext:
18+
{{- include "agent.podSecurityContext" . | nindent 8 }}
19+
containers:
20+
- name: {{ .Chart.Name }}
21+
securityContext:
22+
allowPrivilegeEscalation: false
23+
{{- include "agent.image" . | nindent 10 }}
24+
#NB! configMap is created by job.yaml
25+
envFrom:
26+
- configMapRef:
27+
optional: true
28+
name: {{ include "agent.fullname" . }}-config
29+
env:
30+
{{- include "agent.commonEnv" . | nindent 12 }}
31+
- name: USE_CUDA
32+
value: {{ .Values.agent.use_cuda | default "false" | quote }}
33+
{{- range .Values.agent.envVars }}
34+
- name: {{ .name }}
35+
value: {{ .value | quote }}
36+
{{- end }}
37+
resources:
38+
{{- toYaml .Values.agent.resources | nindent 12 }}

0 commit comments

Comments
 (0)