Skip to content

Update 31March#1

Merged
prabaljainn merged 109 commits intoprabal-is-testingfrom
31-march
Apr 2, 2026
Merged

Update 31March#1
prabaljainn merged 109 commits intoprabal-is-testingfrom
31-march

Conversation

@prabaljainn
Copy link
Copy Markdown
Owner

Motivation and context

How has this been tested?

Checklist

  • I submit my changes into the develop branch
  • I have created a changelog fragment
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • I have linked related issues (see GitHub docs)

License

  • I submit my code changes under the same MIT License that covers the project.
    Feel free to contact the maintainers if that's a concern.

SpecLad and others added 30 commits February 9, 2026 13:06
…vat-ai#10264)

This makes the function definitions more generic and avoids relying on
irrelevant implementation details. However, my real motivation is that I
want to turn `T` into an unbounded type variable so I can reuse it
later. :-)
Absolute paths don't fit very well here:

* Files can be stored in cloud storage, in which case the absolute path
  stored in the database doesn't actually exist.

* They make it unnecessarily hard to move storage to a different base
  directory.

* The code becomes simpler with relative paths.
Children summary fields contained invalid data and were not supposed to
be included in the events. They also triggered incorrect "update" events
because the old object typically didn't contain the summary data, while
the updated object had such data.

- Children summary fields will now be excluded from the server events,
where applicable
- Children summary field changes will not result in creation of "update"
events anymore

