# ams-compose
Dependency management tool for analog IC design repositories that enables selective import of IP libraries without copying entire repository structures.
## Overview
ams-compose solves the problem of fragmented analog IP libraries by allowing selective import of specific libraries from repositories without copying unwanted boilerplate code.
### Key Features
- **Selective Library Import**: Extract only the IP libraries you need from any path within a repository
- **Version Control**: Pin to specific branches, tags, or commits
- **Smart Install Logic**: Skip libraries that don't need updates
- **Clean Workspaces**: Automatically filter out VCS directories, development files, and OS artifacts
- **License Tracking**: Monitor license compliance across imported libraries
### Target Environment
Designed for open source IC toolchains, specifically the IIC-OSIC-TOOLS Docker container environment.
## Installation
Install directly from GitHub:
```bash
pip install git+https://github.com/Jianxun/ams_compose.git
```
Or install from source for development:
```bash
git clone https://github.com/Jianxun/ams_compose.git
cd ams_compose
pip install -e .
```
## Quick Start
1. Initialize a new project:
```bash
ams-compose init
```
2. Edit the generated `ams-compose.yaml` configuration file:
```yaml
# Default directory where libraries will be installed
library-root: designs/libs
# Library imports - add your dependencies here
imports:
gf180mcu_fd_sc_mcu9t5v0_symbols:
repo: https://github.com/peterkinget/gf180mcu_fd_sc_mcu9t5v0_symbols
ref: main
source_path: .
designinit:
repo: https://github.com/Jianxun/iic-osic-tools-project-template
ref: main
source_path: designs/.designinit
local_path: designs/.designinit # optional: override library-root location
```
3. Install libraries:
```bash
ams-compose install
```
## Commands
- `ams-compose init` - Initialize a new ams-compose project
- `ams-compose install [LIBRARIES...]` - Install libraries from ams-compose.yaml
- `--force` - Force reinstall all libraries (ignore up-to-date check)
- `--auto-gitignore` - Automatically add .mirror/ to .gitignore (default: enabled)
- `ams-compose list` - List installed libraries
- `--detailed` - Show detailed library information
- `ams-compose validate` - Validate ams-compose.yaml configuration and installation state
- `ams-compose clean` - Clean unused mirrors, orphaned libraries, and validate installation
## Configuration
The `ams-compose.yaml` file supports the following structure:
```yaml
library-root: designs/libs # Default installation directory
imports:
library_name:
repo: https://github.com/user/repo # Git repository URL
ref: main # Branch, tag, or commit SHA
source_path: path/in/repo # Path within the repository to extract
local_path: custom/path # Optional: override library-root location
license: MIT # Optional: license information
```
## License
MIT License
Raw data
{
"_id": null,
"home_page": null,
"name": "ams-compose",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "analog, mixed-signal, ams, ic, design, dependency, management, eda",
"author": "ams-compose contributors",
"author_email": null,
"download_url": null,
"platform": null,
"description": "# ams-compose\n\nDependency management tool for analog IC design repositories that enables selective import of IP libraries without copying entire repository structures.\n\n## Overview\n\nams-compose solves the problem of fragmented analog IP libraries by allowing selective import of specific libraries from repositories without copying unwanted boilerplate code.\n\n### Key Features\n\n- **Selective Library Import**: Extract only the IP libraries you need from any path within a repository\n- **Version Control**: Pin to specific branches, tags, or commits\n- **Smart Install Logic**: Skip libraries that don't need updates\n- **Clean Workspaces**: Automatically filter out VCS directories, development files, and OS artifacts\n- **License Tracking**: Monitor license compliance across imported libraries\n\n### Target Environment\n\nDesigned for open source IC toolchains, specifically the IIC-OSIC-TOOLS Docker container environment.\n\n## Installation\n\nInstall directly from GitHub:\n\n```bash\npip install git+https://github.com/Jianxun/ams_compose.git\n```\n\nOr install from source for development:\n\n```bash\ngit clone https://github.com/Jianxun/ams_compose.git\ncd ams_compose\npip install -e .\n```\n\n## Quick Start\n\n1. Initialize a new project:\n\n```bash\nams-compose init\n```\n\n2. Edit the generated `ams-compose.yaml` configuration file:\n\n```yaml\n# Default directory where libraries will be installed\nlibrary-root: designs/libs\n\n# Library imports - add your dependencies here\nimports:\n gf180mcu_fd_sc_mcu9t5v0_symbols:\n repo: https://github.com/peterkinget/gf180mcu_fd_sc_mcu9t5v0_symbols\n ref: main\n source_path: .\n \n designinit:\n repo: https://github.com/Jianxun/iic-osic-tools-project-template\n ref: main\n source_path: designs/.designinit\n local_path: designs/.designinit # optional: override library-root location\n```\n\n3. Install libraries:\n\n```bash\nams-compose install\n```\n\n## Commands\n\n- `ams-compose init` - Initialize a new ams-compose project\n- `ams-compose install [LIBRARIES...]` - Install libraries from ams-compose.yaml\n - `--force` - Force reinstall all libraries (ignore up-to-date check)\n - `--auto-gitignore` - Automatically add .mirror/ to .gitignore (default: enabled)\n- `ams-compose list` - List installed libraries\n - `--detailed` - Show detailed library information\n- `ams-compose validate` - Validate ams-compose.yaml configuration and installation state\n- `ams-compose clean` - Clean unused mirrors, orphaned libraries, and validate installation\n\n## Configuration\n\nThe `ams-compose.yaml` file supports the following structure:\n\n```yaml\nlibrary-root: designs/libs # Default installation directory\n\nimports:\n library_name:\n repo: https://github.com/user/repo # Git repository URL\n ref: main # Branch, tag, or commit SHA\n source_path: path/in/repo # Path within the repository to extract\n local_path: custom/path # Optional: override library-root location\n license: MIT # Optional: license information\n```\n\n## License\n\nMIT License\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Dependency management tool for analog/mixed-signal IC design repositories",
"version": "0.0.0",
"project_urls": {
"Homepage": "https://github.com/Jianxun/ams-compose",
"Issues": "https://github.com/Jianxun/ams-compose/issues",
"Repository": "https://github.com/Jianxun/ams-compose"
},
"split_keywords": [
"analog",
" mixed-signal",
" ams",
" ic",
" design",
" dependency",
" management",
" eda"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8b98f9ce13444f3b5b5a84718603003fba8924f04bb922210ad10415d061080e",
"md5": "d16d98b2803bc016363fddc1bfd3e2b3",
"sha256": "b2745476d9cc5e57eff697d47549f95649e62db50cb8365564c3f7833604823f"
},
"downloads": -1,
"filename": "ams_compose-0.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d16d98b2803bc016363fddc1bfd3e2b3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 24814,
"upload_time": "2025-07-29T03:54:08",
"upload_time_iso_8601": "2025-07-29T03:54:08.210312Z",
"url": "https://files.pythonhosted.org/packages/8b/98/f9ce13444f3b5b5a84718603003fba8924f04bb922210ad10415d061080e/ams_compose-0.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-29 03:54:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Jianxun",
"github_project": "ams-compose",
"github_not_found": true,
"lcname": "ams-compose"
}