https://github.com/opencv/cvat

sort by:
Revision Author Date Message Commit Date
c7ec172 Merge pull request #7592 from opencv/release-2.11.2 Release v2.11.2 12 March 2024, 07:46:49 UTC
68f13a0 Prepare release v2.11.2 11 March 2024, 19:25:03 UTC
009f9f8 Make analytics report update job scheduling more efficient (#7576) Currently, `schedule_analytics_report_autoupdate_job` attempts to debounce job scheduling by examining existing jobs before scheduling a new one. Unfortunately, the `scheduler.get_jobs` function, which it uses for this purpose, scales poorly. Not only does it fetch IDs of all scheduled jobs (and not just ones related to the current object), but it then fetches information about every job, one by one. The current logic doesn't even need this information, but RQ Scheduler provides no method to get just the IDs. Replace the current logic with a new lightweight approach that uses a custom Redis key to block scheduling of additional jobs. 11 March 2024, 17:38:00 UTC
cd5cd44 open spec auto (#7587) 11 March 2024, 11:23:20 UTC
58b6bad [GSoC2024] added better error message when video resolution too large (#7549) On uploading video files exceeding the maximum resolution supported by OpenH264, it raises error while trying to decode the video. To handle this more gracefully I have added dimension check based on which it raises an error beforehand with appropriate message. Fixes #7425 --------- Co-authored-by: Maria Khrustaleva <maria@cvat.ai> 11 March 2024, 11:02:02 UTC
c8376b7 Speed up resource updates when there are no matching webhooks (#7553) The signal handling code in `cvat.apps.webhooks.signals` always fetches the old version of the resource from the database and serializes it. But if no webhook is defined for the current resource, this work is pointless. Select the webhooks first, and only then (if necessary) serialize the old resource. Also, move the diffing of the old and new versions to the `post_save` signal handler, to avoid serializing the new version a second time. This leads to a considerable speedup for resources with complicated serializers, such as tasks and jobs, when no webhooks are attached. In my experiments, saving of annotations was sped up by 20-25% with this patch. This patch also makes the signal handlers more hygienic with the use of temporary attributes. Both the attributes it uses are now prefixed with `_webhooks` to avoid collisions, and removed after they are used. 11 March 2024, 10:46:14 UTC
7a1fc3f Fix password handling for in-mem Redis (#7577) The `PASSWORD` setting is not a URL, so it should not be URL-encoded. 11 March 2024, 09:47:41 UTC
95e6f26 Load decoder.onnx only when necessary (#7564) 11 March 2024, 09:32:35 UTC
b7470e1 Remove documentation on Toloka integration (#7578) 10 March 2024, 17:03:32 UTC
bfb902f Remove the migration health check (#7573) 08 March 2024, 15:19:02 UTC
a7a69eb Updated documentation image (#7575) 08 March 2024, 15:18:08 UTC
2fe5490 Fix job meta requests (#7560) 08 March 2024, 11:05:48 UTC
6cac453 Optimize `update:*` event logging when only `updated_date` is changed (#7559) Diffing the old and new state of the object is fairly costly, so it helps to avoid doing that when it isn't necessary. 08 March 2024, 10:24:14 UTC
b5014d1 Remove double `updated_date` bumping when saving annotations (#7556) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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. --> Currently, `JobAnnotation.update` needlessly bumps the `updated_date` of the job and the task twice (both via `_delete` and `_create`). These updates are costly in terms of time due to the various side effects associated with them (such as webhook sending and event logging), so it's better to avoid doing them gratuitously. Change the code so that the bumps only happen once. I simplified the code a bit; previously, the code in `_delete` would only bump the date if something was actually deleted (i.e., the annotations passed in actually existed in the database). Now we just check if there were any annotations we _wanted_ to delete. This means that if a request only deletes non-existent annotations, the date will still get bumped. I don't think it's a significant issue, since this is a pathological case. ### 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. --> Manual testing ### 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 - [x] 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))~~ - ~~[ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. 08 March 2024, 10:04:38 UTC
bf4089e Expose Vector and Clickhouse ports in `docker-compose.dev.yml` (#7552) 06 March 2024, 13:44:16 UTC
5b9ab8e Merge pull request #7558 from opencv/dev-release-2.11.1 Update develop after v2.11.1 06 March 2024, 09:20:43 UTC
8ea8391 Merge pull request #7554 from opencv/release-2.11.1 Release v2.11.1 05 March 2024, 19:28:58 UTC
e00c902 Update develop after v2.11.1 05 March 2024, 19:28:55 UTC
925ae6a Prepare release v2.11.1 05 March 2024, 13:16:16 UTC
f52f0f3 Added test for single shape annotation mode (#7548) 05 March 2024, 10:18:17 UTC
a9333db Updated Python version in development-environment.md to 3.10 🐍 (#7538) 01 March 2024, 10:21:39 UTC
5d644d6 Disable submit button while creating GT job (#7540) 01 March 2024, 06:48:05 UTC
14b592f added videos to documentation (#7534) 29 February 2024, 13:22:59 UTC
9952456 Fixed the docs link in ISSUE_TEMPLATE (#7532) 29 February 2024, 06:36:00 UTC
35a934b [Snyk] Security upgrade cryptography from 42.0.2 to 42.0.4 (#7516) 28 February 2024, 14:23:33 UTC
6e496a4 Remove project id in the comment of `tasks.rego` (#7528) 28 February 2024, 12:17:01 UTC
ab539d2 Fix docker registry mirror list (#7529) 28 February 2024, 12:16:27 UTC
ae9f474 Fix several problems with the calculation of working time per client event (#7511) The first problem is that in the following case, the algorithm would accrue more working time than was actually spent: A |-----------| ---------+------------+------> time B C A, B and C are events. Let's say that Te(A) is the timestamp of the end of A, while T(B) and T(C) are the timestamps of B and C, respectively. The current code in `ClientEventsSerializer.to_internal_value` adjusts `last_timestamp` after processing every event. After A is processed, `last_timestamp` is set to Te(A). After B is processed, `last_timestamp` goes _backwards_ to T(B). So when the algorithm calculates the working time for C, it gets T(C) - T(B), when the correct answer is T(C) - Te(A). The span from T(B) to Te(A) gets counted twice. Fix this by rewriting the algorithm, so that `last_timestamp` (now renamed `previous_end_timestamp`) can only go forwards. ----- The second problem is that the algorithm is unable to calculate the working time for the first event in each batch that the client sends. This is because to calculate working time for an event, you need the timestamp/duration of the previous event, and this information is unavailable for the first event in the batch. Fix this by resending the most recently sent event along with each batch, and using it to initialize the algorithm. 27 February 2024, 17:48:42 UTC
5f20678 Single object annotation mode (#7486) 27 February 2024, 06:52:04 UTC
7f92660 Fix bug: Fixed a problem that was overwritten and not inputted when entering Korean (#7380) 25 February 2024, 09:32:50 UTC
5370363 Merge pull request #7513 from opencv/dev-release-2.11.0 Update develop after v2.11.0 23 February 2024, 14:04:03 UTC
a942f09 Merge pull request #7510 from opencv/release-2.11.0 Release v2.11.0 23 February 2024, 12:14:10 UTC
5812ace Update develop after v2.11.0 23 February 2024, 12:14:07 UTC
0a14ea5 Prepare release v2.11.0 23 February 2024, 10:35:03 UTC
2c5bb69 Add test for Ground truth Job list (#7490) 22 February 2024, 16:54:10 UTC
7286d65 Drop support of the TFRecord format (#7416) Usage statistics on app.cvat.ai show that this format is rarely used, with single-digit numbers of projects/tasks/jobs being exported or imported using this format. Moreover, TensorFlow's popularity appears to be shrinking, so I'm not expecting this format to make a comeback. Meanwhile, supporting this format has a cost that has to be borne by everyone deploying CVAT, because it requires TensorFlow to be installed and loaded. This has various ill effects: 1. Loading time is increased. In my testing, even a command as trivial as `manage.py --help` is slowed down by 3.6 seconds. This may not seem like much, but the effect is compounded, because we have multiple processes (server + workers) all loading the same codebase. Plus, the container entrypoint may execute several Django commands. 2. Memory usage is increased. TensorFlow adds ~100MB of RAM usage per process with data alone; and the libraries add more (although it's hard to estimate the impact of library code, since it can be shared between processes in RAM). 3. Docker image size is increased by ~1.5GB (when unpacked). This is more than half of the current total size! Building time is increased as well. Overall, it seems that the drawbacks of keeping support for this format outweigh the benefits, so it's time to drop it. 19 February 2024, 14:41:40 UTC
f0af22a Removed extra cypress configs (#7488) 19 February 2024, 13:45:25 UTC
42be015 Add events for importing/exporting annotations/datasets (#7476) This can provide useful statistics on the use of this functionality. Note that I chose to use the same scope for operations on projects, tasks and jobs, because the import/export operations work more-or-less the same on each of them and have the same parameters. It's still possible to distinguish which type of object the operation was performed on by examining the various `*_id` fields in the event. 16 February 2024, 13:03:07 UTC
9c048f2 Don't save all fields of a model when bumping the update date (#7450) Currently, there are a lot of places where changing one object requires updating the `updated_date` field on other objects. Usually, the `.save` method is used for this purpose, which results in a generic SQL `UPDATE` query that replaces the values in all columns. Introduce and use a specialized method that only changes the date. This provides the following advantages: * Prevents the date updates from overwriting updates to other fields that may happen at the same time. * Possibly makes the updates more efficient due to fewer columns being updated (I have no data on this, though). * Makes it easier to recognize the purpose of the query when analyzing logs/live statistics. * Makes the purpose of the code more obvious. Additionally, update `__save_job_handler`, where we don't want to save _just_ the date, but we still only need to save two fields. 16 February 2024, 13:01:30 UTC
972a218 Make event-related identifiers in cvat-core consistent (#7482) 16 February 2024, 12:31:21 UTC
6260232 Record DB-related events only after changes are committed (#7477) This is a small addendum to #7460, which I couldn't include in that PR, because it was blocked by #7430. 15 February 2024, 16:49:16 UTC
6673bb1 Modify backend entrypoint to wait redis (inmem and ondisk) (#7479) Currently CVAT is just waiting for the database to start the server process and the worker processes, but if redis instances (for queue and cache processing) are not running we will get a non-functional cvat. This PR adds availability checking for redis_ondisk and redis_inmem 15 February 2024, 14:08:45 UTC
11cec4c Migrate quality UI changes (#7441) 15 February 2024, 13:31:53 UTC
e8384f8 Run actions documentation added (#7448) 13 February 2024, 14:00:57 UTC
f477e0b Defer most signal handling code until after the end of the current transaction (#7460) Non-database actions like deleting directories, sending webhooks, scheduling reports should only be done after the current transaction is committed. If we do it immediately, and the transaction is later aborted, then we will have (for example) sent a webhook about an event that didn't actually happen. There's also a secondary benefit to moving this action outside of the transaction; the less time we spend inside a transaction, the better, since a transaction may lock out other clients from working on the affected DB rows. In addition, prevent the affected actions from crashing the view handler with an exception (using the `robust=True` option). I don't think it's reasonable to (for example) return a 500 response to a `PATCH` request just because we failed to send the corresponding webhook. There is one more type of action that should be modified in this way (sending events), but it would be easier to do that after a refactoring that I did in another patch, so I'll do it later. 13 February 2024, 13:43:08 UTC
b2a1065 Add failure_ttl when enqueueing task creation job (#7475) By default failed rq jobs are kept for 1 year. It is too long and leads to keeping a lot of unnecessary results in Redis. 13 February 2024, 13:42:08 UTC
58173c4 Reduce repetitive code in cvat/apps/events/handlers.py (#7430) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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. --> This is a preparatory PR before I add more events. ### 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))~~ - ~~[ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. 13 February 2024, 13:02:28 UTC
ad60b82 Add the ability to disable sign-in/sign-up in the UI (#7348) Co-authored-by: Boris Sekachev <boris.sekachev@yandex.ru> 12 February 2024, 14:34:23 UTC
4e2b2df Remove the "Cancelling Duplicates" workflow (#7467) 09 February 2024, 18:00:28 UTC
24479c0 Click instead of hover to open dropdown menus (#7431) 09 February 2024, 13:41:40 UTC
8bf8fe5 Merge pull request #7468 from opencv/dev-release-2.10.3 Update develop after v2.10.3 09 February 2024, 11:19:04 UTC
aecaba6 Merge pull request #7465 from opencv/release-2.10.3 Release v2.10.3 09 February 2024, 11:12:13 UTC
eb2dfa8 Update develop after v2.10.3 09 February 2024, 11:12:10 UTC
73bf676 Prepare release v2.10.3 09 February 2024, 10:12:43 UTC
b4eed78 Reblacken Python code (#7461) Black 24 is upon us, and with it a new stable code style. Reformat all code to prevent CI failures in future PRs. 09 February 2024, 07:22:08 UTC
8e6e46a Exception event: 'not authentificated' was removed from analytics (#7457) 08 February 2024, 18:07:23 UTC
9f517d1 Reduced number of requests from client to server (#7446) 08 February 2024, 16:12:50 UTC
22d4e04 Add an `application_name` PostgreSQL connection parameter (#7275) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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. --> This will let us more easily identify PostgreSQL sessions that come from CVAT. See <https://www.postgresql.org/docs/15/runtime-config-logging.html#GUC-APPLICATION-NAME>. ### 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. --> ```sql SELECT * FROM pg_stat_activity; ``` ### 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))~~ - ~~[ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. 07 February 2024, 07:43:13 UTC
dc40be2 Bump actions/checkout and actions/setup-node to v4 (#7442) 06 February 2024, 16:34:37 UTC
edfafff Fix unhandled Redis exception in the /api/server/health/ endpoint (#7417) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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. --> `CustomCacheBackend` does not handle `RedisError`, so if Redis is not responding, the backend will propagate the exception, and the endpoint will crash with a 500 response code. This problem has been fixed upstream in django-health-check 3.18, so just update to the latest version and remove our custom cache backend. The upstream version, unlike ours, doesn't handle `sqlite3.DatabaseError`, but we're not using SQLite for caching anymore, so I don't think it matters. ### 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. --> I checked the endpoint with both working and non-working Redis. ### 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 - [x] 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))~~ - ~~[ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. 05 February 2024, 15:09:39 UTC
e1ad07c Removed extra data from docker context (#7429) 05 February 2024, 10:20:54 UTC
1e91dd4 Added documentation to open guides automatically (#7440) 05 February 2024, 10:19:20 UTC
b7cc562 Open annotations guide automatically (#7410) 01 February 2024, 22:03:11 UTC
bdd002a Stabilized cypress test: issue_2900_creating_more_one_tasks_from_project_per_time.js (#7423) 01 February 2024, 19:52:21 UTC
27f8aa7 Fixed exception "Cannot read properties of null (reading 'plot')" (#7422) 01 February 2024, 11:53:09 UTC
b539802 Fixed "Cannot read properties of undefined (reading 'toLowerCase')" (#7421) 01 February 2024, 11:33:18 UTC
e4aa63f [Snyk] Security upgrade cryptography from 41.0.6 to 42.0.2 (#7419) 01 February 2024, 09:29:52 UTC
c794836 Strip useless linebreak in the payload of send:exception events (#7407) `traceback.format_exception` adds a `\n` to each element of the resulting list, so the message will always have a pointless `\n` at the end. Removing it makes CSV reports that include the message easier to parse visually, because there's no longer a linebreak in the middle of each line. 31 January 2024, 12:53:44 UTC
7a9c1f4 Update annotation-with-brush-tool.md (#7413) 31 January 2024, 07:22:38 UTC
ed3ddf3 Prevent zombie processes from accumulating in the Kvrocks container (#7412) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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. --> I saw several hundreds of zombie processes accumulate in the Kvrocks container in production. This should fix that. See the comment in `docker-compose.yml` for more explanation. Note that as far as I'm aware, Kubernetes does not use healthcheck commands configured in Docker images, so this issue should be irrelevant for Kubernetes deployments. ### 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 - [x] 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))~~ - ~~[ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~ ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. 31 January 2024, 06:59:03 UTC
3db7be6 Merge pull request #7402 from opencv/dev-release-2.10.2 Update develop after v2.10.2 29 January 2024, 07:33:06 UTC
a6b37ba Subscription management documentation updated (#7393) 27 January 2024, 16:45:15 UTC
d427822 Merge pull request #7401 from opencv/release-2.10.2 Release v2.10.2 26 January 2024, 18:14:54 UTC
3992769 Update develop after v2.10.2 26 January 2024, 18:14:51 UTC
3733a07 Prepare release v2.10.2 26 January 2024, 13:35:45 UTC
ed9439b Fixed TrackerMIL one frame late (#7399) 26 January 2024, 12:13:55 UTC
34bc61e Added test for empty masks issues (#7381) 26 January 2024, 09:16:38 UTC
b5e1d19 Fixed 3D format for contextual images in documentation (#7390) 25 January 2024, 16:29:14 UTC
45c4356 Fix excessive memory usage when exporting projects with multiple video tasks (#7374) Currently, the following situation causes the export worker to consume more memory than necessary: * A user exports a project with images included, and * The project contains multiple tasks with video chunks. The main reason for this is that the `image_maker_per_task` dictionary in `CVATProjectDataExtractor.__init__` indirectly references a distinct `FrameProvider` for each task, which in turn, indirectly references an `av.containers.Container` object corresponding to the most recent chunk opened in that task. Initially, none of the chunks are opened, so the memory usage is low. But as Datumaro iterates over each frame, it eventually requests at least one image from each task of the project. This causes the corresponding `FrameProvider` to open a chunk file and keep a handle to it. The only way for a `FrameProvider` to close this chunk file is to open a new chunk when a frame from that chunk is requested. Therefore, each `FrameProvider` keeps at least one chunk open from the moment Datumaro requests the first frame from its task and _until the end of the export_. This manifests in the export worker's memory usage growing and growing as Datumaro goes from task to task. An open chunk consumes whatever Python objects represent it, but more importantly, any C-level buffers allocated by FFmpeg, which can be quite significant. In my testing, the size of the per-chunk memory was on the order of tens of megabytes. An open chunk also takes up a file descriptor. The fix for this is conceptually simple: ensure that only one `FrameProvider` object exists at a time. AFAICS, when a project is exported, all frames from a given task are grouped together, so we shouldn't need multiple tasks' chunks to be open at the same time anyway. I had to restructure the code to make this work, so I took the opportunity to fix a few other things, as well: * The code currently relies on garbage collection of PyAV's `Container` objects to free the resources used by them. Even though `VideoReader.__iter__` uses a `with` block to close the container, the `with` block can only do so if the container is iterated all the way to the end. This doesn't happen when `FrameProvider` uses it, since `FrameProvider` seeks to the needed frame and then stops iterating. I don't have evidence that this causes any issues at the moment, but Python does not guarantee that objects are GC'd promptly, so this could become another source of excessive memory usage. I added cleanup methods (`close`/`unload`/`__exit__`) at several layers of the code to ensure that each chunk is closed as soon as it is no longer needed. * I factored out and merged the code used to generate `dm.Image` objects when exporting projects and jobs/tasks. It's likely possible to merge even more code, but I don't want to expand the scope of the patch too much. * I fixed a seemingly useless optimization in the handling for 3D frames. Specifically, `CVATProjectDataExtractor` performs queries of the form: task.data.images.prefetch_related().get(id=i) The prefetch here looks useless, as only a single object is queried - it wouldn't be any less efficient to just let Django fetch the `Image`'s `related_files` when needed. I rewrote this code to prefetch `related_files` for all images in the task at once instead. 24 January 2024, 13:38:16 UTC
4cf45e5 Fix a typo. "cvat" service does not exist. It should be "cvat_server". (#7368) Fix a typo. refer to docker-compose.yml 23 January 2024, 11:25:14 UTC
8a81868 [Snyk] Security upgrade jinja2 from 3.1.2 to 3.1.3 (#7350) 23 January 2024, 11:19:52 UTC
a5a0e77 Bump pillow from 10.1.0 to 10.2.0 in /tests/python (#7384) 23 January 2024, 11:18:26 UTC
79aaa84 Bump pillow from 10.1.0 to 10.2.0 in /utils/dicom_converter (#7383) 23 January 2024, 11:17:18 UTC
a5669aa Enhanced errors notifications (#7371) 19 January 2024, 11:30:29 UTC
209826c Remove empty masks (#7295) 18 January 2024, 16:08:02 UTC
f688908 Merge pull request #7373 from opencv/dev-release-2.10.1 Update develop after v2.10.1 18 January 2024, 12:22:11 UTC
a33f7f5 Merge pull request #7372 from opencv/release-2.10.1 Release v2.10.1 18 January 2024, 11:10:58 UTC
1d87216 Update develop after v2.10.1 18 January 2024, 11:10:54 UTC
c21062f Prepare release v2.10.1 18 January 2024, 10:25:37 UTC
7a1a4b1 Replace keydb with kvrocks (#7339) Resolved #7345 18 January 2024, 10:08:45 UTC
d25b863 Fixed context menu for skeleton elements (#7362) 17 January 2024, 14:58:19 UTC
0579b00 Documentation: Introduction to CVAT (#7229) 17 January 2024, 14:43:45 UTC
0433043 Added tests for annotations actions (#7358) 17 January 2024, 10:32:53 UTC
422dd68 Added test for GT issues (#7357) 17 January 2024, 07:25:43 UTC
300146c [WIP] invite users to org updated (#7305) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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! --> - [ ] 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)) - [ ] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning)) ### License - [ ] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. --------- Co-authored-by: Kirill Lakhov <kirill.9992@gmail.com> 16 January 2024, 13:22:12 UTC
906260c Fix export of resources to cloud storage (#7317) <!-- Raise an issue to propose your change (https://github.com/opencv/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://opencv.github.io/cvat/docs/contributing/). --> <!-- Provide a general summary of your changes in the Title above --> ### 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. --> In the previous implementation logic to upload created files to cloud storage was in the code that processes requests. This resulted in responses with 504 status when uploading a file took longer than the request timeout. This PR fixes the described problem. ### 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 - [x] 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)) - [x] I have increased versions of npm packages if it is necessary ([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning), [cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning), [cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning) and [cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning)) ### License - [x] I submit _my code changes_ under the same [MIT License]( https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the project. Feel free to contact the maintainers if that's a concern. 15 January 2024, 13:04:41 UTC
c02580c Bump follow-redirects from 1.15.3 to 1.15.4 (#7342) 15 January 2024, 08:24:45 UTC
8c2db1d Merge pull request #7341 from opencv/dev-release-2.10.0 Update develop after v2.10.0 10 January 2024, 13:47:50 UTC
d66d043 Merge pull request #7340 from opencv/release-2.10.0 Release v2.10.0 10 January 2024, 13:06:49 UTC
a684c0c Update develop after v2.10.0 10 January 2024, 13:06:45 UTC
back to top