Skip to content

Commit

Permalink
Merge pull request #9048 from cvat-ai/release-2.27.0
Browse files Browse the repository at this point in the history
Release v2.27.0
  • Loading branch information
cvat-bot[bot] authored Feb 4, 2025
2 parents 9c5ef99 + 5e77f3b commit 2839c5c
Show file tree
Hide file tree
Showing 168 changed files with 4,996 additions and 1,837 deletions.
23 changes: 6 additions & 17 deletions .github/workflows/stylelint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,12 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: '16.x'
- id: files
uses: tj-actions/changed-files@v41.0.0
with:
files: |
**/*.css
**/*.scss

- name: Run checks
- name: Install dependencies
run: |
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $CHANGED_FILES ]]; then
yarn install --frozen-lockfile
yarn install --frozen-lockfile
echo "StyleLint version: "$(npx stylelint --version)
echo "The files will be checked: "$(echo $CHANGED_FILES)
npx stylelint $CHANGED_FILES
else
echo "No files with the \"css|scss\" extension found"
fi
- name: Run checks
run: |
echo "StyleLint version: "$(yarn run -s stylelint --version)
yarn run stylelint '**/*.css' '**/*.scss'
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ __pycache__
.coverage
.husky/
.python-version
tmp*cvat/
temp*/
/tmp*cvat/
/temp*/

# Ignore generated test files
docker-compose.tests.yml
Expand Down
4 changes: 2 additions & 2 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,6 @@ disable=raw-checker-failed,
raise-missing-from,
raising-format-tuple,
wrong-exception-operation,
wildcard-import,
deprecated-module,
import-self,
preferred-module,
Expand Down Expand Up @@ -516,7 +515,8 @@ enable=singleton-comparison,
logging-unsupported-format,
logging-format-truncated,
logging-too-many-args,
logging-too-few-args
logging-too-few-args,
wildcard-import


