Skip to content

Commit

Permalink
Merge pull request #7340 from opencv/release-2.10.0
Browse files Browse the repository at this point in the history
Release v2.10.0
  • Loading branch information
cvat-bot[bot] authored Jan 10, 2024
2 parents efd932d + c36ec24 commit d66d043
Show file tree
Hide file tree
Showing 175 changed files with 3,568 additions and 2,155 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/bandit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: tj-actions/changed-files@v35.9.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
**/*.py
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/black.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: tj-actions/changed-files@v35.9.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
cvat-sdk/**/*.py
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -210,9 +210,8 @@ jobs:
python cvat/apps/iam/rules/tests/generate_tests.py \
--output-dir cvat/apps/iam/rules/
curl -L -o opa https://openpolicyagent.org/downloads/v0.45.0/opa_linux_amd64_static
chmod +x ./opa
./opa test cvat/apps/iam/rules
docker compose run --rm -v "$PWD/cvat/apps/iam/rules/:/mnt/rules" \
cvat_opa test /mnt/rules
- name: Running unit tests
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hadolint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: tj-actions/changed-files@v35.9.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
**/Dockerfile*
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/isort.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: tj-actions/changed-files@v35.9.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
cvat-sdk/**/*.py
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,8 @@ jobs:
python cvat/apps/iam/rules/tests/generate_tests.py \
--output-dir cvat/apps/iam/rules/
curl -L -o opa https://openpolicyagent.org/downloads/v0.45.0/opa_linux_amd64_static
chmod +x ./opa
./opa test cvat/apps/iam/rules
docker compose run --rm -v "$PWD/cvat/apps/iam/rules/:/mnt/rules" \
cvat_opa test /mnt/rules
- name: Running unit tests
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: tj-actions/changed-files@v35.9.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
**/*.py
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/stylelint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
with:
node-version: '16.x'
- id: files
uses: tj-actions/changed-files@v35.9.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
**/*.css
Expand Down
3 changes: 0 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,6 @@
}
],
"python.defaultInterpreterPath": "${workspaceFolder}/.env/",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.linting.pycodestyleEnabled": false,
"python.testing.pytestArgs": [
"--rootdir","${workspaceFolder}/tests/"
],
Expand Down
64 changes: 64 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,70 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

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

<a id='changelog-2.10.0'></a>
## \[2.10.0\] - 2024-01-10

### Changed

