Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.25.0 #8916

Closed
wants to merge 31 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1f29aae
Update develop after v2.24.0
cvat-bot[bot] Dec 20, 2024
54534e8
Merge pull request #8850 from cvat-ai/dev-release-2.24.0
azhavoro Dec 20, 2024
12f886c
engine: remove deprecated imports (#8856)
SpecLad Dec 20, 2024
5b7d12c
Centralize Python linter/formatter requirements (#8854)
SpecLad Dec 24, 2024
3ba5715
Remove all remaining deprecated imports (#8861)
SpecLad Dec 24, 2024
2fd48c8
Remove the `ModelProvider` interface (#8860)
SpecLad Dec 24, 2024
d966c1e
Fix Pylint warnings in migrations (#8869)
SpecLad Dec 24, 2024
6e3b5f8
added `cvat_worker_chunk` service in `docker-compose.external_db.yml`…
PushpakBhoge Dec 25, 2024
85223f5
chore: fix some typos in comment (#8868)
cuiweiyuan Dec 25, 2024
9a554c4
E2E test of issue #8785: Undefined when reading getUpdated (#8843)
archibald1418 Dec 25, 2024
d2c0713
yolov8 docs update (#8864)
Eldies Dec 25, 2024
7ce704d
Update documentation for social authentication with Amazon Cognito (#…
Marishka17 Dec 25, 2024
b1d0a6c
CLI: Add ability to create CVAT agents based on AA functions (#8821)
SpecLad Dec 25, 2024
185a00b
renaming yolov8 to ultralytics yolo (#8863)
Eldies Dec 26, 2024
9a25291
Fix link to the authentication with Amazon Cognito (#8877)
Marishka17 Dec 27, 2024
26f08ce
Fix an issue with deleting frames (#8872)
klakhov Dec 29, 2024
279db7c
fixing broken unit tests in cvat/app/events (#8867)
archibald1418 Dec 30, 2024
c80091b
Fix unstable headlessCreateUser cypress command (#8885)
azhavoro Jan 3, 2025
76de839
Apply isort to almost all Python sources (#8866)
SpecLad Jan 6, 2025
30fbfb2
Allow empty items to be cached (#8890)
Marishka17 Jan 6, 2025
25245e6
correctly process export to yolo formats if both Train and default da…
Eldies Jan 6, 2025
1124b29
Optimize honeypot selection algorithm (#8857)
zhiltsov-max Jan 6, 2025
5702a04
Bump pyyaml in test requirements (#8900)
SpecLad Jan 7, 2025
5d22b66
Bump cross-spawn from 7.0.3 to 7.0.6 in /tests (#8876)
dependabot[bot] Jan 7, 2025
8b621c2
ultralytics yolo support for tracks (#8883)
Eldies Jan 7, 2025
39825ad
Blacken most apps (#8902)
SpecLad Jan 8, 2025
c5f2272
Change match_empty_frames to empty_is_annotated (#8888)
zhiltsov-max Jan 8, 2025
c164771
Make it easier to execute commands in the server container from tests…
SpecLad Jan 8, 2025
331ff86
preserving original rotation for export-import in yolo oriented boxes…
Eldies Jan 8, 2025
b594b1c
Add a management command to run a configured periodic job immediately…
SpecLad Jan 8, 2025
0aefe45
Prepare release v2.25.0
cvat-bot[bot] Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/black.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:

- name: Run checks
run: |
pipx install $(grep "^black" ./cvat-cli/requirements/development.txt)
pipx install $(grep "^black" ./dev/requirements.txt)

echo "Black version: $(black --version)"

Expand Down
30 changes: 3 additions & 27 deletions .github/workflows/isort.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: files
uses: tj-actions/[email protected]
with:
files: |
cvat-sdk/**/*.py
cvat-cli/**/*.py
tests/python/**/*.py
cvat/apps/quality_control/**/*.py
cvat/apps/analytics_report/**/*.py
dir_names: true

- name: Run checks
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.
pipx install $(grep "^isort" ./dev/requirements.txt)

UPDATED_DIRS="${{steps.files.outputs.all_changed_files}}"
echo "isort version: $(isort --version-number)"

if [[ ! -z $UPDATED_DIRS ]]; then
pipx install $(egrep "isort.*" ./cvat-cli/requirements/development.txt)

echo "isort version: $(isort --version-number)"
echo "The dirs will be checked: $UPDATED_DIRS"
EXIT_CODE=0
for DIR in $UPDATED_DIRS; do
isort --check $DIR || EXIT_CODE=$(($? | $EXIT_CODE)) || true
done
exit $EXIT_CODE
else
echo "No files with the \"py\" extension found"
fi
isort --check --diff --resolve-all-configs .
6 changes: 3 additions & 3 deletions .github/workflows/pylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ jobs:
CHANGED_FILES="${{steps.files.outputs.all_changed_files}}"

if [[ ! -z $CHANGED_FILES ]]; then
pipx install $(egrep "^pylint==" ./cvat/requirements/development.txt)
pipx install $(grep "^pylint==" ./dev/requirements.txt)

pipx inject pylint \
$(egrep "^pylint-.+==" ./cvat/requirements/development.txt) \
$(egrep "^django==" ./cvat/requirements/base.txt)
$(grep "^pylint-.\+==" ./dev/requirements.txt) \
$(grep "^django==" ./cvat/requirements/base.txt)

echo "Pylint version: "$(pylint --version | head -1)
echo "The files will be checked: "$(echo $CHANGED_FILES)
Expand Down
10 changes: 7 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
/share/
/static/
/db.sqlite3
/.*env*
/keys
/logs
/profiles
Expand All @@ -21,6 +20,11 @@ __pycache__
.coverage
.husky/
.python-version
tmp*cvat/
temp*/

# Ignore generated test files
docker-compose.tests.yml

# Ignore npm logs file
npm-debug.log*
Expand Down Expand Up @@ -49,8 +53,8 @@ yarn-error.log*

# Ignore all the installed packages
node_modules
venv/
.venv/
/*env*/
/.*env*

# Ignore all js dists
cvat-data/dist
Expand Down
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

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

<a id='changelog-2.25.0'></a>
## \[2.25.0\] - 2025-01-09

### Added

- \[CLI\] Added commands for working with native functions
(<https://github.com/cvat-ai/cvat/pull/8821>)

- Ultralytics YOLO formats now support tracks
(<https://github.com/cvat-ai/cvat/pull/8883>)

### Changed

- YOLOv8 formats renamed to Ultralytics YOLO formats
(<https://github.com/cvat-ai/cvat/pull/8863>)

- The `match_empty_frames` quality setting is changed to `empty_is_annotated`.
The updated option includes any empty frames in the final metrics instead of only
matching empty frames. This makes metrics such as Precision much more representative and useful.
(<https://github.com/cvat-ai/cvat/pull/8888>)

### Fixed

- Changing rotation after export/import in Ultralytics YOLO Oriented Boxes format
(<https://github.com/cvat-ai/cvat/pull/8891>)

<a id='changelog-2.24.0'></a>
## \[2.24.0\] - 2024-12-20

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,11 @@ For more information about the supported formats, see:
| [Kitti Raw Format](https://www.cvlibs.net/datasets/kitti/raw_data.php) | ✔️ | ✔️ |
| [LFW](http://vis-www.cs.umass.edu/lfw/) | ✔️ | ✔️ |
| [Supervisely Point Cloud Format](https://docs.supervise.ly/data-organization/00_ann_format_navi) | ✔️ | ✔️ |
| [YOLOv8 Detection](https://docs.ultralytics.com/datasets/detect/) | ✔️ | ✔️ |
| [YOLOv8 Oriented Bounding Boxes](https://docs.ultralytics.com/datasets/obb/) | ✔️ | ✔️ |
| [YOLOv8 Segmentation](https://docs.ultralytics.com/datasets/segment/) | ✔️ | ✔️ |
| [YOLOv8 Pose](https://docs.ultralytics.com/datasets/pose/) | ✔️ | ✔️ |
| [YOLOv8 Classification](https://docs.ultralytics.com/datasets/classify/) | ✔️ | ✔️ |
| [Ultralytics YOLO Detection](https://docs.ultralytics.com/datasets/detect/) | ✔️ | ✔️ |
| [Ultralytics YOLO Oriented Bounding Boxes](https://docs.ultralytics.com/datasets/obb/) | ✔️ | ✔️ |
| [Ultralytics YOLO Segmentation](https://docs.ultralytics.com/datasets/segment/) | ✔️ | ✔️ |
| [Ultralytics YOLO Pose](https://docs.ultralytics.com/datasets/pose/) | ✔️ | ✔️ |
| [Ultralytics YOLO Classification](https://docs.ultralytics.com/datasets/classify/) | ✔️ | ✔️ |

<!--lint enable maximum-line-length-->

Expand Down
5 changes: 5 additions & 0 deletions cvat-cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ The following subcommands are supported:
- `backup` - back up a task
- `auto-annotate` - automatically annotate a task using a local function

- Functions (Enterprise/Cloud only):
- `create-native` - create a function that can be powered by an agent
- `delete` - delete a function
- `run-agent` - process requests for a native function

## Installation

`pip install cvat-cli`
Expand Down
4 changes: 3 additions & 1 deletion cvat-cli/requirements/base.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
cvat-sdk~=2.24.0
cvat-sdk==2.25.0

attrs>=24.2.0
Pillow>=10.3.0
setuptools>=70.0.0 # not directly required, pinned by Snyk to avoid a vulnerability
5 changes: 0 additions & 5 deletions cvat-cli/requirements/development.txt

This file was deleted.

9 changes: 7 additions & 2 deletions cvat-cli/src/cvat_cli/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@
from cvat_sdk import exceptions

from ._internal.commands_all import COMMANDS
from ._internal.common import build_client, configure_common_arguments, configure_logger
from ._internal.common import (
CriticalError,
build_client,
configure_common_arguments,
configure_logger,
)
from ._internal.utils import popattr

logger = logging.getLogger(__name__)
Expand All @@ -29,7 +34,7 @@ def main(args: list[str] = None):
try:
with build_client(parsed_args, logger=logger) as client:
popattr(parsed_args, "_executor")(client, **vars(parsed_args))
except (exceptions.ApiException, urllib3.exceptions.HTTPError) as e:
except (exceptions.ApiException, urllib3.exceptions.HTTPError, CriticalError) as e:
logger.critical(e)
return 1

Expand Down
Loading
Loading