v0.12 (Draft)
🚧 In Development
This version is currently under development. Stay tuned for updates!For up-to-date minor changes check out the GitHub Releases.
v0.11
🚀 Major KiCAD Plugin Rewrite, MCP, Library Cleanup, Enum Template Args, 3D Model Viewer
This release brings a major rewrite of the KiCAD plugin, making it easier than ever to apply layouts and interact with your designs directly from KiCAD with a single button. The Model Context Protocol (MCP) is now set up automatically, streamlining AI-assisted development workflows and package management.The atopile library and example projects have been thoroughly cleaned up, and the language now supports enums in template arguments, unlocking new design possibilities. The VSCode extension introduces a powerful 3D model viewer, making it simple to visualize your designs in three dimensions.Numerous bug fixes and small improvements enhance stability, performance, and the overall user experience across the CLI, library, and extension. For a complete list of changes and improvements, see the full changelog linked below.Full Changelog: https://github.com/atopile/atopile/releases/tag/v0.11.0
v0.10
🎉 VSCode Extension Revolution & AI Integration
Massive VSCode extension improvements with embedded package browser, KiCanvas PCB viewer, and 3D model viewer with GLB export. Added Model Context Protocol (MCP) support enabling AI-assisted development workflows.Multi-net support for complex routing configurations. Enhanced component lifecycle management with better datasheet handling and footprint loading from dependencies.Significantly improved Windows support fixing symlink permissions, PosixPath errors, and KiCad plugin issues. Better package management with automatic dependency syncing.Deterministic builds with stable file hashing and consistent net naming. CLI improvements including telemetry, better DRC error messages, and detection of CI providers.
v0.9
🔧 Component Lifecycle Management & 3D Models
Introduced comprehensive component lifecycle management for tracking part availability and obsolescence. Added support for 3D models in packages with automatic model rebuilding.Language Server Protocol (LSP) improvements including hover information, definition navigation, and enhanced syntax highlighting in VSCode.Better error handling with improved logging and diagnostic messages. Fixed deterministic net naming and part selection issues.Enhanced CLI with better part import path display and archive folder for logs.

Upgrading

Modules using footprint = will need to transition to parts.
v0.8
📝 Enhanced Language Server & Syntax Highlighting
Major Language Server Protocol (LSP) upgrade providing real-time syntax and compile-time error reporting. VSCode extension refactored with auto-installation of atopile and enhanced syntax highlighting.Improved snippets and trailing comment support. Fixed KiCad file format issues including pad zone connections and dimension handling.Better development workflow with automatic rebuilding of editable packages when using uv sync.
v0.7
🔌 Extended Language Features & I2C Improvements
Extended atopile language capabilities with new syntax features. Enhanced I2C support with addressors for 1 and 2 bit implementations and isolated bus checking.Improved ato create component command to handle missing signals and numeric pin names. Better syntax error formatting in the CLI.Library updates including adjustable regulator improvements and bridgeable trait for regulators.
v0.6
🌈 Artifacts somewhere nice and I2C Addressors
Added I2C Addressing & Bus viewerBuild artifacts are now included when publishing. This means that when you go to https://packages.atopile.io/, you’ll see the build artifacts ready to order or explore.Added hide_designators config option.Improved checks system with new exclude capabilityDisabled required check for top level modulesEnhanced ato create component to handle pins named as numbers

Upgrading

No required changes for upgrading.
v0.5
🌈 Features and Windows support
If the .required attribute is set True on an interface, that interface MUST be connected to from outside that module. Take the example of a LDO - you reasonably MUST connect to the power input and outputs. The antagonist concept to this is, like python, adding a _leading_underscore to private variables.I2C interfaces are now checked to ensure they have 900 to 100kΩ pullups on them.You can access lists and dicts (from stdlib/fabll) using square braces!(Beta) Windows support! atopile now runs on Windows.

Upgrading

No required changes for upgrading.
v0.4
Packages 📦
atopile’s package management system has had a huge upgrade!To find packages, check out the entirely overhauled package index.The new commands to packages are clearer and help keep the packages all in sync. See the updated package guide.If you’re looking to publish your own packages, check out the guide.

Upgrading

  • The ato-version field in your ato.yaml is now called requires-atopile. It remains a version spec, and we recommend that you set it to ^0.4.0.
  • The structure of dependencies has changed! It’s best to remap them to the new registry using the ato add command. Note: Many of the package names have also changed.
  • The import identifiers have also changed - to match the new project identifiers. Update these to from "{package-identifier}/file.ato" import MyThing.
v0.3
A big release with a lot of new infrastructure
Firstly, thanks for using atopile! It’s been a ride, and we’re glad you’re here. 🙌

Changed Commands

Add --help after any command to see new options in the CLI. This is always the most accurate source of information.
OldNew
ato install --jlcpcbato create component

I’m seeing a bunch of DeprecationWarning

There will be a LOT of new deprecation warnings you’ll see.For the most part, it’s safe to ignore them for the minute, and we plan to make the breaking changes in 0.4.0Upgrading will give you more access to features as they’re added, but there’s no need to rush if you’re content.

PCBs are now directly modified

This means no more need to open the PCB file, import the netlist and cycle.ato build now directly modifies the PCB file as required on each build.

Standard Library (previously generics) is now shipped built-in!

This vastly improves our ability to version and iterate on the standard library, use the best practices and latest features.See library for the latest and greatest.It should be better documented. If this is important for you, please vote on the issue.