Skip to content

Commit

Permalink
Release v2.4.5 (#6233)
Browse files Browse the repository at this point in the history
## \[2.4.5] - 2023-06-02
### Added
- Integrated support for sharepoint and cloud storage files, along with
directories to be omitted during task creation (server)
(<#6074>)
- Enabled task creation with directories from cloud storage or
sharepoint (<#6074>)
- Enhanced task creation to support any data type supported by the
server
by default, from cloud storage without the necessity for the `use_cache`
option (<#6074>)
- Added capability for task creation with data from cloud storage
without the `use_cache` option
(<#6074>)

### Changed
- User can now access resource links from any organization or sandbox,
granted it's available to them
(<#5892>)
- Cloud storage manifest files have been made optional
(<#6074>)
- Updated Django to the 4.2.x version
(<#6122>)
- Renamed certain Nuclio functions to adhere to a common naming
convention. For instance,
`onnx-yolov7` -> `onnx-wongkinyiu-yolov7`, `ultralytics-yolov5` ->
`pth-ultralytics-yolov5`
  (<#6140>)

### Deprecated
- Deprecated the endpoint `/cloudstorages/{id}/content`
(<#6074>)

### Fixed
- Fixed the issue of skeletons dumping on created tasks/projects
(<#6157>)
- Resolved an issue related to saving annotations for skeleton tracks
(<#6075>)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Boris Sekachev <boris.sekachev@yandex.ru>
Co-authored-by: Roman Donchenko <roman@cvat.ai>
Co-authored-by: Maria Khrustaleva <maya17grd@gmail.com>
Co-authored-by: Boris Sekachev <sekachev.bs@gmail.com>
Co-authored-by: Nikita Manovich <nikita@cvat.ai>
Co-authored-by: Anastasia Yasakova <yasakova_anastasiya@mail.ru>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kirill Sizov <kirill.sizov@cvat.ai>
Co-authored-by: Paweł Kotiuk <kotiuk@zohomail.eu>
Co-authored-by: SK <450723+senthilkumarkj@users.noreply.github.com>
Co-authored-by: Kirill Lakhov <kirill.9992@gmail.com>
13 people authored Jun 2, 2023
1 parent d5ef45a commit 0900b52
Showing 125 changed files with 3,332 additions and 3,256 deletions.
20 changes: 7 additions & 13 deletions .github/workflows/bandit.yml
Original file line number Diff line number Diff line change
@@ -6,22 +6,16 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: jitterbit/get-changed-files@v1
continue-on-error: true
uses: tj-actions/changed-files@v35.9.2
with:
files: |
**/*.py
files_ignore: |
**/cvat-sdk/*
- name: Run checks
env:
PR_FILES_AM: ${{ steps.files.outputs.added_modified }}
PR_FILES_RENAMED: ${{ steps.files.outputs.renamed }}
run: |
PR_FILES="$PR_FILES_AM $PR_FILES_RENAMED"
for FILE in $PR_FILES; do
EXTENSION="${FILE##*.}"
DIRECTORY="${FILE%%/*}"
if [[ "$EXTENSION" == 'py' && "$DIRECTORY" != 'cvat-sdk' ]]; then
CHANGED_FILES+=" $FILE"
fi
done
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $CHANGED_FILES ]]; then
sudo apt-get --no-install-recommends install -y build-essential curl python3-dev python3-pip python3-venv
45 changes: 8 additions & 37 deletions .github/workflows/black.yml
Original file line number Diff line number Diff line change
@@ -6,8 +6,13 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: jitterbit/get-changed-files@v1
continue-on-error: true
uses: tj-actions/changed-files@v35.9.2
with:
files: |
cvat-sdk/**/*.py
cvat-cli/**/*.py
tests/python/**/*.py
dir_names: true

- name: Run checks
env:
@@ -17,42 +22,8 @@ jobs:
# If different modules use different Black configs,
# we need to run Black for each python component group separately.
# Otherwise, they all will use the same config.
ENABLED_DIRS=("cvat-sdk" "cvat-cli" "tests/python")
isValueIn () {
# Checks if a value is in an array
# https://stackoverflow.com/a/8574392
# args: value, array
local e match="$1"
shift
for e; do
[[ "$e" == "$match" ]] && return 0;
done
return 1
}
startswith () {
# Inspired by https://stackoverflow.com/a/2172367
# Checks if the first arg starts with the second one
local value="$1"
local beginning="$2"
return $([[ $value == ${beginning}* ]])
}
PR_FILES="$PR_FILES_AM $PR_FILES_RENAMED"
UPDATED_DIRS=""
for FILE in $PR_FILES; do
EXTENSION="${FILE##*.}"
DIRECTORY="$(dirname $FILE)"
if [[ "$EXTENSION" == "py" ]]; then
for EDIR in ${ENABLED_DIRS[@]}; do
if startswith "${DIRECTORY}/" "${EDIR}/" && ! isValueIn "${EDIR}" ${UPDATED_DIRS[@]};
then
UPDATED_DIRS+=" ${EDIR}"
fi
done
fi
done
UPDATED_DIRS="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $UPDATED_DIRS ]]; then
sudo apt-get --no-install-recommends install -y build-essential curl python3-dev python3-pip python3-venv
15 changes: 5 additions & 10 deletions .github/workflows/hadolint.yml
Original file line number Diff line number Diff line change
@@ -6,23 +6,18 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: jitterbit/get-changed-files@v1
continue-on-error: true
uses: tj-actions/changed-files@v35.9.2
with:
files: |
**/Dockerfile*
- name: Run checks
env:
HADOLINT: "${{ github.workspace }}/hadolint"
HADOLINT_VER: "2.1.0"
VERIFICATION_LEVEL: "error"
PR_FILES_AM: ${{ steps.files.outputs.added_modified }}
PR_FILES_RENAMED: ${{ steps.files.outputs.renamed }}
run: |
PR_FILES="$PR_FILES_AM $PR_FILES_RENAMED"
for FILE in $PR_FILES; do
if [[ $FILE =~ 'Dockerfile' ]]; then
CHANGED_FILES+=" $FILE"
fi
done
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $CHANGED_FILES ]]; then
curl -sL -o $HADOLINT "https://github.com/hadolint/hadolint/releases/download/v$HADOLINT_VER/hadolint-Linux-x86_64" && chmod 700 $HADOLINT
2 changes: 1 addition & 1 deletion .github/workflows/helm.yml
Original file line number Diff line number Diff line change
@@ -82,4 +82,4 @@ jobs:
# They are still tested without Helm
run: |
kubectl cp tests/mounted_file_share/images $(kubectl get pods -l component=server -o jsonpath='{.items[0].metadata.name}'):/home/django/share
pytest --timeout 30 --platform=kube -m "not with_external_services" tests/python
pytest --timeout 30 --platform=kube -m "not with_external_services" tests/python --log-cli-level DEBUG
48 changes: 8 additions & 40 deletions .github/workflows/isort.yml
Original file line number Diff line number Diff line change
@@ -6,53 +6,21 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: jitterbit/get-changed-files@v1
continue-on-error: true
uses: tj-actions/changed-files@v35.9.2
with:
files: |
cvat-sdk/**/*.py
cvat-cli/**/*.py
tests/python/**/*.py
dir_names: true

- name: Run checks
env:
PR_FILES_AM: ${{ steps.files.outputs.added_modified }}
PR_FILES_RENAMED: ${{ steps.files.outputs.renamed }}
run: |
# If different modules use different isort configs,
# we need to run isort for each python component group separately.
# Otherwise, they all will use the same config.
ENABLED_DIRS=("cvat-sdk" "cvat-cli" "tests/python")
isValueIn () {
# Checks if a value is in an array
# https://stackoverflow.com/a/8574392
# args: value, array
local e match="$1"
shift
for e; do
[[ "$e" == "$match" ]] && return 0;
done
return 1
}
startswith () {
# Inspired by https://stackoverflow.com/a/2172367
# Checks if the first arg starts with the second one
local value="$1"
local beginning="$2"
return $([[ $value == ${beginning}* ]])
}
PR_FILES="$PR_FILES_AM $PR_FILES_RENAMED"
UPDATED_DIRS=""
for FILE in $PR_FILES; do
EXTENSION="${FILE##*.}"
DIRECTORY="$(dirname $FILE)"
if [[ "$EXTENSION" == "py" ]]; then
for EDIR in ${ENABLED_DIRS[@]}; do
if startswith "${DIRECTORY}/" "${EDIR}/" && ! isValueIn "${EDIR}" ${UPDATED_DIRS[@]};
then
UPDATED_DIRS+=" ${EDIR}"
fi
done
fi
done
UPDATED_DIRS="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $UPDATED_DIRS ]]; then
sudo apt-get --no-install-recommends install -y build-essential curl python3-dev python3-pip python3-venv
14 changes: 5 additions & 9 deletions .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
@@ -6,21 +6,17 @@ jobs:
steps:
- uses: actions/checkout@v3
- id: files
uses: jitterbit/get-changed-files@v1
continue-on-error: true
uses: tj-actions/changed-files@v35.9.2
with:
files: |
**/*.py
- name: Run checks
env:
PR_FILES_AM: ${{ steps.files.outputs.added_modified }}
PR_FILES_RENAMED: ${{ steps.files.outputs.renamed }}
run: |
PR_FILES="$PR_FILES_AM $PR_FILES_RENAMED"
for FILE in $PR_FILES; do
EXTENSION="${FILE##*.}"
if [[ "$EXTENSION" == 'py' ]]; then
CHANGED_FILES+=" $FILE"
fi
done
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $CHANGED_FILES ]]; then
sudo apt-get --no-install-recommends install -y build-essential curl python3-dev python3-pip python3-venv
18 changes: 6 additions & 12 deletions .github/workflows/stylelint.yml
Original file line number Diff line number Diff line change
@@ -9,21 +9,15 @@ jobs:
with:
node-version: '16.x'
- id: files
uses: jitterbit/get-changed-files@v1
continue-on-error: true
uses: tj-actions/changed-files@v35.9.2
with:
files: |
**/*.css
**/*.scss
- name: Run checks
env:
PR_FILES_AM: ${{ steps.files.outputs.added_modified }}
PR_FILES_RENAMED: ${{ steps.files.outputs.renamed }}
run: |
PR_FILES="$PR_FILES_AM $PR_FILES_RENAMED"
for FILE in $PR_FILES; do
EXTENSION="${FILE##*.}"
if [[ $EXTENSION == 'css' || $EXTENSION == 'scss' ]]; then
CHANGED_FILES+=" $FILE"
fi
done
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"
if [[ ! -z $CHANGED_FILES ]]; then
yarn install --frozen-lockfile
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## \[2.4.5] - 2023-06-02
### Added
- Integrated support for sharepoint and cloud storage files, along with
directories to be omitted during task creation (server) (<https://github.com/opencv/cvat/pull/6074>)
- Enabled task creation with directories from cloud storage or sharepoint (<https://github.com/opencv/cvat/pull/6074>)
- Enhanced task creation to support any data type supported by the server
by default, from cloud storage without the necessity for the `use_cache` option (<https://github.com/opencv/cvat/pull/6074>)
- Added capability for task creation with data from cloud storage without the `use_cache` option (<https://github.com/opencv/cvat/pull/6074>)

### Changed
- User can now access resource links from any organization or sandbox, granted it's available to them (<https://github.com/opencv/cvat/pull/5892>)
- Cloud storage manifest files have been made optional (<https://github.com/opencv/cvat/pull/6074>)
- Updated Django to the 4.2.x version (<https://github.com/opencv/cvat/pull/6122>)
- Renamed certain Nuclio functions to adhere to a common naming convention. For instance,
`onnx-yolov7` -> `onnx-wongkinyiu-yolov7`, `ultralytics-yolov5` -> `pth-ultralytics-yolov5`
(<https://github.com/opencv/cvat/pull/6140>)

### Deprecated
- Deprecated the endpoint `/cloudstorages/{id}/content` (<https://github.com/opencv/cvat/pull/6074>)

### Fixed
- Fixed the issue of skeletons dumping on created tasks/projects (<https://github.com/opencv/cvat/pull/6157>)
- Resolved an issue related to saving annotations for skeleton tracks (<https://github.com/opencv/cvat/pull/6075>)

## \[2.4.4] - 2023-05-18
### Added
- Introduced a new configuration option for controlling the invocation of Nuclio functions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -186,11 +186,11 @@ up to 10x. Here is a list of the algorithms we support, and the platforms they c
| ------------------------------------------------------------------------------------------------------- | ---------- | ---------- | --- | --- |
| [Segment Anything](/serverless/pytorch/facebookresearch/sam/nuclio/) | interactor | PyTorch | ✔️ | ✔️ |
| [Deep Extreme Cut](/serverless/openvino/dextr/nuclio) | interactor | OpenVINO | ✔️ | |
| [Faster RCNN](/serverless/openvino/omz/public/faster_rcnn_inception_v2_coco/nuclio) | detector | OpenVINO | ✔️ | |
| [Faster RCNN](/serverless/openvino/omz/public/faster_rcnn_inception_resnet_v2_atrous_coco/nuclio) | detector | OpenVINO | ✔️ | |
| [Mask RCNN](/serverless/openvino/omz/public/mask_rcnn_inception_resnet_v2_atrous_coco/nuclio) | detector | OpenVINO | ✔️ | |
| [YOLO v3](/serverless/openvino/omz/public/yolo-v3-tf/nuclio) | detector | OpenVINO | ✔️ | |
| [YOLO v7](/serverless/onnx/WongKinYiu/yolov7/nuclio) | detector | ONNX | ✔️ | ✔️ |
| [Object reidentification](/serverless/openvino/omz/intel/person-reidentification-retail-300/nuclio) | reid | OpenVINO | ✔️ | |
| [Object reidentification](/serverless/openvino/omz/intel/person-reidentification-retail-0277/nuclio) | reid | OpenVINO | ✔️ | |
| [Semantic segmentation for ADAS](/serverless/openvino/omz/intel/semantic-segmentation-adas-0001/nuclio) | detector | OpenVINO | ✔️ | |
| [Text detection v4](/serverless/openvino/omz/intel/text-detection-0004/nuclio) | detector | OpenVINO | ✔️ | |
| [YOLO v5](/serverless/pytorch/ultralytics/yolov5/nuclio) | detector | PyTorch | ✔️ | |
@@ -201,7 +201,7 @@ up to 10x. Here is a list of the algorithms we support, and the platforms they c
| [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/nuclio) | detector | PyTorch | ✔️ | ✔️ |
| [RetinaNet](serverless/pytorch/facebookresearch/detectron2/retinanet_r101/nuclio) | detector | PyTorch | ✔️ | ✔️ |
| [Face Detection](/serverless/openvino/omz/intel/face-detection-0205/nuclio) | detector | OpenVINO | ✔️ | |

<!--lint enable maximum-line-length-->
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.4.0"
VERSION = "2.4.4"
13 changes: 10 additions & 3 deletions cvat-core/src/api-implementation.ts
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
//
// SPDX-License-Identifier: MIT

import { omit } from 'lodash';
import config from './config';

import PluginRegistry from './plugins';
@@ -44,7 +45,7 @@ export default function implementAPI(cvat) {

cvat.server.share.implementation = async (directory) => {
const result = await serverProxy.server.share(directory);
return result;
return result.map((item) => ({ ...omit(item, 'mime_type'), mimeType: item.mime_type }));
};

cvat.server.formats.implementation = async () => {
@@ -310,11 +311,17 @@ export default function implementAPI(cvat) {

cvat.organizations.activate.implementation = (organization) => {
checkObjectType('organization', organization, null, Organization);
config.organizationID = organization.slug;
config.organization = {
organizationID: organization.id,
organizationSlug: organization.slug,
};
};

cvat.organizations.deactivate.implementation = async () => {
config.organizationID = null;
config.organization = {
organizationID: null,
organizationSlug: null,
};
};

cvat.webhooks.get.implementation = async (filter) => {
6 changes: 6 additions & 0 deletions cvat-core/src/api.ts
Original file line number Diff line number Diff line change
@@ -225,6 +225,12 @@ function build() {
set removeUnderlyingMaskPixels(value: boolean) {
config.removeUnderlyingMaskPixels = value;
},
get onOrganizationChange(): (orgId: number) => void {
return config.onOrganizationChange;
},
set onOrganizationChange(value: (orgId: number) => void) {
config.onOrganizationChange = value;
},
},
client: {
version: `${pjson.version}`,
Loading
Oops, something went wrong.

0 comments on commit 0900b52

Please sign in to comment.