{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":2040778,"defaultBranch":"main","name":"bash_unit","ownerLogin":"pgrange","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2011-07-13T08:09:53.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/378506?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1710514240.0","currentOid":""},"activityList":{"items":[{"before":"30b59189a4d50dde86c6b107f5015f28ff188666","after":"3c1bdb074b01b7f779cff5fec525df1ef61a354d","ref":"refs/heads/main","pushedAt":"2024-04-28T10:37:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Improve install diagnostic when using curl","shortMessageHtmlLink":"Improve install diagnostic when using curl"}},{"before":"5f15e808c58cf1d2e6336b957a401c831afa1669","after":"30b59189a4d50dde86c6b107f5015f28ff188666","ref":"refs/heads/main","pushedAt":"2024-03-19T07:26:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Fix tarball url parsing in presence of \"pipefail\"\n\nPiping to `head` does not mix with `set -o pipefail` because `head` \"short-circuits\" as soon as it finds a result, causing a SIGPIPE to be sent to the writer, which may cause the writer to fail.","shortMessageHtmlLink":"Fix tarball url parsing in presence of \"pipefail\""}},{"before":"832b43900529c237c44b82dc12c390357b57855b","after":"5f15e808c58cf1d2e6336b957a401c831afa1669","ref":"refs/heads/main","pushedAt":"2024-03-15T14:51:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Add a gif demo to the README","shortMessageHtmlLink":"Add a gif demo to the README"}},{"before":null,"after":"27aedd12ea590795847ba86dc4c381106ec3b62f","ref":"refs/heads/add_gif_demo","pushedAt":"2024-03-15T14:50:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Add a gif demo to the README","shortMessageHtmlLink":"Add a gif demo to the README"}},{"before":"90d7160e87d11d365b68735e6d078aa202e60a35","after":"832b43900529c237c44b82dc12c390357b57855b","ref":"refs/heads/main","pushedAt":"2024-03-15T13:11:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Give a summary of the available functions","shortMessageHtmlLink":"Give a summary of the available functions"}},{"before":null,"after":"1aab5ecf69066297d31f740654194f0964a3d558","ref":"refs/heads/assert_at_the_top","pushedAt":"2024-03-15T13:09:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Give a summary of the available functions","shortMessageHtmlLink":"Give a summary of the available functions"}},{"before":"90d7160e87d11d365b68735e6d078aa202e60a35","after":null,"ref":"refs/heads/master","pushedAt":"2024-03-15T11:01:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"}},{"before":null,"after":"90d7160e87d11d365b68735e6d078aa202e60a35","ref":"refs/heads/main","pushedAt":"2024-03-15T11:01:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Let's put an appropriate amount of links","shortMessageHtmlLink":"Let's put an appropriate amount of links"}},{"before":"1d47a584b1c0a1e8b167561a91eb9772f11f1df5","after":"90d7160e87d11d365b68735e6d078aa202e60a35","ref":"refs/heads/master","pushedAt":"2024-03-15T10:59:33.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Let's put an appropriate amount of links","shortMessageHtmlLink":"Let's put an appropriate amount of links"}},{"before":"075efc5d59949bb514174717742d68a88e207344","after":"8a9534967fbfaeabf85af40d189f0c6f8977944b","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T10:58:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Let's put an appropriate amount of links","shortMessageHtmlLink":"Let's put an appropriate amount of links"}},{"before":"2ec899b9717911873fdd934b85b7b08a6bd10339","after":"075efc5d59949bb514174717742d68a88e207344","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T10:57:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Improve CI\n\nLet's run the CI in a cohesive way only when master is impacted.","shortMessageHtmlLink":"Improve CI"}},{"before":"f3e3ef451e763da49fd4388302e66b573f541e1b","after":"2ec899b9717911873fdd934b85b7b08a6bd10339","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T10:45:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Improve CI\n\nLet's run the CI in a cohesive way only when master is impacted.","shortMessageHtmlLink":"Improve CI"}},{"before":"e35b5c6f07e4da4c08c2605ec098589712ec4e11","after":"1d47a584b1c0a1e8b167561a91eb9772f11f1df5","ref":"refs/heads/master","pushedAt":"2024-03-15T09:09:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"More robust install\n\nWe add more strict bash flags for install script and we also\nrecommand using pipe instead of process substitution.\n\nWith pipe, the process can catch an error when running curl and\nfail but there's no such way of catching an error if we do\nprocess substitution.\n\nThis can help having more robust CI.","shortMessageHtmlLink":"More robust install"}},{"before":"178e3ff9de426dd705d78caaf7b7b9e69fd3da05","after":"e35b5c6f07e4da4c08c2605ec098589712ec4e11","ref":"refs/heads/master","pushedAt":"2024-03-15T08:37:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"More strict bash flags for install script","shortMessageHtmlLink":"More strict bash flags for install script"}},{"before":"a9aecf06e05369c95dee7dc529b5ab9981b10496","after":"f3e3ef451e763da49fd4388302e66b573f541e1b","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T08:36:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"More strict bash flags for install script","shortMessageHtmlLink":"More strict bash flags for install script"}},{"before":"12f939e523aee2d1f2cb1d368f6ba125d51623b2","after":"a9aecf06e05369c95dee7dc529b5ab9981b10496","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T08:20:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"How to use bash_unit with GitHub Actions","shortMessageHtmlLink":"How to use bash_unit with GitHub Actions"}},{"before":"0e7110db2c9c190876147ae960b0427ea21deb8e","after":"12f939e523aee2d1f2cb1d368f6ba125d51623b2","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T08:19:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"How to use bash_unit with GitHub Actions","shortMessageHtmlLink":"How to use bash_unit with GitHub Actions"}},{"before":null,"after":"0e7110db2c9c190876147ae960b0427ea21deb8e","ref":"refs/heads/document_ci","pushedAt":"2024-03-15T08:18:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"How to use bash_unit with GitHub Actions","shortMessageHtmlLink":"How to use bash_unit with GitHub Actions"}},{"before":"81c05dec28147ed1121156ba9835ab345bafc04a","after":"178e3ff9de426dd705d78caaf7b7b9e69fd3da05","ref":"refs/heads/master","pushedAt":"2024-03-15T08:07:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"increment actions/checkout from v2 to v4","shortMessageHtmlLink":"increment actions/checkout from v2 to v4"}},{"before":"800016bfd708bb930bff6ebda9efe4924088023a","after":"81c05dec28147ed1121156ba9835ab345bafc04a","ref":"refs/heads/master","pushedAt":"2024-03-08T08:25:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"prepare release v2.3.1","shortMessageHtmlLink":"prepare release v2.3.1"}},{"before":"a637d4677794fbed6f07137db1e82041f4dffacd","after":"800016bfd708bb930bff6ebda9efe4924088023a","ref":"refs/heads/master","pushedAt":"2024-03-08T08:22:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Fixes #115\n\nWe observed broken pipe output messages with bash_unit test in\nsome environments: github CI and nix builds. The tests are\npassing but display this suspiscious error message.\n\n@Pamplemousse has been able to reproduce them locally by trapping\nSIGPIPE:\n\n # trap '' SIGPIPE\n # ./bash_unit -p test_fail_fails tests/test_core.sh\n Running tests in tests/test_core.sh\n Running test_fail_fails ... /nix/store/11b3chszacfr9liy829xqknzp3q88iji-gnugrep-3.11/bin/grep: write error: Broken pipe\n SUCCESS ✓\n Overall result: SUCCESS ✓\n\nFrom man, SIGPIPE appears when a process writes on a pipe with\nno reader. Looking at the problematic tests, we see that they\nall rely on a muted bash_unit with a stacktrace output being\nmuted.\n\nWhen we look at how the stacktrace is muted, the code was like this:\n\n notify_stack () { : ; }\n\nAnd when we look at how the stacktrace is outputed by bash_unit we\nsee the following code:\n\n stacktrace | notify_stack\n\nSo we have some process run by stacktrace that is piped to a void\nfunction, that is, no process on the right of this pipe is reading\nwhich makes it a good candidate to generate a SIGPIPE.\n\nBy replacing the muted notify_stack with the following code, the\nissue is solved:\n\n notify_stack () { $CAT >/dev/null ; }","shortMessageHtmlLink":"Fixes #115"}},{"before":null,"after":"dc2c65a8ba7775512118100f90357176bd52a37b","ref":"refs/heads/fix_broken_pipe","pushedAt":"2024-03-08T08:19:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Fixes #115\n\nWe observed broken pipe output messages with bash_unit test in\nsome environments: github CI and nix builds. The tests are\npassing but display this suspiscious error message.\n\n@Pamplemousse has been able to reproduce them locally by trapping\nSIGPIPE:\n\n # trap '' SIGPIPE\n # ./bash_unit -p test_fail_fails tests/test_core.sh\n Running tests in tests/test_core.sh\n Running test_fail_fails ... /nix/store/11b3chszacfr9liy829xqknzp3q88iji-gnugrep-3.11/bin/grep: write error: Broken pipe\n SUCCESS ✓\n Overall result: SUCCESS ✓\n\nFrom man, SIGPIPE appears when a process writes on a pipe with\nno reader. Looking at the problematic tests, we see that they\nall rely on a muted bash_unit with a stacktrace output being\nmuted.\n\nWhen we look at how the stacktrace is muted, the code was like this:\n\n notify_stack () { : ; }\n\nAnd when we look at how the stacktrace is outputed by bash_unit we\nsee the following code:\n\n stacktrace | notify_stack\n\nSo we have some process run by stacktrace that is piped to a void\nfunction, that is, no process on the right of this pipe is reading\nwhich makes it a good candidate to generate a SIGPIPE.\n\nBy replacing the muted notify_stack with the following code, the\nissue is solved:\n\n notify_stack () { $CAT >/dev/null ; }","shortMessageHtmlLink":"Fixes #115"}},{"before":"8dd1ea8adcc3f964fd68f24835a487f20cae7dc5","after":"a637d4677794fbed6f07137db1e82041f4dffacd","ref":"refs/heads/master","pushedAt":"2024-03-08T08:01:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Cleaner mute","shortMessageHtmlLink":"Cleaner mute"}},{"before":"878a362ccaeb9db54f82dc98b9190039db79a94f","after":"8dd1ea8adcc3f964fd68f24835a487f20cae7dc5","ref":"refs/heads/master","pushedAt":"2024-03-05T10:15:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Introduces a quiet mode","shortMessageHtmlLink":"Introduces a quiet mode"}},{"before":"0e1131d97cacbfb974886133f129eff3be6447c7","after":"878a362ccaeb9db54f82dc98b9190039db79a94f","ref":"refs/heads/master","pushedAt":"2024-03-04T09:39:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"FIX pre-commit hook\n\nWe can not run bash_unit test with an old version of bash_unit\nas they will never pass when we introduce a new feature.\n\nWe're just keeping it here as a comment to document how one can\nuse it.","shortMessageHtmlLink":"FIX pre-commit hook"}},{"before":"9923c4b4ac2db9ae8abc386b12f11285aef5a369","after":"2c09d9ae85b0c34d37bdf86beac1d147d78d5185","ref":"refs/heads/quiet_mode","pushedAt":"2024-03-04T09:21:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"FIX pre-commit hook\n\nWe can not run bash_unit test with an old version of bash_unit\nas they will never pass when we introduce a new feature.\n\nWe're just keeping it here as a comment to document how one can\nuse it.","shortMessageHtmlLink":"FIX pre-commit hook"}},{"before":"5ff310ef98f55fcb1a68d87f8f69807362279ca6","after":"9923c4b4ac2db9ae8abc386b12f11285aef5a369","ref":"refs/heads/quiet_mode","pushedAt":"2024-03-04T09:17:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"FIX pre-commit hook\n\nWe can not run bash_unit test with an old version of bash_unit\nas they will never pass when we introduce a new feature.\n\nWe're just keeping it here as a comment to document how one can\nuse it.","shortMessageHtmlLink":"FIX pre-commit hook"}},{"before":"777714ef2ed17e8891770701459af72cf3185eef","after":"5ff310ef98f55fcb1a68d87f8f69807362279ca6","ref":"refs/heads/quiet_mode","pushedAt":"2024-03-04T09:14:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"FIX pre-commit hook\n\nWe can not run bash_unit test with an old version of bash_unit\nas they will never pass when we introduce a new feature.\n\nWe're just keeping it here as a comment to document how one can\nuse it.","shortMessageHtmlLink":"FIX pre-commit hook"}},{"before":null,"after":"777714ef2ed17e8891770701459af72cf3185eef","ref":"refs/heads/quiet_mode","pushedAt":"2024-03-04T09:06:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Introduce a quiet mode","shortMessageHtmlLink":"Introduce a quiet mode"}},{"before":"644c19e3c47413ee0bdfb06b30a93faedf75a0b1","after":"0e1131d97cacbfb974886133f129eff3be6447c7","ref":"refs/heads/master","pushedAt":"2024-02-26T07:41:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pgrange","name":"Pascal Grange","path":"/pgrange","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/378506?s=80&v=4"},"commit":{"message":"Calling bash-unit pre-commit hook in ci + sample setup","shortMessageHtmlLink":"Calling bash-unit pre-commit hook in ci + sample setup"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPDdaRgA","startCursor":null,"endCursor":null}},"title":"Activity · pgrange/bash_unit"}