- When the `ORG_INVITATION_CONFIRM` setting is enabled, organization invitations for existing users are no
longer accepted automatically. Instead, the invitee can now review the invitation and choose to accept or decline it.
(<https://github.com/opencv/cvat/pull/7138>)

- \[Compose, Helm\] Updated Clickhouse to version 23.11.*
(<https://github.com/opencv/cvat/pull/7268>)

- Job queues are now stored in a dedicated Redis instance
(<https://github.com/opencv/cvat/pull/7245>)

### Removed

- PermissionDenied error thrown before OPA call in case if user is not a member of organization
(<https://github.com/opencv/cvat/pull/7259>)

### Fixed

- Can not input Chinese correctly in text attributes on objects sidebar
(<https://github.com/opencv/cvat/pull/6916>)

- Restored Compose file compatibility with Docker Compose 2.17.0 and earlier
(<https://github.com/opencv/cvat/pull/7170>)

- Attaching GCS and AWS S3 buckets with dots in name
(<https://github.com/opencv/cvat/pull/7227>)

- Annotation actions are applied to the objects from a ground truth job
(<https://github.com/opencv/cvat/pull/7281>)
- Ground truth objects removed together with annotation objects when press "Remove annotations" in menu
(<https://github.com/opencv/cvat/pull/7281>)
- Frame search by a filter is affected by ground truth annotations
(<https://github.com/opencv/cvat/pull/7281>)

- Creating duplicating annotations when nginx throws 504 timeout status (workaround)
(<https://github.com/opencv/cvat/pull/7286>)

- `TIFF` images are saved as `JPEG` images with `.tif` extension in original chunks
(<https://github.com/opencv/cvat/pull/7100>)
- EXIF rotated TIFF images are handled incorrectly
(<https://github.com/opencv/cvat/pull/7100>)

- RQ Scheduler launch, broken in PR 7245
(<https://github.com/opencv/cvat/pull/7293>)

- UI crashes if user highligts conflict related to annotations hidden by a filter
(<https://github.com/opencv/cvat/pull/7299>)
- Annotations conflicts are not highligted properly on the first frame of a job
(<https://github.com/opencv/cvat/pull/7299>)

- Error message `Edge's nodeFrom ${dataNodeFrom} or nodeTo ${dataNodeTo} do not to refer to any node`
when upload a file with some abscent skeleton nodes (<https://github.com/opencv/cvat/pull/7302>)
- Wrong context menu position in skeleton configurator (Firefox only)
(<https://github.com/opencv/cvat/pull/7302>)
- Fixed console error `(Error: <rect> attribute width: A negative value is not valid`
appearing when skeleton with all outside elements is created (<https://github.com/opencv/cvat/pull/7302>)

- Updating cloud storage attached to CVAT using Azure connection string
(<https://github.com/opencv/cvat/pull/7336>)

<a id='changelog-2.9.2'></a>
## \[2.9.2\] - 2023-12-11

Expand Down
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ RUN apt-get update && \
p7zip-full \
poppler-utils \
python3 \
python3-distutils \
python3-venv \
supervisor \
tzdata \
Expand Down Expand Up @@ -177,7 +176,7 @@ RUN if [ "${CVAT_DEBUG_ENABLED}" = 'yes' ]; then \
COPY cvat/nginx.conf /etc/nginx/nginx.conf
COPY --chown=${USER} components /tmp/components
COPY --chown=${USER} supervisord/ ${HOME}/supervisord
COPY --chown=${USER} wait-for-it.sh manage.py backend_entrypoint.sh ${HOME}/
COPY --chown=${USER} wait-for-it.sh manage.py backend_entrypoint.sh wait_for_deps.sh ${HOME}/
COPY --chown=${USER} utils/ ${HOME}/utils
COPY --chown=${USER} cvat/ ${HOME}/cvat
COPY --chown=${USER} rqscheduler.py ${HOME}
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
MIT License

Copyright (c) 2018-2022 Intel Corporation
Copyright (c) 2022 CVAT.ai Corporation
Copyright (c) 2022-2024 CVAT.ai Corporation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ questions and get our support.
[docker-server-image-url]: https://hub.docker.com/r/cvat/server
[docker-ui-pulls-img]: https://img.shields.io/docker/pulls/cvat/ui.svg?style=flat-square&label=UI%20pulls
[docker-ui-image-url]: https://hub.docker.com/r/cvat/ui
[ci-img]: https://github.com/opencv/cvat/workflows/CI/badge.svg?branch=develop
[ci-img]: https://github.com/opencv/cvat/actions/workflows/main.yml/badge.svg?branch=develop
[ci-url]: https://github.com/opencv/cvat/actions
[gitter-img]: https://img.shields.io/gitter/room/opencv-cvat/public?style=flat
[gitter-url]: https://gitter.im/opencv-cvat/public
Expand Down
2 changes: 1 addition & 1 deletion cvat-canvas/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cvat-canvas",
"version": "2.19.0",
"version": "2.19.1",
"type": "module",
"description": "Part of Computer Vision Annotation Tool which presents its canvas library",
"main": "src/canvas.ts",
Expand Down
2 changes: 1 addition & 1 deletion cvat-canvas/src/typescript/canvas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ class CanvasImpl implements Canvas {
this.model.activate(clientID, attributeID);
}

public highlight(clientIDs: number[] | null, severity: HighlightSeverity | null = null): void {
public highlight(clientIDs: number[], severity: HighlightSeverity | null = null): void {
this.model.highlight(clientIDs, severity);
}

Expand Down
23 changes: 8 additions & 15 deletions cvat-canvas/src/typescript/canvasModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ export enum HighlightSeverity {
}

export interface HighlightedElements {
elementsIDs: number [];
severity: HighlightSeverity;
elementsIDs: number[];
severity: HighlightSeverity | null;
}

export enum RectDrawingMethod {
Expand Down Expand Up @@ -267,7 +267,7 @@ export interface CanvasModel {
setup(frameData: any, objectStates: any[], zLayer: number): void;
setupIssueRegions(issueRegions: Record<number, { hidden: boolean; points: number[] }>): void;
activate(clientID: number | null, attributeID: number | null): void;
highlight(clientIDs: number[] | null, severity: HighlightSeverity): void;
highlight(clientIDs: number[], severity: HighlightSeverity): void;
rotate(rotationAngle: number): void;
focus(clientID: number, padding: number): void;
fit(): void;
Expand Down Expand Up @@ -641,18 +641,11 @@ export class CanvasModelImpl extends MasterImpl implements CanvasModel {
this.notify(UpdateReasons.SHAPE_ACTIVATED);
}

public highlight(clientIDs: number[] | null, severity: HighlightSeverity | null): void {
if (Array.isArray(clientIDs)) {
this.data.highlightedElements = {
elementsIDs: clientIDs,
severity,
};
} else {
this.data.highlightedElements = {
elementsIDs: [],
severity: null,
};
}
public highlight(clientIDs: number[], severity: HighlightSeverity | null): void {
this.data.highlightedElements = {
elementsIDs: clientIDs,
severity,
};

this.notify(UpdateReasons.SHAPE_HIGHLIGHTED);
}
Expand Down
25 changes: 15 additions & 10 deletions cvat-canvas/src/typescript/canvasView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2851,7 +2851,9 @@ export class CanvasViewImpl implements CanvasView, Listener {

return this.adoptedText
.text((block): void => {
block.tspan(`${withLabel ? label.name : ''} ${withID ? clientID : ''} ${withSource ? `(${source})` : ''}`).style({
block.tspan(`${withLabel ? label.name : ''} ` +
`${withID ? clientID : ''} ` +
`${withSource ? `(${source})` : ''}`).style({
'text-transform': 'uppercase',
});
if (withDescriptions) {
Expand Down Expand Up @@ -3068,11 +3070,7 @@ export class CanvasViewImpl implements CanvasView, Listener {

const SVGElement = makeSVGFromTemplate(state.label.structure.svg);

let xtl = Number.MAX_SAFE_INTEGER;
let ytl = Number.MAX_SAFE_INTEGER;
let xbr = Number.MIN_SAFE_INTEGER;
let ybr = Number.MIN_SAFE_INTEGER;

let [xtl, ytl, xbr, ybr] = [null, null, null, null];
const svgElements: Record<number, SVG.Element> = {};
const templateElements = Array.from(SVGElement.children()).filter((el: SVG.Element) => el.type === 'circle');
for (let i = 0; i < state.elements.length; i++) {
Expand All @@ -3082,10 +3080,10 @@ export class CanvasViewImpl implements CanvasView, Listener {
const [cx, cy] = this.translateToCanvas(points);

if (!element.outside) {
xtl = Math.min(xtl, cx);
ytl = Math.min(ytl, cy);
xbr = Math.max(xbr, cx);
ybr = Math.max(ybr, cy);
xtl = xtl === null ? cx : Math.min(xtl, cx);
ytl = ytl === null ? cy : Math.min(ytl, cy);
xbr = xbr === null ? cx : Math.max(xbr, cx);
ybr = ybr === null ? cy : Math.max(ybr, cy);
}

const templateElement = templateElements.find((el: SVG.Circle) => el.attr('data-label-id') === element.label.id);
Expand Down Expand Up @@ -3180,6 +3178,13 @@ export class CanvasViewImpl implements CanvasView, Listener {
}
}

// if all elements were outside, set coordinates to zeros
xtl = xtl || 0;
ytl = ytl || 0;
xbr = xbr || 0;
ybr = ybr || 0;

// apply bounding box margin
xtl -= consts.SKELETON_RECT_MARGIN;
ytl -= consts.SKELETON_RECT_MARGIN;
xbr += consts.SKELETON_RECT_MARGIN;
Expand Down
4 changes: 2 additions & 2 deletions cvat-cli/requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
cvat-sdk~=2.9.2
Pillow>=10.0.1
cvat-sdk~=2.10.0
Pillow>=10.1.0
setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability
6 changes: 3 additions & 3 deletions cvat-cli/src/cvat_cli/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
import logging
import os
import textwrap
from distutils.util import strtobool
from pathlib import Path
from typing import Any, Tuple

from attr.converters import to_bool
from cvat_sdk.core.proxies.tasks import ResourceType

from .version import VERSION
Expand Down Expand Up @@ -60,7 +60,7 @@ def parse_function_parameter(s: str) -> Tuple[str, Any]:
elif type_ == "str":
pass
elif type_ == "bool":
value = bool(strtobool(value))
value = to_bool(value)
else:
raise argparse.ArgumentTypeError(f"unsupported parameter type {type_!r}")

Expand Down Expand Up @@ -339,7 +339,7 @@ def make_cmdline_parser() -> argparse.ArgumentParser:
)
dump_parser.add_argument(
"--with-images",
type=strtobool,
type=to_bool,
default=False,
dest="include_images",
help="Whether to include images or not (default: %(default)s)",
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.9.2"
VERSION = "2.10.0"
2 changes: 1 addition & 1 deletion cvat-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cvat-core",
"version": "12.2.0",
"version": "14.0.3",
"type": "module",
"description": "Part of Computer Vision Tool which presents an interface for client-side integration",
"main": "src/api.ts",
Expand Down
4 changes: 2 additions & 2 deletions cvat-core/src/annotation-formats.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
//
// SPDX-License-Identifier: MIT

import { DimensionType } from 'enums';
import { DimensionType } from './enums';
import {
SerializedAnnotationExporter,
SerializedAnnotationFormats,
SerializedAnnotationImporter,
} from 'server-response-types';
} from './server-response-types';

export class Loader {
public name: string;
Expand Down
Loading

0 comments on commit d66d043

Please sign in to comment.