{"id":19721991,"url":"https://github.com/datajoint/ghtoolbox","last_synced_at":"2025-02-27T18:28:14.933Z","repository":{"id":56466359,"uuid":"295830967","full_name":"datajoint/GHToolbox","owner":"datajoint","description":"`ghtb` provides a simple way to manage toolbox installation of open-source MATLAB Community Toolboxes linked to GitHub (via Releases).","archived":false,"fork":false,"pushed_at":"2020-11-05T22:29:27.000Z","size":285,"stargazers_count":1,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-10T16:23:13.397Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datajoint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-15T19:36:21.000Z","updated_at":"2021-12-08T06:04:53.000Z","dependencies_parsed_at":"2022-08-15T19:20:18.717Z","dependency_job_id":null,"html_url":"https://github.com/datajoint/GHToolbox","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datajoint%2FGHToolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datajoint%2FGHToolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datajoint%2FGHToolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datajoint%2FGHToolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datajoint","download_url":"https://codeload.github.com/datajoint/GHToolbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241044197,"owners_count":19899478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T23:16:09.178Z","updated_at":"2025-02-27T18:28:14.896Z","avatar_url":"https://github.com/datajoint.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![View GHToolbox on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://www.mathworks.com/matlabcentral/fileexchange/80245-ghtoolbox)\n\n# GitHub Toolbox Utility\n\n## Summary\n\n`ghtb` provides a simple way to manage toolbox installation of open-source MATLAB Community Toolboxes linked to GitHub (via Releases).\n\n## Description\n\nThis Toolbox can be accessed via `ghtb` and provides a way to directly `install`, `uninstall`, `require`, or `package` MATLAB Community Toolboxes. For upgrade and downgrade use-cases, users can set the `override` option to force the install. `GHToolbox` makes the following assumptions:\n\n- Community Toolbox linked on FileExchange to GitHub via GitHub Releases.\n- Community Toolbox publicly available as open-source on GitHub.\n- Community Toolbox attaches a single `.mltbx` artifact to GitHub Releases.\n- Community Toolbox name matches the filename of `.mltbx` artifact.\n- Users do not wish to have multiple simultaneous versions installed i.e. only a single version per Toolbox is installed at any given time.\n\nHere are some examples on how to invoke it once installed or saved to path:\n\n```matlab\nghtb.install('guzman-raphael/compareVersions') % default: version='latest' and override=false\nghtb.install('guzman-raphael/compareVersions', 'version', '1.0.7') % default: override=false\nghtb.install('guzman-raphael/compareVersions', 'version', '1.0.6', 'override', true)\nghtb.install('guzman-raphael/compareVersions', 'version', ...\n             @(v) cellfun(@(x) contains(x, '1.0.'), v, 'uni', true))\nghtb.install('compareVersions.mltbx') %install from local toolbox file\nghtb.uninstall('compareVersions') % uninstalls all versions of Toolbox\nrequiredToolboxes = {...\n    struct(...\n        'Name', 'GHToolbox', ...\n        'ResolveTarget', 'datajoint/GHToolbox'...\n    ), ...\n    struct(...\n        'Name', 'compareVersions', ...\n        'ResolveTarget', 'guzman-raphael/compareVersions', ...\n        'Version', '1.0.8'...\n    ), ...\n    struct(...\n        'Name', 'mym', ...\n        'ResolveTarget', 'datajoint/mym', ...\n        'Version', @(v) cellfun(@(x) contains(x, '2.7.'), v, 'uni', true)...\n    )...\n};\nghtb.require(requiredToolboxes) % require with prompts\nghtb.require(requiredToolboxes, 'prompt', false)\nghtb.package('GHToolbox', ...\n             'Raphael Guzman', ...\n             'raphael.h.guzman@gmail.com', ...\n             ['''ghtb'' provides a simple way to manage addon installation of ' ...\n              'open-source MATLAB Community Toolboxes linked to GitHub (via ' ...\n              'Releases).'], ...\n             'long description', ...\n             {'.vscode', '.git', '.env', '.gitignore', '.travis.yml', 'tests', ...\n              '*docker-compose.yml', 'LICENSE', 'matlab.prf', 'package.m', ...\n              'README.md'}, ...\n             @() ghtb.version, ...\n             {'+ghtb'});\nghtb.package('mym', ...\n             'Raphael Guzman', ...\n             'raphael.h.guzman@gmail.com', ...\n             'MySQL API for MATLAB with support for BLOB objects', ...\n             'long description', ...\n             {'mexa64/libmysqlclient.so.18.4.'}, ...\n             @() strjoin(arrayfun(@(x) num2str(x), ...\n                                  cell2mat(struct2cell(mym('version'))), ...\n                                  'uni', false), ...\n                         '.'), ...\n             {'distribution/mexa64', 'distribution/mexmaci64', ...\n              'distribution/mexw64'}, ...\n             'toolboxVersionDir', 'distribution/mexa64', ...\n             'toolboxRootDir', 'distribution');\nghtb.version % display GHToolbox version\n```\n\n## Installation\n\n### (Recommended) Greater than R2016b\n\n1. Utilize MATLAB built-in GUI i.e. *Top Ribbon -\u003e Add-Ons -\u003e Get Add-Ons*\n2. Search and Select `GHToolbox`\n3. Select *Add from GitHub*\n\n### Less than R2016b\n\n1. Utilize MATLAB built-in GUI i.e. *Top Ribbon -\u003e Add-Ons -\u003e Get Add-Ons*\n2. Search and Select `GHToolbox`\n3. Select *Download from GitHub*\n4. Save `GHToolbox.mltbx` locally\n5. Navigate in MATLAB tree browser to saved toolbox file\n6. Right-Click and Select *Install*\n7. Select *Install*\n\n### From Source\n\n1. Download `GHToolbox.mltbx` locally\n2. Navigate in MATLAB tree browser to saved toolbox file\n3. Right-Click and Select *Install*\n4. Select *Install*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatajoint%2Fghtoolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatajoint%2Fghtoolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatajoint%2Fghtoolbox/lists"}