{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":8104292,"defaultBranch":"master","name":"fishtest","ownerLogin":"official-stockfish","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-02-09T00:52:46.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7926882?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1713029682.0","currentOid":""},"activityList":{"items":[{"before":"2e96d3f6587e47313cf7d75a7c393c912a5d9dcf","after":"12981ffad22f5e44420d40ea9298b6ff83c0bfc2","ref":"refs/heads/master","pushedAt":"2024-07-06T09:21:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Raise pserve threads and semaphores","shortMessageHtmlLink":"Raise pserve threads and semaphores"}},{"before":"657ba4f26707bd5dee41e5ca2f4fa549f6e663f7","after":"2e96d3f6587e47313cf7d75a7c393c912a5d9dcf","ref":"refs/heads/master","pushedAt":"2024-07-05T18:06:33.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Raise worker version to 241 (also server side)","shortMessageHtmlLink":"Raise worker version to 241 (also server side)"}},{"before":"0c85a8d82b3326e45afee6f849702b31adc7864a","after":"657ba4f26707bd5dee41e5ca2f4fa549f6e663f7","ref":"refs/heads/master","pushedAt":"2024-07-04T21:17:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Do not put results_info in the db.\n\nRendered data does not belong in the db.","shortMessageHtmlLink":"Do not put results_info in the db."}},{"before":"084d1b798560af41603f7d9a10b068f528a85d4d","after":"0c85a8d82b3326e45afee6f849702b31adc7864a","ref":"refs/heads/master","pushedAt":"2024-07-04T12:45:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"fix https://github.com/official-stockfish/fishtest/issues/2095 by changing skeleton to a message with retry button","shortMessageHtmlLink":"fix #2095 by changing skeleton to a message with retry button"}},{"before":"2655607ae4d74fd5e75241a5e9a25f56bfb753db","after":"084d1b798560af41603f7d9a10b068f528a85d4d","ref":"refs/heads/master","pushedAt":"2024-07-04T07:52:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"consistent \"LTC:\" addition\n\nFixes https://github.com/official-stockfish/fishtest/issues/1754","shortMessageHtmlLink":"consistent \"LTC:\" addition"}},{"before":"61ec81b2124fa478f9011b142cc2c6577b15fc71","after":"2655607ae4d74fd5e75241a5e9a25f56bfb753db","ref":"refs/heads/master","pushedAt":"2024-07-03T20:12:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Introduce a worker global cache\n\nintroduce a global_cache to reduce downloads from github and the net server if\nmultiple workers having a shared filesystem are run by one user. This should\nallow a fleet to run without overloading github.\n\nIf the user specifies the path that corresponds to the global cache, the\nnetwork and the source zipball are cached. They are used if available, and\nonly downloaded (and stored) if not.\n\nStoring the data in the cache has been done in such a way that it becomes\navailable atomically on most file systems.","shortMessageHtmlLink":"Introduce a worker global cache"}},{"before":"dbb886447954030afa278cea0baa607386e1132e","after":"61ec81b2124fa478f9011b142cc2c6577b15fc71","ref":"refs/heads/master","pushedAt":"2024-07-03T13:30:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Fully initialize the rundb object before starting tasks.","shortMessageHtmlLink":"Fully initialize the rundb object before starting tasks."}},{"before":"f569e94300397192be2467d041c6b5ec1f5a9bee","after":"dbb886447954030afa278cea0baa607386e1132e","ref":"refs/heads/master","pushedAt":"2024-07-03T13:30:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Explicitly declare some schema fields as posix timestamps.\n\nThis may yield clearer non-validation messages.","shortMessageHtmlLink":"Explicitly declare some schema fields as posix timestamps."}},{"before":"e6b87a20c2739dcd4e563601744c8df7987f9b5e","after":"f569e94300397192be2467d041c6b5ec1f5a9bee","ref":"refs/heads/master","pushedAt":"2024-07-03T12:00:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"return 404 if a non-sprt run_id is abused to be used in a live_elo link\n\ne.g. https://tests.stockfishchess.org/tests/live_elo/66833b9895b0d1e881e81489\nhttps://tests.stockfishchess.org/tests/live_elo/6683a096c4f539faa03268e5","shortMessageHtmlLink":"return 404 if a non-sprt run_id is abused to be used in a live_elo link"}},{"before":"0dfaa971f9495c2518255f7438c4a906693585cb","after":"e6b87a20c2739dcd4e563601744c8df7987f9b5e","ref":"refs/heads/master","pushedAt":"2024-07-03T08:55:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Deal with https://github.com/official-stockfish/fishtest/issues/2094#issuecomment-2201970849","shortMessageHtmlLink":"Deal with #2094 (comment)"}},{"before":"31cd991be5159c170832e5ec03d810daef97449a","after":"0dfaa971f9495c2518255f7438c4a906693585cb","ref":"refs/heads/master","pushedAt":"2024-07-01T14:53:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Make new_run return a string instead of an ObjectId.\n\nThe convention throughout the code base is that run_id is a\nstring.\n\nSince a run_id and the corresponding ObjectId print in\nexactly the same way, violating this convention may lead to\nhard to understand bugs such as this one\n\nhttps://tests.stockfishchess.org/actions?action=log_message&user=&text=internal\n\nwhich was introduced in #1993.","shortMessageHtmlLink":"Make new_run return a string instead of an ObjectId."}},{"before":"688e9ce924a50749fb23abc12b86935cd7e6d73a","after":"31cd991be5159c170832e5ec03d810daef97449a","ref":"refs/heads/master","pushedAt":"2024-07-01T14:53:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Do not hold on to the run_cache_lock while writing to the db.\n\nUse the per-run active_run_lock instead.","shortMessageHtmlLink":"Do not hold on to the run_cache_lock while writing to the db."}},{"before":"6d65897235297008420fa5a9b27146af12cd4bb7","after":"688e9ce924a50749fb23abc12b86935cd7e6d73a","ref":"refs/heads/master","pushedAt":"2024-07-01T14:53:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Introduce min_delay parameter for create_task.\n\nSet it to 1.0 for the flush_buffers task.","shortMessageHtmlLink":"Introduce min_delay parameter for create_task."}},{"before":"49a274e4e585c7161f4ce5002839feb1888d10f8","after":"6d65897235297008420fa5a9b27146af12cd4bb7","ref":"refs/heads/master","pushedAt":"2024-07-01T08:54:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Revert back to the coloring algorithm before #2069\n\nThe aim of the change was to treat num_games and SPRT tests\nuniformly. This was not implemented correctly and users\ncomplained.\n\nBut independently of this, num_games tests and SPRT tests\nserve a fundamentally different purpose. So it makes sense\nthat they use different coloring algorithms, which are adapted\nto their respective use cases.","shortMessageHtmlLink":"Revert back to the coloring algorithm before #2069"}},{"before":"e3cd17798b61728d81a6ec298a6f648c7e3fc300","after":"49a274e4e585c7161f4ce5002839feb1888d10f8","ref":"refs/heads/master","pushedAt":"2024-06-30T10:13:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Link back from user test to their profile page for approvers","shortMessageHtmlLink":"Link back from user test to their profile page for approvers"}},{"before":"f5fa284552336e5940231f0aac7f63c8684ebf1d","after":"e3cd17798b61728d81a6ec298a6f648c7e3fc300","ref":"refs/heads/master","pushedAt":"2024-06-29T11:39:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Fix wrong inner quotation in text\n\nThanks to @vdbergh for bringing attention to the bug.","shortMessageHtmlLink":"Fix wrong inner quotation in text"}},{"before":"ac4e089b97ab339ba4fbbf6538b8385aec4cf83a","after":"f5fa284552336e5940231f0aac7f63c8684ebf1d","ref":"refs/heads/master","pushedAt":"2024-06-25T15:44:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Show approvers to user management\n\nand enhance the page with count statistics","shortMessageHtmlLink":"Show approvers to user management"}},{"before":"bb5f9b38c3feeebd48a13baf9a5955a24300a09a","after":"ac4e089b97ab339ba4fbbf6538b8385aec4cf83a","ref":"refs/heads/master","pushedAt":"2024-06-25T15:37:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Introduce compute_flags() and validate them.\n\nPreviously the flags is_green and is_yellow were derived\nfrom formatting information in the result of format_results(run).\nObviously this is not nice.","shortMessageHtmlLink":"Introduce compute_flags() and validate them."}},{"before":"c103c8de475bc4b44a2ce974c968929a26b0927b","after":"bb5f9b38c3feeebd48a13baf9a5955a24300a09a","ref":"refs/heads/master","pushedAt":"2024-06-25T12:31:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Periodically validate Fishtest's internal data structures.\n\nIn this way we guarantee that the schemas in schemas.py are\nkept up-to-date and hence preserve their documentary value.\n\nAlso: switch to string keys for the worker_runs dict. This is\nwhat we do elsewhere and it makes the schema more readable:\n\nworker_runs_schema = {\n uuid: {\n run_id: True,\n \"last_run\": run_id,\n }\n}\n\nAlso: retire the separate variable \"purge_count\" and include\nit in the \"active_run\" dict.\n\nRequires upgrade of vtjson for the set datatype used in\n\"unfinished_runs_schema\".","shortMessageHtmlLink":"Periodically validate Fishtest's internal data structures."}},{"before":"04466a9defc1bd45fb176d375d08d2ad1a881302","after":"c103c8de475bc4b44a2ce974c968929a26b0927b","ref":"refs/heads/master","pushedAt":"2024-06-25T12:28:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Fix flake8 errors/warnings","shortMessageHtmlLink":"Fix flake8 errors/warnings"}},{"before":"322eea2e377023df3393d577587b9100666949f0","after":"04466a9defc1bd45fb176d375d08d2ad1a881302","ref":"refs/heads/master","pushedAt":"2024-06-24T15:29:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Fix API 404 errors to become as they were before 404 page masking them\n\nFixes #2064","shortMessageHtmlLink":"Fix API 404 errors to become as they were before 404 page masking them"}},{"before":"2c9654008d460864573e1288abace32d42778d14","after":"322eea2e377023df3393d577587b9100666949f0","ref":"refs/heads/master","pushedAt":"2024-06-11T19:26:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Optimize the construction of the main page a little bit.\n\nAlso: remove some dead code while there.","shortMessageHtmlLink":"Optimize the construction of the main page a little bit."}},{"before":"002c05190e778c668a385eba8f39aae7ca2881d0","after":"2c9654008d460864573e1288abace32d42778d14","ref":"refs/heads/master","pushedAt":"2024-06-10T19:40:19.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Validate whole run in \"validate_random_run\".\n\nThere are some race conditions in Fishtest so this will trigger\nsome (event) log messages. This will help us fix the race\nconditions.","shortMessageHtmlLink":"Validate whole run in \"validate_random_run\"."}},{"before":"b262cbe8b3234dfca154d72d9e3c0c6bc3cdbf8d","after":"002c05190e778c668a385eba8f39aae7ca2881d0","ref":"refs/heads/master","pushedAt":"2024-06-10T19:39:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Fix for #2060.","shortMessageHtmlLink":"Fix for #2060."}},{"before":"219f3ff58f5c22b81f48fc25019c0fdff9543caf","after":"b262cbe8b3234dfca154d72d9e3c0c6bc3cdbf8d","ref":"refs/heads/master","pushedAt":"2024-06-09T06:03:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Retire self.update_itp_task.schedule_now().\n\nupdate_itp() is a successor to code that also updated the\nlist of unfinished runs but the latter is now managed dynamically.\n\nItp values move slowly on the Fishtest time scale and there is\nno need to micro-manage them.","shortMessageHtmlLink":"Retire self.update_itp_task.schedule_now()."}},{"before":"433e9aef61db2616dd0521a84bca029363b2085b","after":"219f3ff58f5c22b81f48fc25019c0fdff9543caf","ref":"refs/heads/master","pushedAt":"2024-06-08T16:42:26.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Maintain self.unfinished_runs dynamically.","shortMessageHtmlLink":"Maintain self.unfinished_runs dynamically."}},{"before":"582d4ef7248b7fd31d011f94c7fe5aae4a402b1f","after":"433e9aef61db2616dd0521a84bca029363b2085b","ref":"refs/heads/master","pushedAt":"2024-06-08T08:56:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Enhancement of validation.\n\nMany data structure in Fishtest contain references to a run\nobjects. Naively validating such data structures means that we\nare also validating the embedded run objects, which is wasteful\nas these are already validated elsewhere.\n\nThe latest version of vtjson makes it possible to change\nsubschemas during validation.\n\nIn this PR we define the cache_schema as\n\ncache_schema = {\n run_id: {\n \"run\": set_label(runs_schema, \"runs_schema\"),\n\t\"is_changed\": bool,\n \"last_sync_time\": ufloat,\n \"last_access_time\": ufloat,\n },\n}\n\nand we perform validation via\n\nvalidate(cache_schema, self.run_cache, name=\"run_cache\", subs={\"runs_schema\": dict})\n\nRequires upgrade of vtjson.","shortMessageHtmlLink":"Enhancement of validation."}},{"before":"0e0f1c930d3d28bc2590e1df3d030730c0579b60","after":"582d4ef7248b7fd31d011f94c7fe5aae4a402b1f","ref":"refs/heads/master","pushedAt":"2024-06-07T09:26:56.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Dynamic duplicate workers detection.\n\nThis kills the last double loop in request_task().","shortMessageHtmlLink":"Dynamic duplicate workers detection."}},{"before":"d90610c36d1c37325e0721c0cd0604e0f97a979a","after":"0e0f1c930d3d28bc2590e1df3d030730c0579b60","ref":"refs/heads/master","pushedAt":"2024-06-02T08:40:44.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Some fixes in scavenge_dead_tasks\n\n- Remove a race condition\n\n- Do not require a cache entry to be clean before scavenging.\n\nUnder heavy load clean cache entries will be a rarity.","shortMessageHtmlLink":"Some fixes in scavenge_dead_tasks"}},{"before":"fc6b3061f2b358ed83eca0fa595306d6cfcad7eb","after":"d90610c36d1c37325e0721c0cd0604e0f97a979a","ref":"refs/heads/master","pushedAt":"2024-06-01T10:41:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ppigazzini","name":null,"path":"/ppigazzini","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15718418?s=80&v=4"},"commit":{"message":"Bug fix for #2030\n\nWith the present code a finished run with run[\"cores\"]>0 will\nnever be evicted from the cache. This is not a legal\ncondition but it happened in the past because of race conditions.\n\nThis explains why #2030 seemed to create more unvalidated runs.\nThe illegal runs become more and more likely to be selected for\nvalidation as they are not evicted and eventually dominate the\ncache.","shortMessageHtmlLink":"Bug fix for #2030"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0wNlQwOToyMTowOC4wMDAwMDBazwAAAAR4WJbm","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0wNlQwOToyMTowOC4wMDAwMDBazwAAAAR4WJbm","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wMVQxMDo0MTo0Mi4wMDAwMDBazwAAAARZrb1l"}},"title":"Activity ยท official-stockfish/fishtest"}