{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":294340368,"defaultBranch":"master","name":"pyribs","ownerLogin":"icaros-usc","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-09-10T07:47:17.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/46579468?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719450591.0","currentOid":""},"activityList":{"items":[{"before":"90e109592db53597f018a9d4340919ffe37c91c4","after":null,"ref":"refs/heads/no-cells","pushedAt":"2024-06-27T01:09:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"35d841944d4a31dcd7e0d447239dd6323c2f0d72","after":"657017ca39e794183b623f6558cc24ad20f39c43","ref":"refs/heads/master","pushedAt":"2024-06-27T01:09:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Remove `_cells` attribute from ArchiveBase (#475)\n\n## Description\r\n\r\n\r\n\r\nRemoving this private attribute. It is confusing to allow usage of\r\n`_cells` because in UnstructuredArchive, the `cells` property will\r\nchange over time while `_cells` is set to the initial capacity. When\r\ninitially added, it was assumed that `_cells` would remain constant.\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [x] I have added a one-line description of my change to the changelog\r\nin\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Remove _cells attribute from ArchiveBase (#475)"}},{"before":"79dceec1baecc4e1928687d286cd5f380765518d","after":"90e109592db53597f018a9d4340919ffe37c91c4","ref":"refs/heads/no-cells","pushedAt":"2024-06-27T01:00:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"history","shortMessageHtmlLink":"history"}},{"before":null,"after":"79dceec1baecc4e1928687d286cd5f380765518d","ref":"refs/heads/no-cells","pushedAt":"2024-06-27T00:57:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Remove _cells from ArchiveBase","shortMessageHtmlLink":"Remove _cells from ArchiveBase"}},{"before":"deb014344d442c0f309435b228b25afeb06b4af5","after":null,"ref":"refs/heads/diversity-opt","pushedAt":"2024-06-26T21:51:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"c2a77a3e8cb4011d7741d9105128c0aed99a108e","after":"35d841944d4a31dcd7e0d447239dd6323c2f0d72","ref":"refs/heads/master","pushedAt":"2024-06-26T21:51:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Support diversity optimization in Scheduler.tell (#473)\n\n## Description\r\n\r\n\r\n\r\nWe are working on supporting diversity optimization algorithms such as\r\nnovelty search (see #472). One difference from other algorithms is that\r\nsuch algorithms do not require objectives. However, the current API to\r\nScheduler.tell() is:\r\n\r\n```\r\ntell(objective, measures, **fields)\r\n```\r\n\r\ni.e., it assumes objective and measures will be provided. This PR seeks\r\nto make it possible to call `scheduler.tell(measures)` in addition to\r\nthe current `scheduler.tell(objective, measures)`.\r\n\r\n### Use Cases\r\n\r\nThere are a couple of use cases that the scheduler must satisfy:\r\n\r\n1. QD optimization (i.e., current behavior should not break):\r\n - Positional arguments: `scheduler.tell(objective, measures)`\r\n- Keyword arguments: `scheduler.tell(objective=objective,\r\nmeasures=measures)`\r\n- Mixed (a rather extreme case): `scheduler.tell(objective,\r\nmeasures=measures)`\r\n2. Diversity optimization:\r\n - Positional arguments: `scheduler.tell(measures)`\r\n - Keyword arguments: `scheduler.tell(measures=measures)`\r\n3. Diversity optimization but where an objective has been added as an\r\nextra field:\r\n- Positional arguments: `scheduler.tell(measures, objective=objective)`\r\n- Keyword arguments: `scheduler.tell(measures=measures,\r\nobjective=objective)`\r\n\r\nIdeally, we would also be robust to a case where we need to only have\r\nobjectives in the future:\r\n\r\n4. Objective optimization:\r\n - Positional arguments: `scheduler.tell(objective)`\r\n - Keyword arguments: `scheduler.tell(objective=objective)`\r\n\r\n### Potential Solutions\r\n\r\n1. Change scheduler API to `tell(*args, **kwargs)` and add a\r\n`problem_type` to each archive.\r\n- args and kwargs are interpreted based on the type of the archive. If\r\nthe problem type is quality_diversity, then the args are interpreted as\r\nobjectives and measures. If the problem type is diversity_optimization,\r\nthen the args are interpreted as measures. If the problem type is\r\nsingle_objective, the args are interpreted as objective. kwargs will be\r\ntreated the same as fields in all cases.\r\n - Pros: Backwards-compatible and handles all 4 use cases above.\r\n- Cons: Makes the archives a bit more complex, may be a bit confusing to\r\nusers because the signature will not be very informative. However, I\r\nthink we can get away with this with good docstrings and documentation.\r\n2. Allow the current objective argument to be treated as measures, and\r\nassign a default argument of None to the current objective and measures\r\n-> i.e., `tell(objective=None, measures=None, **fields)`\r\n- Inspired by how numpy's `integers` can be either `rng.integers(high)`\r\nor `rng.integers(low, high)` -> see\r\n[here](https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.integers.html)\r\n- Pros: Minimal changes to current API, and still quite interpretable\r\nfor users.\r\n- Cons: On the other hand, it may be confusing to see that objective can\r\nbe set to measures. This will also fail case 3 above, i.e.,\r\n`scheduler.tell(measures, objective=objective)` will throw an error\r\nbecause `measures` is actually `objective` due to the positional\r\nargument, so `objective` is being passed in twice.\r\n3. **Require the user to pass in `objective=None` when performing\r\ndiversity optimization and maintain the same `scheduler.tell` API.**\r\n- Pros: This requires the fewest changes to the API. It also provides a\r\ngood model for what EvolutionStrategyEmitter and other emitters should\r\ndo -- all these classes can now implement behavior for `objective=None`.\r\nIt also does not require modifying the archives to have a `problem_type`\r\nor `archive_type` attribute. Furthermore, `objective` can still be\r\nprovided if that is a field in the archive.\r\n- Cons: It is a bit verbose to have `scheduler.tell(None, measures)` or\r\n`scheduler.tell(objective=None, measures=measures)` but I think users\r\ncan understand that.\r\n- Optionally, we can also set a default of `objective=None` and\r\n`measures=None` so that one can pass just measures, e.g.,\r\n`scheduler.tell(measures=...)` or just objectives\r\n`scheduler.tell(objective=)`. However, I think we may not want to add\r\nthis feature for now as it requires adding default values to a lot of\r\nplaces.\r\n4. Add a new parameter to `scheduler.tell` called `mode` or something\r\nsimilar to indicate diversity optimization is in effect, i.e.,\r\n`scheduler.tell(measures, mode=\"diversity\")`\r\n- Pros: This is very explicit and makes it clear that diversity\r\noptimization is happening without objectives.\r\n - Cons: Rather verbose.\r\n\r\n### Decision\r\n\r\nI believe **Solution 3** is the best solution, since it involves the\r\nfewest changes to the API and also contains the changes to the\r\nscheduler.\r\n\r\n## TODO\r\n\r\n\r\n\r\n- [x] Implement behavior for when `objective=None` in `Scheduler.tell`\r\n-- specifically, the scheduler will now allow any field to be None, and\r\nwhen the field is None, the scheduler will simply pass None down to the\r\nemitter tell functions.\r\n- [x] Write test for passing `objective=None` to the scheduler, both\r\nwith positional and keyword arguments. This test will be updated once\r\nthe UnstructuredArchive is implemented.\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [x] I have added a one-line description of my change to the changelog\r\nin\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Support diversity optimization in Scheduler.tell (#473)"}},{"before":"88ee6d1044def299ec83ade3beea3ba9121433c8","after":"deb014344d442c0f309435b228b25afeb06b4af5","ref":"refs/heads/diversity-opt","pushedAt":"2024-06-26T21:40:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Add BanditScheduler to test","shortMessageHtmlLink":"Add BanditScheduler to test"}},{"before":"7e94e9231df1b0d5261bf6f68a137059f4700983","after":"88ee6d1044def299ec83ade3beea3ba9121433c8","ref":"refs/heads/diversity-opt","pushedAt":"2024-06-26T21:37:27.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Add test","shortMessageHtmlLink":"Add test"}},{"before":"c2a77a3e8cb4011d7741d9105128c0aed99a108e","after":"7e94e9231df1b0d5261bf6f68a137059f4700983","ref":"refs/heads/diversity-opt","pushedAt":"2024-06-26T00:50:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"history","shortMessageHtmlLink":"history"}},{"before":null,"after":"c2a77a3e8cb4011d7741d9105128c0aed99a108e","ref":"refs/heads/diversity-opt","pushedAt":"2024-06-26T00:43:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Allow specifying separate dtypes for solution, objective, and measures (#471)\n\n## Description\r\n\r\n\r\n\r\nPreviously, dtype in the archive could only be a single value specifying\r\nthe dtype for the solution, objective, and measures all at once. Now, it\r\nis allowed to be a dict specifying separate dtypes for each of these,\r\ne.g.,\r\n\r\n```python\r\n archive = GridArchive(\r\n solution_dim=3,\r\n dims=[10, 10],\r\n ranges=[(-1, 1), (-2, 2)],\r\n dtype={\r\n \"solution\": object,\r\n \"objective\": np.float32,\r\n \"measures\": np.float32,\r\n },\r\n )\r\n```\r\n\r\nComments:\r\n\r\n- This PR is a followup to #470 which allowed expressing the different\r\ndtypes present in the archive.\r\n- Emitters used the dtype of their archive, e.g., `archive.dtype`. Now,\r\nthey choose a specific field's dtype to use. The emitters implemented\r\nthus far all choose `archive.dtypes[\"solution\"]`, i.e., they have the\r\nsame dtype as the solution.\r\n\r\n## TODO\r\n\r\n\r\n\r\n- [x] Write docstrings\r\n- [x] Implement change with parse_dtype function\r\n- [x] Add tests\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [x] I have added a one-line description of my change to the changelog\r\nin\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Allow specifying separate dtypes for solution, objective, and measures ("}},{"before":"0a82d6bb69d410027cd47d6bc1bffcf201030f26","after":null,"ref":"refs/heads/more-dtypes","pushedAt":"2024-06-14T09:54:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"14b8935e70c0f48a49dd418454b77f093ce1cff3","after":"c2a77a3e8cb4011d7741d9105128c0aed99a108e","ref":"refs/heads/master","pushedAt":"2024-06-14T09:54:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Allow specifying separate dtypes for solution, objective, and measures (#471)\n\n## Description\r\n\r\n\r\n\r\nPreviously, dtype in the archive could only be a single value specifying\r\nthe dtype for the solution, objective, and measures all at once. Now, it\r\nis allowed to be a dict specifying separate dtypes for each of these,\r\ne.g.,\r\n\r\n```python\r\n archive = GridArchive(\r\n solution_dim=3,\r\n dims=[10, 10],\r\n ranges=[(-1, 1), (-2, 2)],\r\n dtype={\r\n \"solution\": object,\r\n \"objective\": np.float32,\r\n \"measures\": np.float32,\r\n },\r\n )\r\n```\r\n\r\nComments:\r\n\r\n- This PR is a followup to #470 which allowed expressing the different\r\ndtypes present in the archive.\r\n- Emitters used the dtype of their archive, e.g., `archive.dtype`. Now,\r\nthey choose a specific field's dtype to use. The emitters implemented\r\nthus far all choose `archive.dtypes[\"solution\"]`, i.e., they have the\r\nsame dtype as the solution.\r\n\r\n## TODO\r\n\r\n\r\n\r\n- [x] Write docstrings\r\n- [x] Implement change with parse_dtype function\r\n- [x] Add tests\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [x] I have added a one-line description of my change to the changelog\r\nin\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Allow specifying separate dtypes for solution, objective, and measures ("}},{"before":"c05627500cad89168232bbe05c5a365c149d70a1","after":"0a82d6bb69d410027cd47d6bc1bffcf201030f26","ref":"refs/heads/more-dtypes","pushedAt":"2024-06-14T09:45:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"More tests","shortMessageHtmlLink":"More tests"}},{"before":"afb1202d3f0b8f839bd632f2f475f01d2bdade1e","after":"c05627500cad89168232bbe05c5a365c149d70a1","ref":"refs/heads/more-dtypes","pushedAt":"2024-06-14T09:37:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Add tests","shortMessageHtmlLink":"Add tests"}},{"before":null,"after":"afb1202d3f0b8f839bd632f2f475f01d2bdade1e","ref":"refs/heads/more-dtypes","pushedAt":"2024-06-14T09:20:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Support new dtype arg","shortMessageHtmlLink":"Support new dtype arg"}},{"before":"2662980e4626528ebbf47f6d655af0cf808662c7","after":null,"ref":"refs/heads/dtypes-property","pushedAt":"2024-06-14T09:09:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"5c145c731e77e39c8d0ea280ad84fd190b6c2310","after":"14b8935e70c0f48a49dd418454b77f093ce1cff3","ref":"refs/heads/master","pushedAt":"2024-06-14T09:09:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Replace archive.dtype with archive.dtypes dict that holds dtype of every field (#470)\n\n## Description\r\n\r\n\r\n\r\nPreviously, the archives had a `dtype` property that held the dtype of\r\nthe solution, objectives, and measures. However, these three may not\r\nalways have the same dtype; furthermore, this excludes the threshold\r\nfield and other additional fields provided by the user. Thus, this PR\r\nreplaces `dtype` with `dtypes`, a dict that maps from field name to\r\ndtype of the associated field.\r\n\r\n## TODO\r\n\r\n\r\n\r\n- [x] Deprecate `ArchiveBase.dtype` -- now, calling archive.dtype will\r\nraise a RuntimeError with a deprecation notice\r\n- [x] Add `ArchvieBase.dtypes`\r\n- [x] Update calls to `archive.dtype`. In particular, we now use\r\n`archive.dtypes[\"XXXX\"]`, with XXXX being the field name that is\r\nappropriate to the use case, e.g., `x0` in an emitter would be cast to\r\n`archive.dtypes[\"solution\"]`.\r\n- [x] Note that it was previously common to call\r\n`archive.dtype(some_scalar_value)`. This is not very correct. To\r\nelaborate, `archive.dtype` was a numpy scalar type, e.g., `np.float32`\r\nor `np.float64`, which is indeed callable. However, the actual dtype of\r\nan array, e.g., `np.arange(5).dtype` is an instance of `numpy.dtype`,\r\nwhich is _not_ callable. Thus, a utility called `np_scalar` was\r\nintroduced, which casts a provided value to a provided dtype, e.g.,\r\n`np_scalar(5.0, dtype=archive.dtypes[\"solution\"])`\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [x] I have added a one-line description of my change to the changelog\r\nin\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Replace archive.dtype with archive.dtypes dict that holds dtype of ev…"}},{"before":"92f0e7bfb36077cc2ded47cd24e44f04cec8fd0a","after":"2662980e4626528ebbf47f6d655af0cf808662c7","ref":"refs/heads/dtypes-property","pushedAt":"2024-06-14T08:56:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Fix stats dtype","shortMessageHtmlLink":"Fix stats dtype"}},{"before":"2e63ce9f762e9662be02e4ab93a8e46da3f9acf0","after":"92f0e7bfb36077cc2ded47cd24e44f04cec8fd0a","ref":"refs/heads/dtypes-property","pushedAt":"2024-06-14T08:40:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Add deprecation note","shortMessageHtmlLink":"Add deprecation note"}},{"before":null,"after":"2e63ce9f762e9662be02e4ab93a8e46da3f9acf0","ref":"refs/heads/dtypes-property","pushedAt":"2024-06-14T08:39:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Update calls to dtypes","shortMessageHtmlLink":"Update calls to dtypes"}},{"before":"d1598a1339d4bbb2555e3b8aea1f89490638267d","after":null,"ref":"refs/heads/vector_sigma0_in_es_emitter","pushedAt":"2024-05-31T23:11:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"b51c7afbe2f51c67198e6f996dc01854711a565c","after":null,"ref":"refs/heads/schedule-install","pushedAt":"2024-04-24T19:26:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"0c3e99dc2756bf07afdd8a1c7628c70ed94f2049","after":"5c145c731e77e39c8d0ea280ad84fd190b6c2310","ref":"refs/heads/master","pushedAt":"2024-04-24T19:25:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Fix installation job issues (#467)\n\n## Description\r\n\r\n\r\n\r\nThe installation job has been failing recently on Mac. Upgrading the\r\nminiconda setup should fix this.\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [N/A] I have added a one-line description of my change to the\r\nchangelog in\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Fix installation job issues (#467)"}},{"before":null,"after":"b51c7afbe2f51c67198e6f996dc01854711a565c","ref":"refs/heads/schedule-install","pushedAt":"2024-04-24T19:17:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Upgrade miniconda action to fix install issues","shortMessageHtmlLink":"Upgrade miniconda action to fix install issues"}},{"before":"01e045bb5f75f6bb79564cbbb5ec73abb45226cd","after":null,"ref":"refs/heads/readme","pushedAt":"2024-03-17T09:58:18.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"7cbd79fceb41554e113ccc4c565006287d262e3d","after":"0c3e99dc2756bf07afdd8a1c7628c70ed94f2049","ref":"refs/heads/master","pushedAt":"2024-03-17T09:58:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Note quotation marks for installation (#466)\n\n## Description\r\n\r\n\r\n\r\nMac users may need to put quotation marks around their installation\r\ncommands due to zsh interpreting the square brackets differently. This\r\nPR adds a note on that in the installation command.\r\n\r\nWe also have installation commands in other files like the examples, but\r\nI think adding the note here should cover most people. At any rate, we\r\nhave not yet received any issues about this, so people seem to be\r\nfiguring it out.\r\n\r\nI also updated this on the website.\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [N/A] I have added a one-line description of my change to the\r\nchangelog in\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Note quotation marks for installation (#466)"}},{"before":null,"after":"01e045bb5f75f6bb79564cbbb5ec73abb45226cd","ref":"refs/heads/readme","pushedAt":"2024-03-17T09:55:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Note quotation marks for installation","shortMessageHtmlLink":"Note quotation marks for installation"}},{"before":"19b295b9701706132df5fd778dc34fd41e937789","after":null,"ref":"refs/heads/contributing","pushedAt":"2024-03-14T10:04:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}},{"before":"971b1d7831a79bd38e0b7b208c76c02d58739990","after":"7cbd79fceb41554e113ccc4c565006287d262e3d","ref":"refs/heads/master","pushedAt":"2024-03-14T10:04:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"},"commit":{"message":"Add tutorial links to patch release instructions (#465)\n\n## Description\r\n\r\n\r\n\r\nForgot to do this for 0.7.1 but will leave as is since it is relatively\r\nminor.\r\n\r\n## Status\r\n\r\n- [x] I have read the guidelines in\r\n\r\n[CONTRIBUTING.md](https://github.com/icaros-usc/pyribs/blob/master/CONTRIBUTING.md)\r\n- [x] I have formatted my code using `yapf`\r\n- [x] I have tested my code by running `pytest`\r\n- [x] I have linted my code with `pylint`\r\n- [N/A] I have added a one-line description of my change to the\r\nchangelog in\r\n `HISTORY.md`\r\n- [x] This PR is ready to go","shortMessageHtmlLink":"Add tutorial links to patch release instructions (#465)"}},{"before":"7fd2936f133e7decb0ff0e74721ff559780d0d3f","after":null,"ref":"refs/heads/gh-actions","pushedAt":"2024-03-14T10:04:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"btjanaka","name":"Bryon Tjanaka","path":"/btjanaka","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38124174?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEcE1iZQA","startCursor":null,"endCursor":null}},"title":"Activity · icaros-usc/pyribs"}