{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":94659847,"defaultBranch":"master","name":"ESPEI","ownerLogin":"PhasesResearchLab","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-06-18T02:13:43.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/26635518?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708650421.0","currentOid":""},"activityList":{"items":[{"before":"635011492929eebfe7fcc5a50c59b9c64bf98cea","after":"4951916e54c2e971702704a94aa76e73acffa167","ref":"refs/heads/edge-composition-workaround","pushedAt":"2024-03-05T21:35:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"Bump up tolerance","shortMessageHtmlLink":"Bump up tolerance"}},{"before":null,"after":"635011492929eebfe7fcc5a50c59b9c64bf98cea","ref":"refs/heads/edge-composition-workaround","pushedAt":"2024-02-23T01:07:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"Add a workaround for single phase driving forces ('fixed phase'-type calculations) near the edge of composition space","shortMessageHtmlLink":"Add a workaround for single phase driving forces ('fixed phase'-type …"}},{"before":"b690e9a883cb9e4df765b4d4dbc94a4dabf2718e","after":"94856a320f2527465836db5c0698fcef1a08d929","ref":"refs/heads/master","pushedAt":"2024-01-30T19:19:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"DOC: Update .readthedocs.yml","shortMessageHtmlLink":"DOC: Update .readthedocs.yml"}},{"before":"8d519a899778dd1944a23a0fef48538f4a91fa4f","after":"b690e9a883cb9e4df765b4d4dbc94a4dabf2718e","ref":"refs/heads/master","pushedAt":"2024-01-30T18:34:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"REL: 0.8.10","shortMessageHtmlLink":"REL: 0.8.10"}},{"before":"07eba48d304b1b736786f16ed830986dc9e83cca","after":"8d519a899778dd1944a23a0fef48538f4a91fa4f","ref":"refs/heads/master","pushedAt":"2024-01-30T17:18:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"BLD: Fix automated deployment breaking change in download-artifcat@v4","shortMessageHtmlLink":"BLD: Fix automated deployment breaking change in download-artifcat@v4"}},{"before":"61eafcdec8d22a2286e9ba1471e6cba4e1fb4d20","after":"07eba48d304b1b736786f16ed830986dc9e83cca","ref":"refs/heads/master","pushedAt":"2024-01-29T23:07:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"MAINT: Remove importlib_metadata (no Python 3.7 backport needed) and update project metadata","shortMessageHtmlLink":"MAINT: Remove importlib_metadata (no Python 3.7 backport needed) and …"}},{"before":"5f6ff3697cd48169d548917447fdd282b65da560","after":"61eafcdec8d22a2286e9ba1471e6cba4e1fb4d20","ref":"refs/heads/master","pushedAt":"2024-01-29T23:02:18.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"Update GitHub actions versions","shortMessageHtmlLink":"Update GitHub actions versions"}},{"before":"c3457ffe9143ea1e0d677bd047412a2245506782","after":"5f6ff3697cd48169d548917447fdd282b65da560","ref":"refs/heads/master","pushedAt":"2024-01-17T22:00:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"ENH: Performance improvements for generating candidate models (#254)\n\nThis set of changes improves the performance of parameter selection with two primary changes:\r\n\r\n1. When we build candidate models (renamed `build_feature_sets` to `build_candidate_models`) we take all combinations of the product of composition-independent features with interaction features. The implication of this is that some models that have a lot of features, for example heat capacity temperature features with four binary interaction features, can get very expensive to generate candidate models because the current implementation has geometric complexity with respect to the temperature and interaction features (as documented). Here we make an optimization for cases when the general implementation will generate more than `complex_algorithm_candidate_limit` (default `=1000`) candidate models, where the simplified version will have the same number of composition-independent features for all interaction features. Instead of geometric complexity $N(1-N^M)/(1-N)$, the simplified version has complexity $NM$, where $N$ and $M$ are the number of composition-independent features and interaction features, respectively.\r\n\r\n2. A profiling-guided optimization in `espei.paramselect._build_feature_matrix`. The feature matrix is a concrete matrix of reals (rows: observations, columns: feature coefficients). We use a symengine vector (`ImmutableDenseMatrix`) to fill the feature matrix row-wise, moving an inner loop to fast SymEngine rather than slow Python. Roughly 3x speedup of this function after this change.","shortMessageHtmlLink":"ENH: Performance improvements for generating candidate models (#254)"}},{"before":"85a00792a0f13b7363859815d16d35f2b7905c01","after":"c3457ffe9143ea1e0d677bd047412a2245506782","ref":"refs/heads/master","pushedAt":"2024-01-17T19:32:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"ENH: Add framework for property model parameter generation (#251)\n\nThis is a significant feature improvement that introduces the concept of a `ModelFittingDescription` made up of `FittingStep` objects to tell ESPEI how to generate model parameters (with a capability to support generating parameters for custom models). In addition, these changes include:\r\n\r\n- Significant refactoring and simplification of `espei.paramselect`, the main module for parameter selection:\r\n - Most of the code that was duplicated for fitting endmembers, binary interactions, and ternary interactions was unified. \r\n - The `fit_ternary_interactions` function was completely removed and binary and ternary interactions now run the exact same code path.\r\n - The most significant changes are in `fit_parameters`, which now relies on dependency injection of a fitting description to know what fitting steps to take (we try to not make any assumptions about what parameters or data types are being fit) and this function is more streamlined to 1) select relevant data from datasets, 2) get the RHS (`b` in `Ax=b`) of the linear problem from the fitting step, 3) build candidate models (build a collection feature matrices, `A`), 4) select the best model from the candidates, and 5) insert the parameter and coefficients for the best model into the database\r\n- Refactoring to remove `espei.parameter_selection.utils`. Some of the functionality got moved to be in fitting steps, and `get_sample_condition_dicts` was moved to `espei.error_functions.non_equilibrium_thermochemical_error`, with `get_prop_samples` that it is used in conjunction with. Trying to have fewer \"utils\" modules. \r\n- Tests to verify that molar volume and custom property models (elastic) work against various edge cases\r\n- New docs page with a tutorial for using a custom model and fitting description for fitting elastic constants with a [repository](https://github.com/bocklund/espei-elastic-parameter-generation) containing the code\r\n- Small tweak to follow links in dataset recursive glob search. This is useful for organizing datasets for different runs while having one single source of truth for the data","shortMessageHtmlLink":"ENH: Add framework for property model parameter generation (#251)"}},{"before":"133befefb341b006fd94972a98c3c45dd031f7ab","after":"85a00792a0f13b7363859815d16d35f2b7905c01","ref":"refs/heads/master","pushedAt":"2024-01-14T01:35:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"FIX: fix dataplot for ternary cases with __HYPERPLANE__ (#252)\n\nThe presence of `__HYPERPLANE__` overall compositions in datasets was causing the dimensionality of tie-regions to be artificially increased. For example, a 3 phase region with an additional `__HYPERPLANE__` overall composition was being categorized as a 4 phase region and not plotted. This did not affect binary dataplotting because we did not differently depending on the number of phases in tie-regions (in ternary dataplotting we draw three phase regions as red tie-triangles).","shortMessageHtmlLink":"FIX: fix dataplot for ternary cases with __HYPERPLANE__ (#252)"}},{"before":"d435b1360695737657701a768a6ebf4e6d8de257","after":"133befefb341b006fd94972a98c3c45dd031f7ab","ref":"refs/heads/master","pushedAt":"2024-01-14T01:14:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"FIX: Fix Residual protocol for MCMC for Python 3.11 (#253)\n\nIt seems that Python 3.11 changed the behavior of calling `super().__init__` for `Protocol` subclasses that have `Optional` arguments and subclasses of the `Residual` protocol are raising. \r\n\r\nThis PR adds Python 3.11 to the CI test matrix and fixes the protocol signature (making the optional arguments actually optional) and also updates the callers that had incorrect signatures.","shortMessageHtmlLink":"FIX: Fix Residual protocol for MCMC for Python 3.11 (#253)"}},{"before":"95b09736643397e5d9a23503a8d3a0ff7ba42ef6","after":"d435b1360695737657701a768a6ebf4e6d8de257","ref":"refs/heads/master","pushedAt":"2023-11-28T07:37:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"ENH: Add initial/mean point to chains to fix (#249)\n\n* Add initial/mean point to chains (closes #243)\r\n* A update/fix for the test suite","shortMessageHtmlLink":"ENH: Add initial/mean point to chains to fix (#249)"}},{"before":"386ea7d6566bbaa6917a26f836c7bf29586582d5","after":null,"ref":"refs/heads/pydantic-pyobject-fix","pushedAt":"2023-11-10T23:53:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"}},{"before":"79c292af04b4044308cdb84741d5826d68fd0dac","after":"95b09736643397e5d9a23503a8d3a0ff7ba42ef6","ref":"refs/heads/master","pushedAt":"2023-11-10T23:53:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"MAINT: Migrate from pydantic PyObject to ImportString (#248)","shortMessageHtmlLink":"MAINT: Migrate from pydantic PyObject to ImportString (#248)"}},{"before":null,"after":"386ea7d6566bbaa6917a26f836c7bf29586582d5","ref":"refs/heads/pydantic-pyobject-fix","pushedAt":"2023-11-02T18:56:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"Migrate from pydantic PyObject to ImportString","shortMessageHtmlLink":"Migrate from pydantic PyObject to ImportString"}},{"before":"0ea63a7ba526bd683a096fbdbe622a41f822b027","after":"79c292af04b4044308cdb84741d5826d68fd0dac","ref":"refs/heads/master","pushedAt":"2023-08-30T19:29:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"MAINT: Support pydantic v2 (#247)","shortMessageHtmlLink":"MAINT: Support pydantic v2 (#247)"}},{"before":"d501e7279f990b0b28500a0ab1aeb0109346f028","after":"0ea63a7ba526bd683a096fbdbe622a41f822b027","ref":"refs/heads/master","pushedAt":"2023-06-28T14:11:26.767Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"ENH: Support single dataset checking from command line (#244)\n\n- Add support for passing a single JSON file to the dataset checker (in addition to a directory)\r\n- Add error handling to let the user know if they gave a path that didn't find any JSON files to check","shortMessageHtmlLink":"ENH: Support single dataset checking from command line (#244)"}},{"before":"7c5f81d45f74bae087434377ffff9506d1185800","after":null,"ref":"refs/heads/fix-activity-argument-passthrough","pushedAt":"2023-06-28T14:08:55.267Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"}},{"before":"7c797191d4c3178fe4a22275bbaee9c2977786ad","after":"d501e7279f990b0b28500a0ab1aeb0109346f028","ref":"refs/heads/master","pushedAt":"2023-06-28T14:08:51.983Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"FIX: Correctly pass parameters through calculate_activity_error (#246)","shortMessageHtmlLink":"FIX: Correctly pass parameters through calculate_activity_error (#246)"}},{"before":null,"after":"7c5f81d45f74bae087434377ffff9506d1185800","ref":"refs/heads/fix-activity-argument-passthrough","pushedAt":"2023-06-28T13:58:32.845Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bocklund","name":"Brandon Bocklund","path":"/bocklund","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7681751?s=80&v=4"},"commit":{"message":"FIX: Correctly pass parameters through calculate_activity_error","shortMessageHtmlLink":"FIX: Correctly pass parameters through calculate_activity_error"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEDU765QA","startCursor":null,"endCursor":null}},"title":"Activity · PhasesResearchLab/ESPEI"}