Skip to content

newmatik/tracespace

Repository files navigation

tracespace

Note: This is a fork of tracespace/tracespace which is no longer maintained by Mike Cousins. We have forked from release v4.2.8 and are continuing development from here.

tracespace is an open-source collection of tools to make looking at circuit boards on the internet easier. It converts Gerber and drill files used in PCB fabrication into SVGs for rendering and visualization.

What's Included

Web Application

Core Packages

  • pcb-stackup - Render PCBs as beautiful, precise SVGs from Gerber/NC drill files
  • @tracespace/cli - Render PCBs as SVGs from the comfort of your terminal
  • gerber-to-svg - Render individual Gerber/NC drill files as SVGs
  • whats-that-gerber - Identify Gerber and drill files by filename

Supporting Libraries

Examples

Renders of the Arduino Uno produced by pcb-stackup and gerber-to-svg:

arduino uno top arduino uno bottom

Arduino Uno design files used under the terms of the Creative Commons Attribution Share-Alike license.

Individual layers

top copper

drill hits

outline

top silkscreen

bottom copper

top soldermask

bottom soldermask

Development

Setup

The tracespace tools live here in this monorepo. We use yarn and lerna to manage this setup.

Node v8 (lts/carbon) or later is recommended.

# clone repository and install dependencies
git clone [email protected]:tracespace/tracespace.git
cd tracespace
yarn install

This repository adheres to the Conventional Changelog commit specification for automatic changelog generation. We recommend installing commitizen to ensure your commit messages are properly formatted:

yarn global add commitizen

# later, when you're ready to commit
git add some/files/*
git cz

All development scripts below should be run from the root of the repository. Lerna handles delegating scripts downwards to the individual projects as necessary.

Testing

Automated tests consist of unit tests along with integration snapshot tests of SVG and data outputs.

# run unit and integration tests tests with coverage
yarn test

# set SNAPSHOT_UPDATE=1 to update integration test snapshots
SNAPSHOT_UPDATE=1 yarn test

# run unit tests in watch mode (no coverage)
yarn test:watch

# set INTEGRATION=1 to also include integration tests
INTEGRATION=1 yarn test:watch

Development Servers

# run all dev servers
yarn start

# run server for a specific project
yarn start --scope @tracespace/view

Building Production Assets

# build production bundles
yarn build

# build:all
# builds all production bundles, example files, and documentation
yarn build:all

# build all bundles and serve them for testing/validation
yarn serve

# as with the dev server, these commands may be scoped by name
yarn build --scope gerber-parser
yarn serve --scope @tracespace/view

Code Quality

# format the code for styling
yarn format

# lint the code for potential errors
yarn lint

# typecheck any typescript code
yarn types

Publishing

Packages are published to npm by the CI server. To publish a release, you must have write access to the repository.

# checkout and pull latest from main
git checkout main
git pull origin main

# bump version (defaults to conventional commits recommendation)
yarn bump

# push commit and tag
git push origin main --follow-tags

For more detailed publishing options, see the full documentation below.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages