{"id":18720078,"url":"https://github.com/wequick/devpm","last_synced_at":"2025-07-31T04:39:15.800Z","repository":{"id":181217598,"uuid":"666389451","full_name":"wequick/devpm","owner":"wequick","description":"Development package manager","archived":false,"fork":false,"pushed_at":"2023-07-23T17:16:05.000Z","size":90,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-03T17:55:32.281Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/wequick.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-07-14T11:49:36.000Z","updated_at":"2023-07-15T00:08:16.000Z","dependencies_parsed_at":"2024-11-07T13:38:05.597Z","dependency_job_id":"e7399d34-7af3-4290-a5f2-96407e3eeaf0","html_url":"https://github.com/wequick/devpm","commit_stats":null,"previous_names":["wequick/devpm"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/wequick/devpm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wequick%2Fdevpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wequick%2Fdevpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wequick%2Fdevpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wequick%2Fdevpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wequick","download_url":"https://codeload.github.com/wequick/devpm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wequick%2Fdevpm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267988489,"owners_count":24176996,"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","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-07T13:29:21.778Z","updated_at":"2025-07-31T04:39:15.772Z","avatar_url":"https://github.com/wequick.png","language":"Python","readme":"# devpm\nDevelopment package manager\n\n## Usage\n\n* devpm install - Install packages by devpackage.json in current directory which support config:\n  - vscodeDependencies for vscode extensions\n  - vscodeUserSettings for edit vscode user settings file\n  - pythonDependencies for python modules\n  - bashDependencies for custom bash script\n  - gitHooks for add git hooks like `pre-commit`, `commit-msg`\n* devpm pr - Create a Pull Request\n* devpm cr - Create a Code Review, same to `devpm pr`\n* devpm run [NAME] - Run [NAME] script in devpackage.json\n* devpm lint - Run lint script in devpackage.json. Equal to `devpm run lint`\n* devpm test - Run test script in devpackage.json. Equal to `devpm run test`\n* devpm start - Run start script in devpackage.json. Equal to `devpm run start`\n* devpm stop - Run stop script in devpackage.json. Equal to `devpm run stop`\n* devpm restart - Run restart script in devpackage.json. Equal to `devpm run restart`\n* devpm version - Bump a package version and auto-gen CHANGELOG. (not yet finished)\n\n`devpm --help` for more details.\n\n## devpackage.json\n\n### vscodeDependencies\nPackages installed by visutal studio code.\nKey for vscode extension id, value for `version` (1).\nVersion definition: \n* \"\" (empty)          - install when not exists\n* \"latest\"            - uninstall and install latest\n* \"1.0.0\" (specified) - install when version mismatched\n\n### pythonDependencies\nPackages installed by pip.\nKey for pip name, value for `version`, ses (1).\n\n### bashDependencies\nPackages installed by custom bash script.\nKey for excutable name after installed, value is an object describes script in platforms.\nThe platform is from python `sys.platform`, include 'darwin', 'win32' and 'linux'.\n\n### vscodeUserSettings\nWrite to visual studio code user settings \u003chttps://code.visualstudio.com/docs/getstarted/settings#_settings-file-locations\u003e.\nKey and value format same to the user settings.\nIn addition, the value support `devpm expression`:\n* `$bash.which:[bin]` - returns the bin path in system by `which [bin]`\n* `$pip.which:[bin]` - returns the bin path in pip by `pip show [bin]`\n\n### gitHooks\nWrite to git hooks for root project and it's git submodules. Support commit-msg, pre-commit.\n#### commit-msg\n`type` (string) now is always `regexp`, for custom regexp match.\n`pattern` (string) for the regexp pattern.\n`tips` (array) used to show tips when the `commit-msg` mismatched, each item for one line.\n\n#### pre-commit\n`type` (string) now is always `pre-commit`, use the`pre-commit` plugin \u003chttps://pre-commit.com/\u003e.\n`repos` (array) content is same to '.pre-commit-config.yaml' but in json format.\n\n### Example\n\n```json\n{\n  \"$schema\": \"https://raw.githubusercontent.com/wequick/devpm/main/devpackage.schema.json\",\n  \"vscodeDependencies\": {\n    \"ms-vscode.cpptools-extension-pack\": \"\",\n    \"wequick.filegen\": \"\",\n    \"wequick.coverage-gutters\": \"\",\n    \"mine.cpplint\": \"\",\n    \"ms-python.pylint\": \"\"\n  },\n  \"vscodeUserSettings\": {\n    \"cpplint.cpplintPath\": \"$pip.which:cpplint\",\n    \"cmake.cmakePath\": \"$bash.which:cmake\"\n  },\n  \"pythonDependencies\": {\n    \"gcovr\": \"4.2\",\n    \"cpplint\": \"1.6.1\",\n    \"pre-commit\": \"3.3.3\"\n  },\n  \"bashDependencies\": {\n    \"OpenCppCoverage\": {\n      \"win32\": \"https://github.com/OpenCppCoverage/OpenCppCoverage/releases/download/release-0.9.9.0/OpenCppCoverageSetup-x64-0.9.9.0.exe\"\n    },\n    \"cppcheck\": {\n      \"win32\": \"https://github.com/danmar/cppcheck/releases/download/2.11/cppcheck-2.11-x64-Setup.msi\",\n      \"linux\": \"apt-get install cppcheck\",\n      \"darwin\": \"brew install cppcheck\"\n    }\n  },\n  \"gitHooks\": {\n    \"commit-msg\": {\n      \"type\": \"regexp\",\n      \"pattern\": [\n        \"^(feat|fix|refactor|chore|test|style|docs)\",\n        \"^(Merge)\"\n      ],\n      \"tips\": [\n        \"Invalid commit message style, please format as following:\",\n        \"  fix: some msg\",\n        \"  ^^^^              Type: feat|fix|refactor|chore|test|style|docs\",\n        \"       ^^^^^^^^     Summary in present tense\",\n        \"Type:\",\n        \"  feat     : new feature for the user, not a new feature for build script\",\n        \"  fix      : bug fix for the user, not a fix to a build script\",\n        \"  docs     : changes to the documentation\",\n        \"  style    : formatting, missing semi colons, etc; no production code change\",\n        \"  refactor : refactoring production code, eg. renaming a variable\",\n        \"  test     : adding missing tests, refactoring tests; no production code change\",\n        \"  chore    : updating grunt tasks etc; no production code change\",\n        \"\",\n        \"See \u003chttps://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716\u003e for more details.\",\n        \"\"\n      ]\n    },\n    \"pre-commit\": {\n      \"type\": \"pre-commit\",\n      \"repos\": [\n        {\n          \"repo\": \"https://github.com/pocc/pre-commit-hooks\",\n          \"rev\": \"v1.3.5\",\n          \"hooks\": [\n            { \"id\": \"cpplint\" },\n            {\n              \"id\": \"cppcheck\",\n              \"args\": [\n                \"--suppress=missingInclude\",\n                \"--suppress=missingIncludeSystem\",\n                \"--std=c++14\",\n                \"--force\"\n              ]\n            }\n          ]\n        }\n      ]\n    }\n  },\n  \"scripts\": {\n    \"prestart\": \"echo prestart\",\n    \"start\": \"echo prestart\",\n    \"poststart\": \"echo poststart\",\n    \"version\": \"devpm --version\"\n  }\n}\n```\n\n## Develop\n\n```bash\n$ python src/devpm/__main__.py install\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwequick%2Fdevpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwequick%2Fdevpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwequick%2Fdevpm/lists"}