[BASIC]
Expand Down
2 changes: 0 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
}
],
"npm.exclude": "**/.env/**",
"licenser.license": "Custom",
"licenser.customHeader": "Copyright (C) @YEAR@ CVAT.ai Corporation\n\nSPDX-License-Identifier: MIT",
"files.trimTrailingWhitespace": true,
"sqltools.connections": [
{
Expand Down
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

<!-- scriv-insert-here -->

<a id='changelog-2.27.0'></a>
## \[2.27.0\] - 2025-02-04

### Added

- Saving drawn shape on submit in `single shape` mode
(<https://github.com/cvat-ai/cvat/pull/8807>)

- An option to create tasks with consensus jobs
(<https://github.com/cvat-ai/cvat/pull/8939>)

- \[SDK\] The shapes output by auto-annotation functions are now checked
for compatibility with the function's and the task's label specs
(<https://github.com/cvat-ai/cvat/pull/9005>)

- A `threshold` parameter to UI detector runner
(<https://github.com/cvat-ai/cvat/pull/9011>)

### Changed

- `DetectorFunctionSpec` will now raise `BadFunctionError` if it detects
any violations of the documented constraints on the labels
(<https://github.com/cvat-ai/cvat/pull/9020>)

### Fixed

- Improved performance and memory utilization for quality reports in tasks with ellipses and masks
(<https://github.com/cvat-ai/cvat/pull/8990>)

- \[Compose\] An outdated version of Traefik is no longer used in
deployments with HTTPS enabled
(<https://github.com/cvat-ai/cvat/pull/9028>)

<a id='changelog-2.26.1'></a>
## \[2.26.1\] - 2025-01-29

Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,6 @@ up to 10x. Here is a list of the algorithms we support, and the platforms they c
| [HRNet](/serverless/pytorch/saic-vul/hrnet/nuclio) | interactor | PyTorch | | ✔️ |
| [Inside-Outside Guidance](/serverless/pytorch/shiyinzhang/iog/nuclio) | interactor | PyTorch | ✔️ | |
| [Faster RCNN](/serverless/tensorflow/faster_rcnn_inception_v2_coco/nuclio) | detector | TensorFlow | ✔️ | ✔️ |
| [Mask RCNN](/serverless/tensorflow/matterport/mask_rcnn/nuclio) | detector | TensorFlow | ✔️ | ✔️ |
| [RetinaNet](serverless/pytorch/facebookresearch/detectron2/retinanet_r101/nuclio) | detector | PyTorch | ✔️ | ✔️ |
| [Face Detection](/serverless/openvino/omz/intel/face-detection-0205/nuclio) | detector | OpenVINO | ✔️ | |

Expand Down
2 changes: 1 addition & 1 deletion cvat-cli/requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cvat-sdk==2.26.1
cvat-sdk==2.27.0

attrs>=24.2.0
Pillow>=10.3.0
Expand Down
2 changes: 1 addition & 1 deletion cvat-cli/src/cvat_cli/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
VERSION = "2.26.1"
VERSION = "2.27.0"
1 change: 1 addition & 0 deletions cvat-core/src/enums.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ export enum JobState {
export enum JobType {
ANNOTATION = 'annotation',
GROUND_TRUTH = 'ground_truth',
CONSENSUS_REPLICA = 'consensus_replica',
}

export enum DimensionType {
Expand Down
3 changes: 3 additions & 0 deletions cvat-core/src/server-response-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ export interface SerializedTask {
subset: string;
updated_date: string;
url: string;
consensus_enabled: boolean;
}

export interface SerializedJob {
Expand All @@ -147,6 +148,8 @@ export interface SerializedJob {
url: string;
source_storage: SerializedStorage | null;
target_storage: SerializedStorage | null;
parent_job_id: number | null;
consensus_replicas: number;
}

export type AttrInputType = 'select' | 'radio' | 'checkbox' | 'number' | 'text';
Expand Down
4 changes: 4 additions & 0 deletions cvat-core/src/session-implementation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -742,6 +742,10 @@ export function implementTask(Task: typeof TaskClass): typeof TaskClass {
taskSpec.source_storage = this.sourceStorage.toJSON();
}

if (fields.consensus_replicas) {
taskSpec.consensus_replicas = fields.consensus_replicas;
}

const taskDataSpec = {
client_files: this.clientFiles,
server_files: this.serverFiles,
Expand Down
25 changes: 23 additions & 2 deletions cvat-core/src/session.ts
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ export class Job extends Session {
frame_count?: number;
project_id: number | null;
guide_id: number | null;
task_id: number | null;
task_id: number;
labels: Label[];
dimension?: DimensionType;
data_compressed_chunk_type?: ChunkType;
Expand All @@ -505,6 +505,8 @@ export class Job extends Session {
updated_date?: string,
source_storage: Storage,
target_storage: Storage,
parent_job_id: number | null;
consensus_replicas: number;
};

constructor(initialData: InitializerType) {
Expand Down Expand Up @@ -532,6 +534,8 @@ export class Job extends Session {
updated_date: undefined,
source_storage: undefined,
target_storage: undefined,
parent_job_id: null,
consensus_replicas: undefined,
};

this.#data.id = initialData.id ?? this.#data.id;
Expand All @@ -546,6 +550,8 @@ export class Job extends Session {
this.#data.data_chunk_size = initialData.data_chunk_size ?? this.#data.data_chunk_size;
this.#data.mode = initialData.mode ?? this.#data.mode;
this.#data.created_date = initialData.created_date ?? this.#data.created_date;
this.#data.parent_job_id = initialData.parent_job_id ?? this.#data.parent_job_id;
this.#data.consensus_replicas = initialData.consensus_replicas ?? this.#data.consensus_replicas;

if (Array.isArray(initialData.labels)) {
this.#data.labels = initialData.labels.map((labelData) => {
Expand Down Expand Up @@ -641,14 +647,22 @@ export class Job extends Session {
return this.#data.guide_id;
}

public get taskId(): number | null {
public get taskId(): number {
return this.#data.task_id;
}

public get dimension(): DimensionType {
return this.#data.dimension;
}

public get parentJobId(): number | null {
return this.#data.parent_job_id;
}

public get consensusReplicas(): number {
return this.#data.consensus_replicas;
}

public get dataChunkType(): ChunkType {
return this.#data.data_compressed_chunk_type;
}
Expand Down Expand Up @@ -751,6 +765,7 @@ export class Task extends Session {
public readonly organization: number | null;
public readonly progress: { count: number; completed: number };
public readonly jobs: Job[];
public readonly consensusEnabled: boolean;

public readonly startFrame: number;
public readonly stopFrame: number;
Expand Down Expand Up @@ -810,6 +825,7 @@ export class Task extends Session {
cloud_storage_id: undefined,
sorting_method: undefined,
files: undefined,
consensus_enabled: undefined,

validation_mode: null,
};
Expand Down Expand Up @@ -887,6 +903,8 @@ export class Task extends Session {
data_chunk_size: data.data_chunk_size,
target_storage: initialData.target_storage,
source_storage: initialData.source_storage,
parent_job_id: job.parent_job_id,
consensus_replicas: job.consensus_replicas,
});
data.jobs.push(jobInstance);
}
Expand Down Expand Up @@ -994,6 +1012,9 @@ export class Task extends Session {
copyData: {
get: () => data.copy_data,
},
consensusEnabled: {
get: () => data.consensus_enabled,
},
labels: {
get: () => [...data.labels],
set: (labels: Label[]) => {
Expand Down
3 changes: 2 additions & 1 deletion cvat-sdk/cvat_sdk/auto_annotation/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
#
# SPDX-License-Identifier: MIT

from .driver import BadFunctionError, annotate_task
from .driver import annotate_task
from .exceptions import BadFunctionError
from .interface import (
DetectionFunction,
DetectionFunctionContext,
Expand Down
Loading

0 comments on commit 2839c5c

Please sign in to comment.