Skip to main content

CLI tool to automate ChipFoundry project submission to SFTP server

Project description

ChipFoundry CLI (cf-cli)

A command-line tool to automate the submission of ChipFoundry projects to the SFTP server.


Overview

cf-cli is a user-friendly command-line tool for securely submitting your ChipFoundry project files to the official SFTP server. It automatically collects the required files, generates or updates your project configuration, and uploads everything to the correct location on the server.


Installation

Install from PyPI:

pip install cf-cli
cf --help

Project Structure Requirements

Your project directory must contain:

  • gds/ directory with one of the following:
    • user_project_wrapper.gds (for digital projects)
    • user_analog_project_wrapper.gds (for analog projects)
    • openframe_project_wrapper.gds (for openframe projects)
  • verilog/rtl/user_defines.v (required for digital/analog)
  • .cf/project.json (optional; will be created/updated automatically)

Example:

my_project/
├── gds/
│   └── user_project_wrapper.gds
├── verilog/
│   └── rtl/
│       └── user_defines.v
└── .cf/
    └── project.json

Authentication

  • By default, the tool will look for an SSH key at ~/.ssh/id_rsa.
  • You can specify a different key with --sftp-key.
  • If no key is found, you will be prompted to enter a key path or your SFTP password.
  • Your SFTP username is required (provided by ChipFoundry).

SFTP Server

  • The default SFTP server is sftp.chipfoundry.io (no need to specify unless you want to override).

Usage

Basic Submission (Digital Project)

cf submit --project-root /path/to/my_project --sftp-username <your_chipfoundry_username>

With a Custom SSH Key

cf submit --project-root /path/to/my_project --sftp-username <your_chipfoundry_username> --sftp-key /path/to/id_rsa

With Password Authentication

cf submit --project-root /path/to/my_project --sftp-username <your_chipfoundry_username> --sftp-password <your_password>

Dry Run (Preview what will be uploaded)

cf submit --project-root /path/to/my_project --sftp-username <your_chipfoundry_username> --dry-run

Override Project Name or ID

cf submit --project-root /path/to/my_project --sftp-username <your_chipfoundry_username> --project-name my_custom_name --project-id my_custom_id

What Happens When You Run cf submit?

  1. File Collection:
    • The tool checks for the required GDS and Verilog files.
    • It auto-detects your project type (digital, analog, openframe) based on the GDS file name.
  2. Configuration:
    • If .cf/project.json does not exist, it is created.
    • The tool updates the GDS hash and any fields you override via CLI.
  3. SFTP Upload:
    • Connects to the SFTP server as your user.
    • Ensures the directory incoming/projects/<project_name> exists.
    • Uploads .cf/project.json, the GDS file, and verilog/rtl/user_defines.v (if present).
    • Shows a progress bar for each file upload.
  4. Success:
    • You’ll see a green success message when all files are uploaded.

Troubleshooting

  • Missing files:
    • The tool will error out if required files are missing or if more than one GDS type is present.
  • Authentication errors:
    • Make sure your SSH key is valid and registered with ChipFoundry, or use your password.
  • SFTP errors:
    • Check your network connection and credentials.
  • Project type detection:
    • Only one of the recognized GDS files should be present in your gds/ directory.

Support

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chipfoundry_cli-0.1.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chipfoundry_cli-0.1.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file chipfoundry_cli-0.1.1.tar.gz.

File metadata

  • Download URL: chipfoundry_cli-0.1.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for chipfoundry_cli-0.1.1.tar.gz
Algorithm Hash digest
SHA256 832781b198594d3726767a7e43cccbac2bc5b1d85766d76a632ad5dec25090e1
MD5 f8ee60812a74fc7287eeeae4f0c9cf30
BLAKE2b-256 2773e01079b499202d3f0108f80ab6de6236300ce9b7696d60221df8c1622eb6

See more details on using hashes here.

File details

Details for the file chipfoundry_cli-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for chipfoundry_cli-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d4ddfe83f042d17d15ffbbad14f4944ee522be7109fd65fc25ed55758857292
MD5 f4c7c6f50ec3312861b4c07f0925bc4d
BLAKE2b-256 99ed42e0881760542e27e365b8b90ef691ef6be12b29a9d2dfc669662c7c0dd5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page