95e6f26 | Kirill Lakhov | 11 March 2024, 09:32:35 UTC | Load decoder.onnx only when necessary (#7564) | 11 March 2024, 09:32:35 UTC |
b7470e1 | Roman Donchenko | 10 March 2024, 17:03:32 UTC | Remove documentation on Toloka integration (#7578) | 10 March 2024, 17:03:32 UTC |
bfb902f | Roman Donchenko | 08 March 2024, 15:19:02 UTC | Remove the migration health check (#7573) | 08 March 2024, 15:19:02 UTC |
a7a69eb | Boris Sekachev | 08 March 2024, 15:18:08 UTC | Updated documentation image (#7575) | 08 March 2024, 15:18:08 UTC |
2fe5490 | Kirill Lakhov | 08 March 2024, 11:05:48 UTC | Fix job meta requests (#7560) | 08 March 2024, 11:05:48 UTC |
6cac453 | Roman Donchenko | 08 March 2024, 10:24:14 UTC | 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 | Roman Donchenko | 08 March 2024, 10:04:38 UTC | 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 | Roman Donchenko | 06 March 2024, 13:44:16 UTC | Expose Vector and Clickhouse ports in `docker-compose.dev.yml` (#7552) | 06 March 2024, 13:44:16 UTC |
5b9ab8e | Boris Sekachev | 06 March 2024, 09:20:43 UTC | Merge pull request #7558 from opencv/dev-release-2.11.1 Update develop after v2.11.1 | 06 March 2024, 09:20:43 UTC |
e00c902 | cvat-bot[bot] | 05 March 2024, 19:28:55 UTC | Update develop after v2.11.1 | 05 March 2024, 19:28:55 UTC |
925ae6a | cvat-bot[bot] | 05 March 2024, 13:16:16 UTC | Prepare release v2.11.1 | 05 March 2024, 13:16:16 UTC |
f52f0f3 | Kirill Lakhov | 05 March 2024, 10:18:17 UTC | Added test for single shape annotation mode (#7548) | 05 March 2024, 10:18:17 UTC |
a9333db | Akshay Dilip Kumar | 01 March 2024, 10:21:39 UTC | Updated Python version in development-environment.md to 3.10 🐍 (#7538) | 01 March 2024, 10:21:39 UTC |
5d644d6 | Boris Sekachev | 01 March 2024, 06:48:05 UTC | Disable submit button while creating GT job (#7540) | 01 March 2024, 06:48:05 UTC |
14b592f | Mariia Acoca | 29 February 2024, 13:22:59 UTC | added videos to documentation (#7534) | 29 February 2024, 13:22:59 UTC |
9952456 | Vidit Agarwal | 29 February 2024, 06:36:00 UTC | Fixed the docs link in ISSUE_TEMPLATE (#7532) | 29 February 2024, 06:36:00 UTC |
35a934b | Anna Petrovicheva | 28 February 2024, 14:23:33 UTC | [Snyk] Security upgrade cryptography from 42.0.2 to 42.0.4 (#7516) | 28 February 2024, 14:23:33 UTC |
6e496a4 | Jiacong Fang | 28 February 2024, 12:17:01 UTC | Remove project id in the comment of `tasks.rego` (#7528) | 28 February 2024, 12:17:01 UTC |
ab539d2 | Jiacong Fang | 28 February 2024, 12:16:27 UTC | Fix docker registry mirror list (#7529) | 28 February 2024, 12:16:27 UTC |
ae9f474 | Roman Donchenko | 27 February 2024, 17:48:42 UTC | 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 | Boris Sekachev | 27 February 2024, 06:52:04 UTC | Single object annotation mode (#7486) | 27 February 2024, 06:52:04 UTC |
7f92660 | 2h-kim | 25 February 2024, 09:32:50 UTC | Fix bug: Fixed a problem that was overwritten and not inputted when entering Korean (#7380) | 25 February 2024, 09:32:50 UTC |
5370363 | Boris Sekachev | 23 February 2024, 14:04:03 UTC | Merge pull request #7513 from opencv/dev-release-2.11.0 Update develop after v2.11.0 | 23 February 2024, 14:04:03 UTC |
5812ace | cvat-bot[bot] | 23 February 2024, 12:14:07 UTC | Update develop after v2.11.0 | 23 February 2024, 12:14:07 UTC |
0a14ea5 | cvat-bot[bot] | 23 February 2024, 10:35:03 UTC | Prepare release v2.11.0 | 23 February 2024, 10:35:03 UTC |
2c5bb69 | Kirill Lakhov | 22 February 2024, 16:54:10 UTC | Add test for Ground truth Job list (#7490) | 22 February 2024, 16:54:10 UTC |
7286d65 | Roman Donchenko | 19 February 2024, 14:41:40 UTC | 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 | Boris Sekachev | 19 February 2024, 13:45:25 UTC | Removed extra cypress configs (#7488) | 19 February 2024, 13:45:25 UTC |
42be015 | Roman Donchenko | 16 February 2024, 13:03:07 UTC | 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 | Roman Donchenko | 16 February 2024, 13:01:30 UTC | 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 | Roman Donchenko | 16 February 2024, 12:31:21 UTC | Make event-related identifiers in cvat-core consistent (#7482) | 16 February 2024, 12:31:21 UTC |
6260232 | Roman Donchenko | 15 February 2024, 16:49:16 UTC | 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 | Andrey Zhavoronkov | 15 February 2024, 14:08:45 UTC | 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 | Kirill Lakhov | 15 February 2024, 13:31:53 UTC | Migrate quality UI changes (#7441) | 15 February 2024, 13:31:53 UTC |
e8384f8 | Mariia Acoca | 13 February 2024, 14:00:57 UTC | Run actions documentation added (#7448) | 13 February 2024, 14:00:57 UTC |
f477e0b | Roman Donchenko | 13 February 2024, 13:43:08 UTC | 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 | Maria Khrustaleva | 13 February 2024, 13:42:08 UTC | 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 | Roman Donchenko | 13 February 2024, 13:02:28 UTC | 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 | Maria Khrustaleva | 12 February 2024, 14:34:23 UTC | 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 | Roman Donchenko | 09 February 2024, 18:00:28 UTC | Remove the "Cancelling Duplicates" workflow (#7467) | 09 February 2024, 18:00:28 UTC |
24479c0 | Boris Sekachev | 09 February 2024, 13:41:40 UTC | Click instead of hover to open dropdown menus (#7431) | 09 February 2024, 13:41:40 UTC |
8bf8fe5 | Boris Sekachev | 09 February 2024, 11:19:04 UTC | Merge pull request #7468 from opencv/dev-release-2.10.3 Update develop after v2.10.3 | 09 February 2024, 11:19:04 UTC |
eb2dfa8 | cvat-bot[bot] | 09 February 2024, 11:12:10 UTC | Update develop after v2.10.3 | 09 February 2024, 11:12:10 UTC |
73bf676 | cvat-bot[bot] | 09 February 2024, 10:12:43 UTC | Prepare release v2.10.3 | 09 February 2024, 10:12:43 UTC |
b4eed78 | Roman Donchenko | 09 February 2024, 07:22:08 UTC | 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 | Boris Sekachev | 08 February 2024, 18:07:23 UTC | Exception event: 'not authentificated' was removed from analytics (#7457) | 08 February 2024, 18:07:23 UTC |
9f517d1 | Boris Sekachev | 08 February 2024, 16:12:50 UTC | Reduced number of requests from client to server (#7446) | 08 February 2024, 16:12:50 UTC |
22d4e04 | Roman Donchenko | 07 February 2024, 07:43:13 UTC | 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 | Roman Donchenko | 06 February 2024, 16:34:37 UTC | Bump actions/checkout and actions/setup-node to v4 (#7442) | 06 February 2024, 16:34:37 UTC |
edfafff | Roman Donchenko | 05 February 2024, 15:09:39 UTC | 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 | Boris Sekachev | 05 February 2024, 10:20:54 UTC | Removed extra data from docker context (#7429) | 05 February 2024, 10:20:54 UTC |
1e91dd4 | Boris Sekachev | 05 February 2024, 10:19:20 UTC | Added documentation to open guides automatically (#7440) | 05 February 2024, 10:19:20 UTC |
b7cc562 | Boris Sekachev | 01 February 2024, 22:03:11 UTC | Open annotations guide automatically (#7410) | 01 February 2024, 22:03:11 UTC |
bdd002a | Boris Sekachev | 01 February 2024, 19:52:21 UTC | Stabilized cypress test: issue_2900_creating_more_one_tasks_from_project_per_time.js (#7423) | 01 February 2024, 19:52:21 UTC |
27f8aa7 | Boris Sekachev | 01 February 2024, 11:53:09 UTC | Fixed exception "Cannot read properties of null (reading 'plot')" (#7422) | 01 February 2024, 11:53:09 UTC |
b539802 | Boris Sekachev | 01 February 2024, 11:33:18 UTC | Fixed "Cannot read properties of undefined (reading 'toLowerCase')" (#7421) | 01 February 2024, 11:33:18 UTC |
e4aa63f | Nikita Manovich | 01 February 2024, 09:29:52 UTC | [Snyk] Security upgrade cryptography from 41.0.6 to 42.0.2 (#7419) | 01 February 2024, 09:29:52 UTC |
c794836 | Roman Donchenko | 31 January 2024, 12:53:44 UTC | 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 | Andrey Chernov | 31 January 2024, 07:22:38 UTC | Update annotation-with-brush-tool.md (#7413) | 31 January 2024, 07:22:38 UTC |
ed3ddf3 | Roman Donchenko | 31 January 2024, 06:59:03 UTC | 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 | Boris Sekachev | 29 January 2024, 07:33:06 UTC | 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 | Mariia Acoca | 27 January 2024, 16:45:15 UTC | Subscription management documentation updated (#7393) | 27 January 2024, 16:45:15 UTC |
3992769 | cvat-bot[bot] | 26 January 2024, 18:14:51 UTC | Update develop after v2.10.2 | 26 January 2024, 18:14:51 UTC |
3733a07 | cvat-bot[bot] | 26 January 2024, 13:35:45 UTC | Prepare release v2.10.2 | 26 January 2024, 13:35:45 UTC |
ed9439b | Kirill Lakhov | 26 January 2024, 12:13:55 UTC | Fixed TrackerMIL one frame late (#7399) | 26 January 2024, 12:13:55 UTC |
34bc61e | Kirill Lakhov | 26 January 2024, 09:16:38 UTC | Added test for empty masks issues (#7381) | 26 January 2024, 09:16:38 UTC |
b5e1d19 | Boris Sekachev | 25 January 2024, 16:29:14 UTC | Fixed 3D format for contextual images in documentation (#7390) | 25 January 2024, 16:29:14 UTC |
45c4356 | Roman Donchenko | 24 January 2024, 13:38:16 UTC | 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 | MicDZ | 23 January 2024, 11:25:14 UTC | 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 | Andrey Zhavoronkov | 23 January 2024, 11:19:52 UTC | [Snyk] Security upgrade jinja2 from 3.1.2 to 3.1.3 (#7350) | 23 January 2024, 11:19:52 UTC |
a5a0e77 | dependabot[bot] | 23 January 2024, 11:18:26 UTC | Bump pillow from 10.1.0 to 10.2.0 in /tests/python (#7384) | 23 January 2024, 11:18:26 UTC |
79aaa84 | dependabot[bot] | 23 January 2024, 11:17:18 UTC | Bump pillow from 10.1.0 to 10.2.0 in /utils/dicom_converter (#7383) | 23 January 2024, 11:17:18 UTC |
a5669aa | Boris Sekachev | 19 January 2024, 11:30:29 UTC | Enhanced errors notifications (#7371) | 19 January 2024, 11:30:29 UTC |
209826c | Kirill Lakhov | 18 January 2024, 16:08:02 UTC | Remove empty masks (#7295) | 18 January 2024, 16:08:02 UTC |
f688908 | Boris Sekachev | 18 January 2024, 12:22:11 UTC | Merge pull request #7373 from opencv/dev-release-2.10.1 Update develop after v2.10.1 | 18 January 2024, 12:22:11 UTC |
1d87216 | cvat-bot[bot] | 18 January 2024, 11:10:54 UTC | Update develop after v2.10.1 | 18 January 2024, 11:10:54 UTC |
c21062f | cvat-bot[bot] | 18 January 2024, 10:25:37 UTC | Prepare release v2.10.1 | 18 January 2024, 10:25:37 UTC |
7a1a4b1 | Andrey Zhavoronkov | 18 January 2024, 10:08:45 UTC | Replace keydb with kvrocks (#7339) Resolved #7345 | 18 January 2024, 10:08:45 UTC |
d25b863 | Boris Sekachev | 17 January 2024, 14:58:19 UTC | Fixed context menu for skeleton elements (#7362) | 17 January 2024, 14:58:19 UTC |
0579b00 | Mariia Acoca | 17 January 2024, 14:43:45 UTC | Documentation: Introduction to CVAT (#7229) | 17 January 2024, 14:43:45 UTC |
0433043 | Boris Sekachev | 17 January 2024, 10:32:53 UTC | Added tests for annotations actions (#7358) | 17 January 2024, 10:32:53 UTC |
422dd68 | Kirill Lakhov | 17 January 2024, 07:25:43 UTC | Added test for GT issues (#7357) | 17 January 2024, 07:25:43 UTC |
300146c | Mariia Acoca | 16 January 2024, 13:22:12 UTC | [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 | Maria Khrustaleva | 15 January 2024, 13:04:41 UTC | 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 | dependabot[bot] | 15 January 2024, 08:24:45 UTC | Bump follow-redirects from 1.15.3 to 1.15.4 (#7342) | 15 January 2024, 08:24:45 UTC |
8c2db1d | Andrey Zhavoronkov | 10 January 2024, 13:47:50 UTC | Merge pull request #7341 from opencv/dev-release-2.10.0 Update develop after v2.10.0 | 10 January 2024, 13:47:50 UTC |
a684c0c | cvat-bot[bot] | 10 January 2024, 13:06:45 UTC | Update develop after v2.10.0 | 10 January 2024, 13:06:45 UTC |
c36ec24 | cvat-bot[bot] | 10 January 2024, 11:40:22 UTC | Prepare release v2.10.0 | 10 January 2024, 11:40:22 UTC |
cfbad35 | Boris Sekachev | 09 January 2024, 14:14:28 UTC | Fixed CI badge URL (#7337) | 09 January 2024, 14:14:28 UTC |
40dc2a9 | Maria Khrustaleva | 09 January 2024, 13:37:13 UTC | Fix updating Azure connection string && increase credentials max_length (#7336) | 09 January 2024, 13:37:13 UTC |
9b99f6a | Maria Khrustaleva | 09 January 2024, 11:17:09 UTC | Remove dependency on distutils module (#7318) The distutils module is [deprecated](https://peps.python.org/pep-0632) and will be removed from the standard library in Python 3.12. | 09 January 2024, 11:17:09 UTC |
64d6d7a | Boris Sekachev | 04 January 2024, 11:15:29 UTC | Correct updating server ID after patching annotations (#7315) | 04 January 2024, 11:15:29 UTC |
39190c5 | dependabot[bot] | 03 January 2024, 13:25:19 UTC | Bump tj-actions/changed-files from 35.9.2 to 41.0.0 in /.github/workflows (#7306) | 03 January 2024, 13:25:19 UTC |
397d006 | Boris Sekachev | 03 January 2024, 13:23:55 UTC | Add absent skeleton elements automatically in cvat-core (#7302) | 03 January 2024, 13:23:55 UTC |
56f37ac | Boris Sekachev | 03 January 2024, 11:19:45 UTC | Adjusted text color for label matcher (#7309) | 03 January 2024, 11:19:45 UTC |
c585209 | Boris Sekachev | 29 December 2023, 11:52:31 UTC | Fixed two issues with GT annotations (#7299) | 29 December 2023, 11:52:31 UTC |
e269f13 | Boris Sekachev | 29 December 2023, 07:29:33 UTC | Update LICENSE (#7301) | 29 December 2023, 07:29:33 UTC |
4bfd128 | Boris Sekachev | 28 December 2023, 15:34:48 UTC | Updated pillow, unlocked test (#7100) | 28 December 2023, 15:34:48 UTC |
bf65513 | Maria Khrustaleva | 27 December 2023, 10:58:23 UTC | Fix rq scheduler launch (#7293) | 27 December 2023, 10:58:23 UTC |
fb610a4 | Boris Sekachev | 27 December 2023, 08:36:08 UTC | 504 on save annotation, workaround (#7286) | 27 December 2023, 08:36:08 UTC |