{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":203076,"defaultBranch":"master","name":"parallel_tests","ownerLogin":"grosser","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2009-05-17T10:54:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11367?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1714075079.0","currentOid":""},"activityList":{"items":[{"before":"29c76a21d7772a5db8d404c077c8f581825b932d","after":"c5dfb3c928b9ce45530061fdfcfe99bbe0e51fec","ref":"refs/heads/master","pushedAt":"2024-04-26T03:29:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"Fix version in CHANGELOG.md (#953)\n\nThis version is for 4.7.1.\r\nhttps://github.com/grosser/parallel_tests/commit/29c76a21d7772a5db8d404c077c8f581825b932d","shortMessageHtmlLink":"Fix version in CHANGELOG.md (#953)"}},{"before":"4425e06b4c16917b3dc6dba0964394993a9a746e","after":"29c76a21d7772a5db8d404c077c8f581825b932d","ref":"refs/heads/master","pushedAt":"2024-04-25T19:57:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.7.1","shortMessageHtmlLink":"v4.7.1"}},{"before":"1d939474d82d03036ea637ed8de3be39c8d54967","after":"4425e06b4c16917b3dc6dba0964394993a9a746e","ref":"refs/heads/master","pushedAt":"2024-04-25T19:55:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"Restore back options --verbose-process-command and --verbose-rerun-command (#952)\n\n* Restore back options --verbose-process-command and --verbose-rerun-command\r\n\r\nimplements issue #951\r\n\r\n* Reference Github PR in Changelog\r\n\r\n* Remove :verbose_command option\r\n\r\nIt's now just an alias to --verbose-process-command and\r\n--verbose-rerun-command combined.","shortMessageHtmlLink":"Restore back options --verbose-process-command and --verbose-rerun-co…"}},{"before":"b1540d856afde7ad4d734b82967f44452a51dc83","after":"1d939474d82d03036ea637ed8de3be39c8d54967","ref":"refs/heads/master","pushedAt":"2024-04-23T15:06:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"thx for the pr","shortMessageHtmlLink":"thx for the pr"}},{"before":"185faa434012f1dd8a4ccb999b966a5c32aeb4f8","after":"b1540d856afde7ad4d734b82967f44452a51dc83","ref":"refs/heads/master","pushedAt":"2024-04-23T15:05:31.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.7.0","shortMessageHtmlLink":"v4.7.0"}},{"before":"eb604643793dcdba6a22aa8e048cf5b857442775","after":"185faa434012f1dd8a4ccb999b966a5c32aeb4f8","ref":"refs/heads/master","pushedAt":"2024-04-23T14:59:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"Add --failure-exit-code option (#949)\n\n* feat: Add failure-exit-code option\r\n\r\n* docs: Add failure-exit-code option\r\n\r\n* test: Add --failure-exit-code test","shortMessageHtmlLink":"Add --failure-exit-code option (#949)"}},{"before":"2ae6606563f7479c6382e8efbc0ff928a73a0500","after":"eb604643793dcdba6a22aa8e048cf5b857442775","ref":"refs/heads/master","pushedAt":"2024-04-03T15:55:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.6.1","shortMessageHtmlLink":"v4.6.1"}},{"before":"6a024cf5821661ae5770adff5ea70821d2b2937d","after":"2ae6606563f7479c6382e8efbc0ff928a73a0500","ref":"refs/heads/master","pushedAt":"2024-04-03T15:53:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"Allow TEST_ENV_NUMBER to support duplicate file groups (#943)\n\n* WIP: Allow for different grouping strategy\r\n\r\n* Refactor cli.rb\r\n\r\n* Test refactor\r\n\r\n* Use map_with_index\r\n\r\n* Remove first_is_1 check\r\n\r\n* Update changelog","shortMessageHtmlLink":"Allow TEST_ENV_NUMBER to support duplicate file groups (#943)"}},{"before":"cf8afa00af14373d2592f1d49c79899ebcf91adb","after":"6a024cf5821661ae5770adff5ea70821d2b2937d","ref":"refs/heads/master","pushedAt":"2024-03-29T23:56:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"make examples work on zsh and bash (#942)","shortMessageHtmlLink":"make examples work on zsh and bash (#942)"}},{"before":"0bb8b940c352f75e0cc2eca50c65796e2ba1858b","after":null,"ref":"refs/heads/grosser/zsh","pushedAt":"2024-03-29T23:56:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"}},{"before":null,"after":"0bb8b940c352f75e0cc2eca50c65796e2ba1858b","ref":"refs/heads/grosser/zsh","pushedAt":"2024-03-29T23:52:55.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"make examples work on zsh and bash","shortMessageHtmlLink":"make examples work on zsh and bash"}},{"before":"bc79c20dcdbe87a170b316ded5e2c98486e70c68","after":"cf8afa00af14373d2592f1d49c79899ebcf91adb","ref":"refs/heads/master","pushedAt":"2024-03-25T17:55:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.6.0","shortMessageHtmlLink":"v4.6.0"}},{"before":"799422ef069ee8af7dbbf5f56c49012df7702cee","after":"bc79c20dcdbe87a170b316ded5e2c98486e70c68","ref":"refs/heads/master","pushedAt":"2024-03-25T17:53:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"Allow for duplicate tests with --allow-duplicates (#940)\n\n* Allow for duplicate tests to run\r\n\r\n> tldr; It's useful to run 1 or more tests multiple times when debugging\r\nand I'd like to propose an option to do so with parallel_tests\r\n\r\nI often find that I'd like to run 1+ files locally, in parallel, to rule\r\nout certain flakey test behaviors (order tests are being run). Kind of\r\nlike a form of \"test fuzzing\" I guess? The purpose is to generally rule\r\nout the test is flakey.\r\n\r\nI often find myself doing something like this in zsh:\r\n\r\n repeat 10 bin/rspec path/to/my_spec.rb\r\n\r\nSometimes it's more than 10, and sometimes it's more than 1 file I'd\r\nlike to run at the same time.\r\n\r\nI'd like to do this with parallel_tests instead and I'd like to propose\r\nthis PR as a potential solution (I didn't see this functionality present\r\nwith the current options)\r\n\r\nExample usage:\r\n\r\n```\r\nexport TEST_FILES=\"\r\nspec/test_1.rb\r\nspec/test_1.rb\r\nspec/test_1.rb\r\nspec/test_1.rb\r\nspec/test_1.rb\r\n\"\r\n\r\nbin/spring parallel_rspec -n 5 --allow-duplicates -- $(echo $TEST_FILES)\r\n\r\nbin/spring parallel_rspec -n 5 -- $(echo $TEST_FILES)\r\n```\r\n\r\nThere's one _minor_ caveat:\r\n\r\nThese duplicates will still be unique per process because RSpec _also_\r\ncalls uniq in a couple places\r\n\r\n[here](https://github.com/rspec/rspec-core/blob/1e661db5c5b431c0ee88a383e8e3767f02dccbfe/lib/rspec/core/configuration.rb#L2202), [here](https://github.com/rspec/rspec-core/blob/1e661db5c5b431c0ee88a383e8e3767f02dccbfe/lib/rspec/core/configuration.rb#L2222), and [here](https://github.com/rspec/rspec-core/blob/1e661db5c5b431c0ee88a383e8e3767f02dccbfe/lib/rspec/core/configuration.rb#L1636)\r\n\r\nIf there is interest in this PR, I'd be happy to propose a similar\r\nPR to the RSpec team.\r\n\r\nOne other thought: I was also thinking a companion `--repeat `\r\nflag could be useful, where it multiplies the file list N times\r\nand then builds the commands.\r\n\r\n bin/spring parallel_rspec --repeat 100 -- path/to/my_spec.rb\r\n\r\nWould happy to hear any thoughts or opinions on that as well. I'd\r\nbe happy to do a separate PR\r\n\r\n* Update lib/parallel_tests/test/runner.rb\r\n\r\nCo-authored-by: Michael Grosser \r\n\r\n* Rubocop cleanup\r\n\r\n---------\r\n\r\nCo-authored-by: Michael Grosser ","shortMessageHtmlLink":"Allow for duplicate tests with --allow-duplicates (#940)"}},{"before":"a0373af0d043a672df988b5c97e42dbefb99ae58","after":"799422ef069ee8af7dbbf5f56c49012df7702cee","ref":"refs/heads/master","pushedAt":"2024-03-05T04:43:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.5.2","shortMessageHtmlLink":"v4.5.2"}},{"before":"24f150cf1e6441cdec3d9f64b0d376fd6eb2f31b","after":"a0373af0d043a672df988b5c97e42dbefb99ae58","ref":"refs/heads/master","pushedAt":"2024-03-05T04:42:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"Make sure no error is raised when a process is already terminated (#939)","shortMessageHtmlLink":"Make sure no error is raised when a process is already terminated (#939)"}},{"before":"dba1b49ee155ceaf0bbb4650e47ee2cbbf7833db","after":"24f150cf1e6441cdec3d9f64b0d376fd6eb2f31b","ref":"refs/heads/master","pushedAt":"2024-02-17T00:45:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.5.1","shortMessageHtmlLink":"v4.5.1"}},{"before":"2231e95bd99b45b825f7447956057a3517c9d0ca","after":null,"ref":"refs/heads/grosser/rails","pushedAt":"2024-02-17T00:43:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"}},{"before":"8bb052342e3c6560572a51a378b722c589e2bb14","after":"dba1b49ee155ceaf0bbb4650e47ee2cbbf7833db","ref":"refs/heads/master","pushedAt":"2024-02-17T00:43:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"rails 5.2 compat (#937)","shortMessageHtmlLink":"rails 5.2 compat (#937)"}},{"before":"21b01b0ecb512ac8edb4fa11ba46c9babed18477","after":null,"ref":"refs/heads/grosser/gherkin","pushedAt":"2024-02-17T00:42:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"}},{"before":"963fd81ae1e407c82f982d181eefe6a0471fac7a","after":"8bb052342e3c6560572a51a378b722c589e2bb14","ref":"refs/heads/master","pushedAt":"2024-02-17T00:42:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"fix gherkin vs runtime logging (#938)","shortMessageHtmlLink":"fix gherkin vs runtime logging (#938)"}},{"before":null,"after":"21b01b0ecb512ac8edb4fa11ba46c9babed18477","ref":"refs/heads/grosser/gherkin","pushedAt":"2024-02-17T00:05:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"fix gherkin vs runtime logging","shortMessageHtmlLink":"fix gherkin vs runtime logging"}},{"before":"4c0faf95663307e4c547ddd3cf53448325133760","after":"2231e95bd99b45b825f7447956057a3517c9d0ca","ref":"refs/heads/grosser/rails","pushedAt":"2024-02-17T00:04:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"rails 5.2 compat","shortMessageHtmlLink":"rails 5.2 compat"}},{"before":"c0df21d0f0b640a92017075e3a99088cce603e1f","after":"4c0faf95663307e4c547ddd3cf53448325133760","ref":"refs/heads/grosser/rails","pushedAt":"2024-02-17T00:04:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"fix gherkin vs runtime logging","shortMessageHtmlLink":"fix gherkin vs runtime logging"}},{"before":"2231e95bd99b45b825f7447956057a3517c9d0ca","after":"c0df21d0f0b640a92017075e3a99088cce603e1f","ref":"refs/heads/grosser/rails","pushedAt":"2024-02-17T00:04:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"fix gherkin vs runtime logging","shortMessageHtmlLink":"fix gherkin vs runtime logging"}},{"before":null,"after":"2231e95bd99b45b825f7447956057a3517c9d0ca","ref":"refs/heads/grosser/rails","pushedAt":"2024-02-17T00:01:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"rails 5.2 compat","shortMessageHtmlLink":"rails 5.2 compat"}},{"before":"2c0e80a448e49e2f950fde625a50499a4a48cbd6","after":"963fd81ae1e407c82f982d181eefe6a0471fac7a","ref":"refs/heads/master","pushedAt":"2024-02-06T21:28:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"thx for pr","shortMessageHtmlLink":"thx for pr"}},{"before":"98f698b010a46e5a87b8ead727ac834c112a1b73","after":"2c0e80a448e49e2f950fde625a50499a4a48cbd6","ref":"refs/heads/master","pushedAt":"2024-02-06T21:26:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"v4.5.0","shortMessageHtmlLink":"v4.5.0"}},{"before":"2664ddda2e3f1177e867aa03ba98c5014504f703","after":null,"ref":"refs/heads/grosser/dup","pushedAt":"2024-02-06T21:25:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"}},{"before":"f776f6254b38d167032740466e9038bc7711c036","after":"98f698b010a46e5a87b8ead727ac834c112a1b73","ref":"refs/heads/master","pushedAt":"2024-02-06T21:25:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"clean up task name duplication (#933)","shortMessageHtmlLink":"clean up task name duplication (#933)"}},{"before":null,"after":"2664ddda2e3f1177e867aa03ba98c5014504f703","ref":"refs/heads/grosser/dup","pushedAt":"2024-02-06T20:53:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"grosser","name":"Michael Grosser","path":"/grosser","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/11367?s=80&v=4"},"commit":{"message":"clean up task name duplication","shortMessageHtmlLink":"clean up task name duplication"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOsSZ8AA","startCursor":null,"endCursor":null}},"title":"Activity · grosser/parallel_tests"}