{"id":22549866,"url":"https://github.com/openmodelica/ompackagemanager","last_synced_at":"2025-06-15T00:06:16.584Z","repository":{"id":37520796,"uuid":"242943593","full_name":"OpenModelica/OMPackageManager","owner":"OpenModelica","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-13T00:13:21.000Z","size":2451,"stargazers_count":6,"open_issues_count":0,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-13T00:37:58.866Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenModelica.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-25T08:03:46.000Z","updated_at":"2025-06-13T00:13:25.000Z","dependencies_parsed_at":"2023-12-26T14:19:43.133Z","dependency_job_id":"50c2eb09-cde6-4eec-af62-8d446f1ea51d","html_url":"https://github.com/OpenModelica/OMPackageManager","commit_stats":{"total_commits":2065,"total_committers":10,"mean_commits":206.5,"dds":0.5036319612590798,"last_synced_commit":"45396583e2478da29eb1b03570ce0845c2a9b827"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpenModelica/OMPackageManager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenModelica%2FOMPackageManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenModelica%2FOMPackageManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenModelica%2FOMPackageManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenModelica%2FOMPackageManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenModelica","download_url":"https://codeload.github.com/OpenModelica/OMPackageManager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenModelica%2FOMPackageManager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259901382,"owners_count":22929224,"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-12-07T16:10:09.669Z","updated_at":"2025-06-15T00:06:16.557Z","avatar_url":"https://github.com/OpenModelica.png","language":"Python","readme":"# OpenModelica Package Manager\n\nOpenModelica comes with an integrated Modelica package manager to handle the installation and updates of publicly\navailable open-source libraries, which are hosted on GIT repositories. The rationale and use of the package mananager is discussed in the\n[User's Guide](https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/packagemanager.html). The package manager\nis available both via API calls in the interactive environment, and via the OMEdit GUI using the _File | Manage Libraries_ menu.\n\n## Adding a new library\n\nIf you want to add your own open-source library to the OpenModelica package manager, please fork the OMPackageManager repository,\nadd your library to the [repos.json](repos.json) database, and open a pull request.\n\nFor each library, the [repos.json](repos.json) database contains several pieces of information:\n- The name of the library(es) (`names` field); it is possible to collect a set of libraries that are found in the same GIT repository\n  e.g. Modelica, ModelicaReference, ModelicaServices, Complex, ModelicaTest.\n- The location of the GIT repository on GitHub (`github` field), or the git URL in case other servers are used (`git` field).\n- Optional locations within the git repository (`search-extra-paths` field) to search for libraries. This can be specified if the libraries are not located at the root of repository.\n- Optional branches to be managed besides the official releases (`branches` field).\n- Optional tags to be ignored, if one wants to avoid them to be considered by the package manager (`ignore-tags` field).\n- The level of support in OpenModelica of the various versions of the library (`support` field), see below.\n\nAs an example, if you develop your library `MyLibrary` at \"https://github.com/myGithubName/MyLibrary.git\",\nyou can add a json object like the following to [repos.json](repos.json)\n```json\n  \"MyLibrary\": {\n    \"names\": [\"MyLibrary\"],\n    \"github\": \"myGithubName/MyLibrary\",\n    \"support\": [\n      [\"*\", \"noSupport\"]\n    ]\n  },\n\n```\n\n## Library support levels in OpenModelica\n\nThere are five levels of support:\n- `fullSupport`: The library is fully supported by OpenModelica, with over 95% runnable models in the library simulating correctly.\n- `support`: The library is partially supported by OpenModelica; most models and features work correctly, but some still don't.\n- `experimental`: The library is currently being tested with OpenModelica, but there is no guarantee of success when using it.\n- `noSupport`: The library is actively developed or maintained, but is not supported by OpenModelica.\n- `obsolete`: The library is no longer developed or maintained, or it has been completely superseded by more recent versions.\n\nNote that a library may not be fully supported because of OpenModelica limitations or bugs, but also because the library\nis not fully compliant to the Modelica Language standard. In both cases, we are open to cooperation with open-source\nModelica library developers, to fix the OpenModelica issues on one hand, and to help them fix it so it is fully\ncompliant to the standard on the other hand. Please open an issue on the\n[OpenModelica issue tracker](https://github.com/OpenModelica/OpenModelica/issues) if you want to start the process on your\nopen-source Modelica library.\n\nThe support field may contain multiple selection criteria that are applied sequentially. For example:\n```json\n\"support\": [\n      [\"prerelease\", \"noSupport\"],\n      [\"\u003e=7.0.0\", \"fullSupport\"],\n      [\"\u003e=5.1.0\", \"support\"],\n      [\"*\", \"obsolete\"]\n    ]\n```\nmeans that all pre-release versions are not supported, all _remaining_ versions with version number greater or equal to\n7.0.0 are fully supported, all _remaining_ versions with version number greater or equal to 5.1.0 are partially supported,\nand all _remaining_ versions are considered obsolete.\n\nWhen the first string starts with `\u003e=`, all versions with equal or higher release number according to semver get the attribute of the second string. The string\n`prerelease` identifies all pre-release version, that have a semver metadata starting with `-`. It is also possible to start the first string with `+`, as in `+default.modelica.association` that matches `v3.2.1+default.modelica.association` and `v3.2.2+default.modelica.association`. The wildcard `*` matches any\nversion. In all other cases the first string must match verbatim the version number.\n\nSome libraries in the package manager are regularly tested on the OSMC servers, see the OpenModelica Library Testing [README.md](https://github.com/OpenModelica/OpenModelicaLibraryTesting/blob/master/README.md).\n\n## Configuration of the Package Manager server\n\nThe database of managed libraries is kept in the [repos.json](repos.json) file, which is edited manually.\nStarting from this information, the `updateinfo.py` script queries the repositories where the libraries are stored and\ngenerates an up-to-date [rawdata.json](rawdata.json) file. This script is run by the\n[Update Package Index job](https://test.openmodelica.org/jenkins/job/Update%20Package%20Index/) on OSMC's Jenkins\nserver four times a day to keep it up to date with library developments.\nNote that the query includes advanced Modelica-specific features, e.g. determining dependencies\nvia the `uses` annotations, and determining backwards compatibility among versions via the `conversion` annotations.\nThe `genindex.py` script is then run to generate the `index.json` database, which is queried by OMC clients to\nupdate the local package database.\n\nThe package manager preferably refers to official library releases, which are fetched automatically from the GitHub\nserver without the need of naming them explicitly in the [repos.json](repos.json)\nfile; whenever a new version of a library is released, the [repos.json](repos.json)\nis automatically updated to make it available. However, it is also possible to manage versions of the library that are located on specific named\nbranches, e.g. master or maintenance branches. This is useful if you want to track development versions or you want to get the latest fixes\nbefore the official release.\n\n## Generate Package Index\n\nInstall dependencies:\n\n  - Python 3\n  - OpenModelica\n\n```bash\npip install -r requirements.txt\n```\n\nCreate a public_repo personal access token for GitHub and define an environment variable `GITHUB_AUTH`:\n\n```bash\nexport GITHUB_AUTH=\u003cyour PAT\u003e\n```\n\nGenerate index file `index.json`.\n```bash\nrm -rf cache/\nrm -f index.json\npython updateinfo.py\npython genindex.py\n```\n\nTo test the index file copy it into your OpenModelica libraries directory\nand test it via OMEdit / scripting API:\n\n```bash\ncp index.json ~/.openmodelica/libraries/index.json\n````\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmodelica%2Fompackagemanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmodelica%2Fompackagemanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmodelica%2Fompackagemanager/lists"}