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.0.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.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chipfoundry_cli-0.1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 cc58c8e10c6c3b677c668dae055425815aa4929e99844dae5b972c6fd38a0a62
MD5 fb2cc84856117f2654d29362cf7cd74e
BLAKE2b-256 e4d5b4be3d1b1699b822b2a0c391bdd4815e12b36eb94cbab2dc8f5a3bae1492

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chipfoundry_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e41fd9b22f1cb2dcbe0bffc990e4d112c920016bbd1aec39fbf73881b336801f
MD5 c0912fa712d63174c21b68be910788a4
BLAKE2b-256 7ed2a0b043b3849d26efdaad5f06b8a8c3afd8a076f654bce7743e75141a1a24

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