A tiny local-first package manager demo with build/publish/install commands
Project description
gp_hub
gp_hub 是一个本地优先的极简包管理系统 MVP,目标是提供类似 pip/npm/cargo 的基础体验。
当前包含六个核心能力:
build: 构建项目产物(tar.gz)publish: 发布到本地仓库或 HTTP 云仓库install: 从本地仓库或云仓库安装包list: 列出本地仓库或云仓库中的包search: 按关键字搜索本地仓库或云仓库包info: 查看本地仓库或云仓库的包版本详情
并提供三条已安装包查询命令:
installed-list: 列出当前项目已安装包installed-search: 按关键字搜索当前项目已安装包installed-info: 查看当前项目已安装包详情
并提供一条卸载命令:
uninstall: 删除当前项目已安装包(支持按版本或整包删除)
安装(开发模式)
pip install -e .
快速开始
1) 构建
gp-hub build --project-dir . --dist-dir dist
2) 发布到本地仓库
gp-hub publish dist/gp_hub-0.1.0.tar.gz --repo-dir .gp_hub_repo
2.1) 启动本地模拟云服务(Flask)
gp-hub serve-cloud --host 127.0.0.1 --port 5000 --storage-dir .gp_hub_cloud
2.2) 发布到云(HTTP)
gp-hub publish dist/gp_hub-0.1.0.tar.gz --target cloud --cloud-url http://127.0.0.1:5000
3) 从仓库安装(本地/云)
gp-hub install gp_hub --version 0.1.0 --repo-dir .gp_hub_repo --project-dir .
# 或从云仓库安装
gp-hub install gp_hub --target cloud --cloud-url http://127.0.0.1:5000 --project-dir .
4) 列出仓库包
gp-hub list --repo-dir .gp_hub_repo
5) 搜索仓库包
gp-hub search gp --repo-dir .gp_hub_repo
6) 查看包信息
gp-hub info gp_hub --repo-dir .gp_hub_repo
7) 查询当前项目已安装包
gp-hub installed-list --project-dir .
gp-hub installed-search gp --project-dir .
gp-hub installed-info gp_hub --project-dir .
8) 卸载当前项目已安装包
# 卸载指定版本
gp-hub uninstall gp_hub --version 0.1.0 --project-dir .
# 卸载该包全部已安装版本
gp-hub uninstall gp_hub --project-dir .
配置文件(可选)
支持简单文本配置文件 gp_hub.conf(key = value,支持 # 注释):
- 当前目录:
./gp_hub.conf - 其次:
$HOME/.gp_hub/gp_hub.conf
可配置项:
default_target = local|clouddefault_cloud_url = http://127.0.0.1:5000default_repo_dir = .gp_hub_repo
命令行参数优先级高于配置文件;当 publish/install/list/search/info 未显式传 --target/--cloud-url/--repo-dir 时,会使用配置默认值。
本地仓库结构
默认仓库目录:.gp_hub_repo/
.gp_hub_repo/index.json:包索引.gp_hub_repo/<name>/<version>/<artifact>.tar.gz:产物文件
本地云服务存储目录(模拟云端)默认:.gp_hub_cloud/
.gp_hub_cloud/index.json:云包索引.gp_hub_cloud/<name>/<version>/<artifact>.tar.gz:云产物文件
安装记录位于:.gp_hub/installed.json
示例与测试
- 示例:
python examples/example_mvp_flow.py - 测试:
python -m pytest -q
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gp_hub-0.1.1-py3-none-any.whl.
File metadata
- Download URL: gp_hub-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdd8fd7869bbfd8dfdbd9c32a73409646214d5ad4d7a013c96fe42a86b229239
|
|
| MD5 |
3b98c485878ddd77424757db7fa065c7
|
|
| BLAKE2b-256 |
65e9293c517a554a728f665257d6d4d88e544abcc0a83b824024ab4e9d365cfe
|