{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":373502457,"defaultBranch":"main","name":"OMLT","ownerLogin":"cog-imperial","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-06-03T12:39:38.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/30658188?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1724684614.0","currentOid":""},"activityList":{"items":[{"before":"caebfc411a4e3bb43db57cf5c2082e2c7e5e41d0","after":"321a2e213df0a4707184595c399aa52e9bdad69b","ref":"refs/heads/main","pushedAt":"2024-08-24T17:15:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Fixing 404 errors of links to notebooks in the documentation (#143)\n\nI assume that the notebooks have been moved, but the documentation links\r\ndid not reflect that\r\n\r\n**Legal Acknowledgement**\\\r\nBy contributing to this software project, I agree my contributions are\r\nsubmitted under the BSD license.\r\nI represent I am authorized to make the contributions and grant the\r\nlicense.\r\nIf my employer has rights to intellectual property that includes these\r\ncontributions,\r\nI represent that I have received permission to make contributions and\r\ngrant the required license on behalf of that employer.","shortMessageHtmlLink":"Fixing 404 errors of links to notebooks in the documentation (#143)"}},{"before":"c6d274fbc2ce078827dbabe1e38efeec952eb26d","after":"caebfc411a4e3bb43db57cf5c2082e2c7e5e41d0","ref":"refs/heads/main","pushedAt":"2024-08-22T17:28:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Replace _BlockData with BlockData (#144)\n\nPyomo recently made ComponentData classes public\r\n(https://github.com/Pyomo/pyomo/pull/3221) which will be part of the\r\nupcoming release. Currently, this causes the following error to occur in\r\nOMLT:\r\n\r\n```\r\nTypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases\r\n```\r\n\r\nThe Pyomo team is working to try to address this issue, however OMLT\r\nshould update its code to address this as otherwise deprecation warnings\r\nwill be emitted when using the old class names.\r\n\r\nThe fix is to replace all instances of `_BlockData` with `BlockData`\r\n(just removing the underscore) - this applies to any other instance of\r\nPyomo component data objects as well (although I could only find 2\r\ninstances of these in the OMLT code).\r\n\r\n**Legal Acknowledgement**\\\r\nBy contributing to this software project, I agree my contributions are\r\nsubmitted under the BSD license.\r\nI represent I am authorized to make the contributions and grant the\r\nlicense.\r\nIf my employer has rights to intellectual property that includes these\r\ncontributions,\r\nI represent that I have received permission to make contributions and\r\ngrant the required license on behalf of that employer.\r\n\r\nCo-authored-by: jalving ","shortMessageHtmlLink":"Replace _BlockData with BlockData (#144)"}},{"before":"d43643a474bca8da9fbfdf53a83cb1a51e4f3780","after":"c6d274fbc2ce078827dbabe1e38efeec952eb26d","ref":"refs/heads/main","pushedAt":"2024-08-22T14:56:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Add tolerance to enforce strict inequalities in linear tree formulations (#163)\n\nThis PR adds a tolerance at which to enforce ``strict'' inequalities in\r\nlinear model trees: That is, the right branch will require that the\r\nfeature value be greater than or equal to the bound plus this tolerance\r\n(epsilon). This means that users can tune epsilon in order to ensure\r\nthat the MIP solution will match the tree prediction.\r\n\r\nAdditionally, the PR simplifies the implementation of the hybrid bigm\r\nlinear tree formulation by using two modern pyomo.gdp transformations.\r\nThis does mean that the linear tree formulations will rely on\r\npyomo>=6.7.1 though, if that's okay.\r\n\r\n**Legal Acknowledgement**\\\r\nBy contributing to this software project, I agree my contributions are\r\nsubmitted under the BSD license.\r\nI represent I am authorized to make the contributions and grant the\r\nlicense.\r\nIf my employer has rights to intellectual property that includes these\r\ncontributions,\r\nI represent that I have received permission to make contributions and\r\ngrant the required license on behalf of that employer.\r\n\r\n---------\r\n\r\nCo-authored-by: Emma Johnson ","shortMessageHtmlLink":"Add tolerance to enforce strict inequalities in linear tree formulati…"}},{"before":"e60563859a66ac5dd3348bf1763de57eec95171e","after":"d43643a474bca8da9fbfdf53a83cb1a51e4f3780","ref":"refs/heads/main","pushedAt":"2024-08-20T22:53:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Clean up package boilerplate (#149)\n\nThis PR does a couple of things to clean up the boilerplate related to\r\npackaging OMLT, see sections below for detailed explanations of the\r\nchanges.\r\n\r\n* Remove `setup.cfg` , `setup.py`, `docs/requirements.txt`, `tox.ini` in\r\nfavour of `pyproject.toml`.\r\n* Place `conda` requirements into `environment.yml` \r\n* Create new workflows `tests.yml` and `publish_release.yml`\r\n* Add quality checks using `ruff`, `mypy`, `doctest`\r\n* Use `just` for developer experience\r\n* Updated the `Development` section of `README` to talk about `just` \r\n* Clean up `conf.py`\r\n* Move `pull_request_template.md`\r\n* Allow publishing of package to pypi by pushing a new version tag\r\n\r\n# Other comments\r\n\r\n* consider internal package structure\r\n* force squash merge of PRs - this keeps git history for the `main`\r\nbranch nice and clean\r\n\r\n# Using `pyproject.toml`\r\n\r\n`pyrpoject.toml` is the simplest way to provide package metadata for a\r\nPython package. It is easy to read and also provides sections for\r\nconfigurating tools such as `pytest`, `ruff` and `mypy` all in one\r\nplace. It works seamlessly with the modern Python ecosystem.\r\n\r\nI set up `pyproject.toml` to automactically detect the version of the\r\ncode from git tags. No need to duplicate version numbers across the\r\nrepo. Just add a new tag and everything will be updated. In addition,\r\nwhen a new git tag is pushed to the GitHub repo, the new\r\n`publish_release` workflow will be triggered and a new PYPI version\r\nreleased. (See more on this below).\r\n\r\nI also set it up so that the version is automatically added to a file\r\ncalled `src/omlt/_version.py` which holds the `__version__` variable.\r\nthis file is autogenerated and therefore added to `.gitignore`. The\r\n`__version__` veriable is then re-exported in `src/omlt/__init__.py` so\r\nthat our users have access to it.\r\n\r\nI tried to perserve all the information stored in the `setup.cfg` and\r\nother deleted files -- let me know if there is something i missed!\r\n\r\n## Optional dependencies\r\n\r\nThe `pyproject.toml` file allows the creation of optional dependencies.\r\nFor example, our users can install\r\n\r\n```bash\r\npip install omlt[keras]\r\n# or\r\npip install omlt[torch]\r\n# or\r\npip install omlt[linear-tree,keras-gpu]\r\n```\r\nOfc any combination of optional dependencies is valid too. This allows\r\nour users to install the dependencies specific to their use case. Note\r\nthat:\r\n\r\n* I made `onnx` and `onnxruntime` a required dependency because from my\r\nunderstanding it is almost always used\r\n* I added an optinoal dependency set called `dev` which developers can\r\nuse to install all developer tools and all dependencies -- you need this\r\nto run all the tests for example\r\n* There is also `dev-gpu` which installs the GPU version of tensorflow\r\nin case the developer has a GPU\r\n\r\nThe available optional dependencies are:\r\n\r\n* `linear-tree`, installs the linear tree dependency\r\n* `keras`, installs tensorflow and keras\r\n* `keras-gpu`, installs tensorflow for the gpu and keras\r\n* `torch`, installs torch and torch geometric\r\n* `dev-tools` - this is not to be used directly but allows easy re-use\r\nof dev tools in other optional dependencies, namely dev and dev-gpu\r\n* `docs` - installs dependencies required to compile docs \r\n* `dev` - dependecies needed for developing the project, such tooling\r\n* `dev-gpu` - same as dev but installed with gpu support\r\n\r\nOur documentation probably needs to be updated to tell users they wanna\r\ninstall omlt with some combination of `linear-tree`, `keras`,\r\n`keras-gpu`, `torch` optional dependencies depending on what features of\r\nthe package they are using\r\n\r\n# Quality checks with `ruff`, `mypy` and `doctest`\r\n\r\nI've enabled `ruff`, `mypy` and `doctest`. Currently there are no\r\ndoctests, but its good to have it set up so that it runs in case any are\r\nadded in the future.\r\n\r\nBoth `ruff` and `mypy` are failing because there are a number of things\r\nwhich need to fixed. For both `ruff` and `mypy` I have disabled some\r\nchecks which it would be good to enable eventually but are probably a\r\nfair amount of work to fix -- these have comments in `pyproject.toml`.\r\nThe remaining failing checks are ones which I would reccomend fixing\r\nASAP. There's two approaches, merge now and fix these errors later. Or\r\nkeep a separate branch where these are incrementally fixed. Up to you to\r\ndecide what you prefer.\r\n\r\nI told ruff to check for `google` style docstrings. I think these are\r\nthe best because they have good readbility and work the best with type\r\nhints in my opinion.\r\n\r\n# Using `just` instead of `tox`\r\n\r\nhttps://github.com/casey/just is a simple command runner. It allows the\r\ndevelopers to define and re-use common operations, for example I can\r\ndefine a `check` recipe and then run\r\n\r\n```bash\r\njust check\r\n```\r\n\r\nin my command line and it will run all the tests. The beauty of this is\r\nthat `just` is extremely simple. If you read the file its basically a\r\nsequence of bash instructions for each recipe. This makes the `recipes`\r\nreally transparent, and easy to understand, and works as\r\ncode-as-documentation. Users can just read the recipe and run the\r\ncommands one by one to get the same effect without having `just`\r\ninstalled. There is no magic which helps with debugging issues. It's\r\nalso language agnostic. `just` comes as a small stand-alone binary,\r\nwhich makes it a very non-intrusive tool to have on your computer that\r\ndoes not need any dependencies.\r\n\r\nThe downside is that it does not provide automatic management for Python\r\nenvironments, which I belive tox does provide. The other side of this is\r\nthat we allow developers to use their favorite tools for managing venvs\r\nrather than proscribing certain tools for this repo. (the difference\r\nwith `just` being that it is essentially optional tool and also serving\r\nas documentation)\r\n\r\nI may be overly opinionated on this one, so feel free to push back.\r\n\r\n# Cleaning up `docs/conf.py`\r\n\r\nI removed a bunch of the commented out code. This makes it easier to see\r\nwhat the configuration is and also prevents the commented out options\r\nfrom becoming out of date when a new release of sphinx is made.\r\n\r\n# Moving `pull_request_template.md`\r\n\r\nI moved this into the `.github` folder because it is GitHub\r\nconfiguration. Very optional, but makes more sense to me.\r\n\r\n# `readthedocs` automated action\r\n\r\nthis guide\r\nhttps://docs.readthedocs.io/en/stable/guides/pull-requests.html shows\r\nhow to set it up. requires admin permissions on readthedocs -- can jump\r\non a call to help with this\r\n\r\n# publishing with to `PYPI` with a git tag\r\n\r\nfor this an API key for PYPI needs to be created and added to the repos\r\nsecrets -- can jump on a call to help with this\r\n\r\n# consider `_internal` package structure\r\n\r\nOne way to make it easier to manage private vs public code in a\r\nrepository is to create an `_internal` folder where all the code goes.\r\nThis way all code can be shared easily and moved between modules and its\r\nby default private, so changes to internal code does not break users.\r\nPublic modules then just re-export code in the `_internal` submodules.\r\nYou can see an example of this structure here\r\nhttps://github.com/lukasturcani/stk. Not a huge issue but I find it very\r\nhelpful for managing what things are actually exposed to users the\r\ncode-base grows.\r\n\r\n**Legal Acknowledgement**\\\r\nBy contributing to this software project, I agree my contributions are\r\nsubmitted under the BSD license.\r\nI represent I am authorized to make the contributions and grant the\r\nlicense.\r\nIf my employer has rights to intellectual property that includes these\r\ncontributions,\r\nI represent that I have received permission to make contributions and\r\ngrant the required license on behalf of that employer.\r\n\r\n---------\r\n\r\nCo-authored-by: Jeremy Sadler <53983960+jezsadler@users.noreply.github.com>","shortMessageHtmlLink":"Clean up package boilerplate (#149)"}},{"before":"f9b5c8fdeadb8500f808d379db498d095c52d96d","after":"e60563859a66ac5dd3348bf1763de57eec95171e","ref":"refs/heads/main","pushedAt":"2024-05-16T21:59:57.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"jezsadler","name":"Jeremy Sadler","path":"/jezsadler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/53983960?s=80&v=4"},"commit":{"message":"Merge pull request #147 from jalving/jalving/update_codecov_action\n\nupdate codecov action","shortMessageHtmlLink":"Merge pull request #147 from jalving/jalving/update_codecov_action"}},{"before":"5e20b1b539b14abd2564484525033d82422f7a37","after":"f9b5c8fdeadb8500f808d379db498d095c52d96d","ref":"refs/heads/main","pushedAt":"2024-05-16T21:19:38.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Merge pull request #146 from jezsadler/keras3\n\nSwitching test models to Keras3 format","shortMessageHtmlLink":"Merge pull request #146 from jezsadler/keras3"}},{"before":"ef41893fcec5e297969b4486661f121c1d42cfb0","after":"5e20b1b539b14abd2564484525033d82422f7a37","ref":"refs/heads/main","pushedAt":"2024-05-16T18:15:19.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Merge pull request #145 from jalving/jalving/re-add-workflows\n\nfix notebook; re-add workflow","shortMessageHtmlLink":"Merge pull request #145 from jalving/jalving/re-add-workflows"}},{"before":"72a0366d3716a586f814e95be10c29aaa61da6d1","after":"ef41893fcec5e297969b4486661f121c1d42cfb0","ref":"refs/heads/main","pushedAt":"2024-04-20T15:27:33.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Merge pull request #140 from cog-imperial/update_gnn_citation\n\nUpdate README.rst","shortMessageHtmlLink":"Merge pull request #140 from cog-imperial/update_gnn_citation"}},{"before":"84db760707926b4670ffa59094802a1b4961c5e0","after":"3eb2d1af3a62f7bad2804cf9514ee1ac64fc799b","ref":"refs/heads/update_gnn_citation","pushedAt":"2024-04-20T14:45:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"zshiqiang","name":"Shiqiang Zhang","path":"/zshiqiang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91337036?s=80&v=4"},"commit":{"message":"Update README.rst","shortMessageHtmlLink":"Update README.rst"}},{"before":null,"after":"84db760707926b4670ffa59094802a1b4961c5e0","ref":"refs/heads/update_gnn_citation","pushedAt":"2024-04-16T17:33:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"zshiqiang","name":"Shiqiang Zhang","path":"/zshiqiang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/91337036?s=80&v=4"},"commit":{"message":"Update README.rst\n\nUpdate GNN citation","shortMessageHtmlLink":"Update README.rst"}},{"before":"a3d128d569b9b7cbf13315ea6be813f076d56b22","after":"72a0366d3716a586f814e95be10c29aaa61da6d1","ref":"refs/heads/main","pushedAt":"2024-02-08T15:04:34.000Z","pushType":"pr_merge","commitsCount":36,"pusher":{"login":"rmisener","name":"Ruth Misener","path":"/rmisener","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14861508?s=80&v=4"},"commit":{"message":"Merge pull request #110 from zshiqiang/add-gnn\n\nadd graph neural networks","shortMessageHtmlLink":"Merge pull request #110 from zshiqiang/add-gnn"}},{"before":"b43ac5e0484a62f900945ecdd6d81497df77a476","after":"a3d128d569b9b7cbf13315ea6be813f076d56b22","ref":"refs/heads/main","pushedAt":"2023-12-05T10:10:07.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"rmisener","name":"Ruth Misener","path":"/rmisener","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14861508?s=80&v=4"},"commit":{"message":"Merge pull request #136 from zshiqiang/add_documentations\n\nadd documentations","shortMessageHtmlLink":"Merge pull request #136 from zshiqiang/add_documentations"}},{"before":"f50290b4b889a3a40d19e8e199854f386530d56e","after":"b43ac5e0484a62f900945ecdd6d81497df77a476","ref":"refs/heads/main","pushedAt":"2023-12-04T16:25:50.000Z","pushType":"pr_merge","commitsCount":22,"pusher":{"login":"rmisener","name":"Ruth Misener","path":"/rmisener","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14861508?s=80&v=4"},"commit":{"message":"Merge pull request #137 from jezsadler/main\n\nReplacing assert statements with Exceptions","shortMessageHtmlLink":"Merge pull request #137 from jezsadler/main"}},{"before":"b9600e2064b70bef981fdecc725785d30688dae5","after":"f50290b4b889a3a40d19e8e199854f386530d56e","ref":"refs/heads/main","pushedAt":"2023-11-27T12:33:38.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"rmisener","name":"Ruth Misener","path":"/rmisener","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14861508?s=80&v=4"},"commit":{"message":"Merge pull request #131 from jalving/API-documentation\n\nUpdate readthedocs to v2","shortMessageHtmlLink":"Merge pull request #131 from jalving/API-documentation"}},{"before":"dc84be8ae90fa388969818bcc026a76aa850e100","after":"b9600e2064b70bef981fdecc725785d30688dae5","ref":"refs/heads/main","pushedAt":"2023-10-29T04:13:55.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"jalving","name":"Jordan Jalving","path":"/jalving","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16785413?s=80&v=4"},"commit":{"message":"Merge pull request #124 from bammari/increase_execution_time\n\nIncrease execution timeout","shortMessageHtmlLink":"Merge pull request #124 from bammari/increase_execution_time"}},{"before":"10339722f8220de50a4a2961e258f6655fcfb8a4","after":"dc84be8ae90fa388969818bcc026a76aa850e100","ref":"refs/heads/main","pushedAt":"2023-10-20T19:55:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"carldlaird","name":null,"path":"/carldlaird","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18519762?s=80&v=4"},"commit":{"message":"Update README.rst (#126)\n\nNew badge link","shortMessageHtmlLink":"Update README.rst (#126)"}},{"before":null,"after":"3f61eac2988a049b67a84e6e0719d06d3942f65c","ref":"refs/heads/bammari-patch-1","pushedAt":"2023-10-20T19:53:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"bammari","name":"Bashar Loui Ammari ","path":"/bammari","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/96192809?s=80&v=4"},"commit":{"message":"Update README.rst\n\nNew badge link","shortMessageHtmlLink":"Update README.rst"}},{"before":"c0f6c0bce30cf4d8d0280d4f64f8992edb23e2d0","after":"10339722f8220de50a4a2961e258f6655fcfb8a4","ref":"refs/heads/main","pushedAt":"2023-09-26T05:25:06.000Z","pushType":"pr_merge","commitsCount":12,"pusher":{"login":"rmisener","name":"Ruth Misener","path":"/rmisener","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14861508?s=80&v=4"},"commit":{"message":"Merge pull request #121 from cog-imperial/add_activations_onnx\n\nAdd activations onnx","shortMessageHtmlLink":"Merge pull request #121 from cog-imperial/add_activations_onnx"}},{"before":"a5e37fead6ffd219b55daedd27bb1848db2cbdb5","after":"7d9814fd3186065af246f69ae48034807e0fa701","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-09-25T18:21:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"deleting white space","shortMessageHtmlLink":"deleting white space"}},{"before":"480ea49bcac6a5ae0729a2b5dbf6e22fb96a3013","after":"a5e37fead6ffd219b55daedd27bb1848db2cbdb5","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-09-25T15:52:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"formatting","shortMessageHtmlLink":"formatting"}},{"before":"0a25891713a1da70e3b0295be3543c2a90699b11","after":"480ea49bcac6a5ae0729a2b5dbf6e22fb96a3013","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-09-25T15:21:50.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"Merge branch 'main' into add_activations_onnx","shortMessageHtmlLink":"Merge branch 'main' into add_activations_onnx"}},{"before":"47f646b07dcbd24ad22702b42dcb73069e80c79b","after":"c0f6c0bce30cf4d8d0280d4f64f8992edb23e2d0","ref":"refs/heads/main","pushedAt":"2023-09-25T09:23:08.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"rmisener","name":"Ruth Misener","path":"/rmisener","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14861508?s=80&v=4"},"commit":{"message":"Merge pull request #123 from jezsadler/main\n\nQuickstart guide amendments","shortMessageHtmlLink":"Merge pull request #123 from jezsadler/main"}},{"before":"b60bf0db47aa931a7e89286eda0eeb9bba8c560d","after":"47f646b07dcbd24ad22702b42dcb73069e80c79b","ref":"refs/heads/main","pushedAt":"2023-09-24T14:29:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"carldlaird","name":null,"path":"/carldlaird","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18519762?s=80&v=4"},"commit":{"message":"Adding onnxruntime_provider branch (#122)","shortMessageHtmlLink":"Adding onnxruntime_provider branch (#122)"}},{"before":"2d0e9c78bb1ddfb065d7c185b2cd944fc1dcccc5","after":"0a25891713a1da70e3b0295be3543c2a90699b11","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-09-18T17:57:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"Merge branch 'main' into add_activations_onnx","shortMessageHtmlLink":"Merge branch 'main' into add_activations_onnx"}},{"before":"221b38e34cb19d93f10615cc9afde84299a7cbe7","after":"2d0e9c78bb1ddfb065d7c185b2cd944fc1dcccc5","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-09-18T17:41:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"adding onnx models for the tests","shortMessageHtmlLink":"adding onnx models for the tests"}},{"before":"dcca13ce1472075e8e4c07013be6ff2395937190","after":"b60bf0db47aa931a7e89286eda0eeb9bba8c560d","ref":"refs/heads/main","pushedAt":"2023-09-18T14:53:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"carldlaird","name":null,"path":"/carldlaird","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18519762?s=80&v=4"},"commit":{"message":"Linear Tree Implementation (#108)\n\n* added initial linear-tree files. Created linear-tree model class\r\n\r\n* initial commit\r\n\r\n* LinearTreeModel\r\n\r\n* public vs private test\r\n\r\n* private vs public testing\r\n\r\n* public vs private testing\r\n\r\n* Initial Linear Tree Commit\r\n\r\n* ltmodel testing\r\n\r\n* ltmodel testing\r\n\r\n* ltmodel testing\r\n\r\n* ltmodel testing\r\n\r\n* recursion test find children splits\r\n\r\n* testing\r\n\r\n* recursion test find all children splits\r\n\r\n* recursion test number find all children splits\r\n\r\n* Recursion test 1\r\n\r\n* Globalizing Function Test\r\n\r\n* Globalizing Function Test\r\n\r\n* Determine if parent information is even needed\r\n\r\n* LinearModel Testing\r\n\r\n* Lt Model Testing and commit\r\n\r\n* Cleaning Up LinearTreeModel Class code\r\n\r\n* Linear Tree Init Commiit\r\n\r\n* Raise exceptions for missing bounds/wrong transformation\r\n\r\n* changed parse_tree_data name\r\n\r\n* raise errors on unsupported GDP transformations\r\n\r\n* Bounds changes\r\n\r\n* Implemented output variable bound calculation function\r\n\r\n* adding comments to output variable bound function\r\n\r\n* Initial Linear Tree Documentation\r\n\r\n* linear tree documentation\r\n\r\n* Added Notebook for Linear Tree in Docs\r\n\r\n* Documentation\r\n\r\n* Added more documentation on comments\r\n\r\n* Updated docstrings\r\n\r\n* docstring updates\r\n\r\n* Docstring Updates\r\n\r\n* Docstring Updates\r\n\r\n* Upload the script for testing\r\n\r\n* Upload script for testing LinearTreeModel\r\nTest dictionary\r\n\r\n* Upload the test for bigm transformation\r\n\r\n* Pass pytest:\r\nfix some bus, e.g. len\r\n\r\n* Test hull formulation\r\n\r\n* Test the slope and bounds:\r\nNote that bounds may be None for other dataset\r\n\r\n* Added Hybrid Big-M Formulations\r\n\r\n* Added Multiple BigM Test\r\n\r\n* Add more comments\r\n\r\n* Added multivariate input testing for linear model decision trees\r\n\r\n* Added Hybrid Big M Formulation Tests\r\n\r\n* Docstring Updates\r\n\r\n* Added option to pass in summary rather than linear-tree instance\r\n\r\n* Added test to ensure model summary argument functions\r\n\r\n* Added Hybrid Big-M Tests\r\n\r\n* docstring updates\r\n\r\n* Docstring updates\r\n\r\n* Docstring updates\r\n\r\n* Added code to ensure input dict is correct\r\n\r\n* Added hybrid big-m representation to docs\r\n\r\n* Added testing for raised exceptions\r\n\r\n* Reassigned none bounds in lt model. Added unscaled_input_bounds karg\r\n\r\n* Initial formulation consolidation code commit\r\n\r\n* docstring updates\r\n\r\n* Docstring updates\r\n\r\n* Docstring update\r\n\r\n* Update Variable Names\r\n\r\n* Updated LinearTreeModel to LinearTreeDefinition, made helper functions internal, and added cbc as solver for MILP tests\r\n\r\n* Updated Notebook to use LinearTree Definition\r\n\r\n* Code Cleanup\r\n\r\n* Updated lineartree to linear_tree, changed _setup_scaled_inputs due to maxpool int/float issue\r\n\r\n* Install pyscipopt in main.yml\r\n\r\n* Update linear_tree notebook to use SCIP rather than gurobi\r\n\r\n* Changed quadratic formulation solver from gurobi to scip\r\n\r\n* Skip if solvers unavailable\r\n\r\n* omlt.lineartree to omlt.linear_tree\r\n\r\n* Added 'custom' transformation option to LinearTreeGDPFormulation\r\n\r\n* Ran through pylint and black\r\n\r\n* Cleaning up for linting\r\n\r\n* Fixing pylint issues\r\n\r\n* Linting\r\n\r\n* Linting\r\n\r\n* Added test for scaling LinearTreeDefinition\r\n\r\n* Linting\r\n\r\n* Edit docstring\r\n\r\n* Added properties to definition. Docstring Updates.\r\n\r\n* Removing unused properties\r\n\r\n* Docstring Updates\r\n\r\n* Linear Tree Notebook Updates\r\n\r\n* Linting\r\n\r\n* docstring update\r\n\r\n* For code coverage\r\n\r\n* Addressing requested changes\r\n\r\n* Addressing changes\r\n\r\n* Addressing ruth comments\r\n\r\n* Notebook Update\r\n\r\n* Updating README.rst. Also updated OMLT paper citation.\r\n\r\n* Modifying citation\r\n\r\n* Notebook modification\r\n\r\n* Notebook modification\r\n\r\n* Notebook docstring\r\n\r\n* Attempt tests on Python 3.10\r\n\r\n* Testing on Python 3.10\r\n\r\n---------\r\n\r\nCo-authored-by: Shumeng Lin <54089164+linshumeng@users.noreply.github.com>","shortMessageHtmlLink":"Linear Tree Implementation (#108)"}},{"before":"3d8480b8ba4d5e3fc4db5d8752cf677a7162bfc8","after":"221b38e34cb19d93f10615cc9afde84299a7cbe7","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-08-29T10:59:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"deleting white space","shortMessageHtmlLink":"deleting white space"}},{"before":"4ee49d29bec982a56cf7d69c9bd1d01994061c8f","after":"3d8480b8ba4d5e3fc4db5d8752cf677a7162bfc8","ref":"refs/heads/add_activations_onnx","pushedAt":"2023-08-29T10:41:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"deleting white space","shortMessageHtmlLink":"deleting white space"}},{"before":"5f4d8476fd84a2b099514a9564df9b17e4d34f80","after":null,"ref":"refs/heads/add_act_onnx_parser","pushedAt":"2023-08-28T17:07:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"}},{"before":null,"after":"5f4d8476fd84a2b099514a9564df9b17e4d34f80","ref":"refs/heads/add_act_onnx_parser","pushedAt":"2023-08-28T17:05:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"juan-campos","name":null,"path":"/juan-campos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/65016230?s=80&v=4"},"commit":{"message":"remove ds_store","shortMessageHtmlLink":"remove ds_store"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEoyVZ3wA","startCursor":null,"endCursor":null}},"title":"Activity · cog-imperial/OMLT"}