---------

Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
<!-- Raise an issue to propose your change
(https://github.com/cvat-ai/cvat/issues).
It helps to avoid duplication of efforts from multiple independent
contributors.
Discuss your ideas with maintainers to be sure that changes will be
approved and merged.
Read the [Contribution guide](https://docs.cvat.ai/docs/contributing/).
-->

<!-- Provide a general summary of your changes in the Title above -->
Updated:
[python] django to 4.2.28
[python] protobuf to 6.33.5
[Docker image] golang to 1.25.7

### Motivation and context
<!-- Why is this change required? What problem does it solve? If it
fixes an open
issue, please link to the issue here. Describe your changes in detail,
add
screenshots. -->

### How has this been tested?
<!-- Please describe in detail how you tested your changes.
Include details of your testing environment, and the tests you ran to
see how your change affects other areas of the code, etc. -->

### Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply.
If an item isn't applicable for some reason, then ~~explicitly
strikethrough~~ the whole
line. If you don't do that, GitHub will show incorrect progress for the
pull request.
If you're unsure about any of these, don't hesitate to ask. We're here
to help! -->
- [x] I submit my changes into the `develop` branch
- [ ] I have created a changelog fragment <!-- see top comment in
CHANGELOG.md -->
- [ ] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] I have linked related issues (see [GitHub docs](

https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))

### License

- [x] I submit _my code changes_ under the same [MIT License](
https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the
project.
  Feel free to contact the maintainers if that's a concern.
Factored out one more chunk from the task creation function. No logic
changes.
…re (cvat-ai#10281)

There is special logic to handle this case in `create_thread`, and I
broke it in one of the recent patches that introduced pathlib. Add a
test to prevent this from breaking again.
…i#10277)

When `frame_media` is empty (i.e. there are no related images for a
frame), the `truncate_common_filename_prefix` logic crashes, because
`os.path.commonpath` requires at least one path as input.

This only happens when the task is in cloud storage, because the
non-cloud branch constructs the `media` list in such a way that frames
with no related images are simply omitted. This works fine, so factor
out that logic and use it in the cloud case as well.
)

Frankly, I don't know why we're even doing this. It seems to only have
downsides:

* It slows down testsuite execution, which is especially annoying
because it happens _before_ detailed exception messages are printed.

* It erases evidence that could be used to investigate why a test
failed.

The DB gets reloaded every time the testsuite starts anyway, so a dirty
database should not affect any subsequent executions. To make sure
there's nothing left from a previous test execution, run `manage.py flush`
before `loaddata`.
We are going to increase the possible number of replicas, and current
way of displaying replicas is not convenient if there are hundreds of
them.

So,
- flatten list of jobs
- on both jobs page and task page:
  - every parent job has a tag "parent"
  - every replica job has a tag "replica"
- every parent job has an action "go to replicas" which switches filters
on a page to show it's replicas
- every replica job has an action "go to parent" which switches filters
on a page to show it's parent
- task page be default does not show replicas
- added "replicas_count" field to api on job retrieving 

Co-authored-by: Maxim Zhiltsov <zhiltsov.max35@gmail.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
1. Scripts to connect to CVAT API + run cvat-cli + run agent
2. Dockerfile
3. Docker compose file + .env

- [x] I submit my changes into the `develop` branch
- [x] I have created a changelog fragment
- [x] I have updated the documentation accordingly (will do later after
Helm)

### License

- [x] I submit _my code changes_ under the same [MIT License](
https://github.com/cvat-ai/cvat/blob/develop/LICENSE) that covers the
project.
  Feel free to contact the maintainers if that's a concern.

---------

Co-authored-by: Petr Iosipov <petr.iosipov@cvat.ai>
Co-authored-by: Andrey Zhavoronkov <andrey@cvat.ai>
Co-authored-by: Roman Donchenko <roman@cvat.ai>
…#10266)

... and other similar endpoints.

Instead of manually building the URL, use reversing. This works
correctly whether the original URL has a trailing slash or not.

Fixes cvat-ai#10115.
1. Don't capture stderr. Nobody needs it, and it seems unlikely that
   anybody will.

2. Don't exit the process if the subprocess fails. Since this function
   is now (indirectly) used within individual tests, this behavior causes
   the testsuite to exit prematurely.

We don't really need to print a custom error message, because the
default exception message already contains the command line and status;
and since we no longer capture stderr, it'll be printed too. Stdout
will, unfortunately, not be printed, but it's not as important for
debugging.

Also, fix an issue where the subprocess status is not checked if
`capture_output` is false.
The current version has a vulnerability (CVE-2025-14009).
…etter format for filter (cvat-ai#10316)

This is needed to better search for existing functions in org workspace
and private workspace. Also added some better formatting for json logic
filter.

I've tested this as a new image in compose. 

- [x] I submit my changes into the `develop` branch
- [x] I have created a changelog fragment <!-- see top comment in
CHANGELOG.md -->
- [ ] I have updated the documentation accordingly (I will write
complete docs a bit later)

- [x] I submit _my code changes_ under the same [MIT
License](https://github.com/cvat-ai/cvat/blob/develop/LICENSE)

---------

Co-authored-by: Petr Iosipov <petr.iosipov@cvat.ai>
In the latest consensus update, several UX improvements were introduced for review mode. However, a bug was discovered where Ground Truth (GT) annotations were not properly locked when viewing them in regular jobs.
While changes to GT annotations were not saved to the server, users could still modify them in the UI, leading to a confusing user experience.
Bumps [webpack](https://github.com/webpack/webpack) from 5.94.0 to 5.104.1.


Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
dependabot bot and others added 29 commits March 20, 2026 18:45
The current one has an (admittedly disputed) vulnerability
(CVE-2021-41495). Note that 2.2.6 is the most recent release that still
supports our lowest supported Python version (3.10).
…ort function name (cvat-ai#10388)

- [x] I submit my changes into the `develop` branch
- [x] I have created a changelog fragment
- [x] I have updated the documentation accordingly (separate task)
- [x] I submit _my code changes_ under the same [MIT License](
  https://github.com/cvat-ai/cvat/blob/develop/LICENSE)

---------

Co-authored-by: Petr Iosipov <petr.iosipov@cvat.ai>
Co-authored-by: Andrey Zhavoronkov <andrey@cvat.ai>
Bumps [undici](https://github.com/nodejs/undici) from 6.21.2 to 6.24.1.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
Events have a completely different implementation of filtering, where
the Rego filter value is not a Forth-like expression, but a simple list
of mandatory filters. Therefore, that refactoring does not apply to
them.
A small refactoring for <cvat-ai#10409>. Also
added missing redis cleanup.
)

This makes it less annoying to stop all the various services.
Fixed misaligned csv button, scrollbar shift

Co-authored-by: klakhov <kirill.9992@gmail.com>
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.1 to 3.4.2.


Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
Enhances e2e interpolation test
…i#10342)

feat: show success notification after saving annotation guide

---------

Co-authored-by: klakhov <kirill.9992@gmail.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.


Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
…ai#10425)

## Summary

Replace bare `except:` with `except BaseException:` in
`cvat-sdk/cvat_sdk/core/utils.py`.

PEP 8 recommends against bare `except:` — it should specify an exception
type. Since this catch block re-raises with `raise`, `except
BaseException:` preserves the original behavior while being explicit.

**Change:**
```python
# Before
except:
    os.unlink(tmp_path)
    raise

# After
except BaseException:
    os.unlink(tmp_path)
    raise
```

## Testing
No behavior change — style/correctness fix only. The block already
re-raises, so `except BaseException:` is semantically identical.
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kirill Lakhov <kirill.lakhov@cvat.ai>
…#10407)

Co-authored-by: Oleg Valiulin <oleg.valiulin@cvat.ai>
Co-authored-by: Svetlana Golubeva <sveta@cvat.ai>
…i#10429)

Currently, the logic for retrieving images when building chunks differs:

* When the task is in local storage (without backing CS), we use the
  paths stored in the database.

* When the task is in cloud storage, we use the paths in the manifest.

These paths _should_ be the same... but practice shows that this is not
always the case. In particular, the check that `task.create_thread`
performs only verifies that the manifest path is a suffix of the DB
path. It is therefore possible to create a task in which the manifest
has incomplete paths to the image files; when a task like this is moved
to backing cloud storage, chunk creation no longer works.

Work around this by using DB paths when a task has backing cloud
storage. IMO, we should do this in the non-backing CS case as well, but
at the moment it doesn't seem possible, because the information in the
`original_name` manifest field isn't present in the DB.
@prabaljainn prabaljainn merged commit a2bf4dc into prabal-is-testing Apr 2, 2026
5 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.