> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atopile.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Change Log

<Update label="v0.14 (Draft)" description="🔥 Complete Core Rewrite & New VSCode Extension UI">
  This release features a complete rewrite of the atopile core, laying the foundation for faster builds and new language capabilities. The VSCode extension has a brand new UI for a more polished development experience, including a migration flow for upgrading from earlier versions, tightened project selection, and faster startup times.

  Windows support has been improved for 0.14.x compatibility. The extension also adds an "open ato shell" menu option and fixes for SSH port forwarding and GLB workflows.

  The CLI now has better `ato package verify` behavior with fixes for overly broad file globbing. The core compiler improves detection of duplicate and unused import statements. KiCad integration fixes ensure correct layer type handling in SEXP output.

  Under the hood, Python 3.14 compatibility has been addressed across the toolchain, including ABI fixes, pynng version pinning, and KiCad Dockerfile updates.

  **Full Changelog**: [https://github.com/atopile/atopile/releases/tag/v0.14.0](https://github.com/atopile/atopile/releases/tag/v0.14.0)
</Update>

<Update label="v0.12" description="✨ LSP Autocomplete, Go to Definition & Build DAG">
  LSP autocomplete is here! The language server now provides dot auto-complete suggestions, import suggestions, and "go to definition" navigation, making the editor experience significantly more productive. The VSCode extension is also less noisy with annoying popups removed.

  The build system has been rearchitected to model builds as a DAG of individual steps, improving reliability and fixing issues with extra build directories being generated for dependencies.

  A new `ato package verify` command helps validate packages before publishing. Package management is more robust with version fallback support, system cert store usage, and fixed authentication headers.

  Library improvements include support for parallel pull resistors in `requires_pulls` checks and hidden value text on the fab layer for cleaner board outputs.

  **Full Changelog**: [https://github.com/atopile/atopile/releases/tag/v0.12.0](https://github.com/atopile/atopile/releases/tag/v0.12.0)
</Update>

<Update label="v0.11" description="🚀 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](https://github.com/atopile/atopile/releases/tag/v0.11.0)
</Update>

<Update label="v0.10" description="🎉 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.
</Update>

<Update label="v0.9" description="🔧 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.
</Update>

<Update label="v0.8" description="📝 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`.
</Update>

<Update label="v0.7" description="🔌 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.
</Update>

<Update label="v0.6" description="🌈 Artifacts somewhere nice and I2C Addressors">
  Added I2C Addressing & Bus viewer

  Build artifacts are now included when publishing. This means that when you go to [https://packages.atopile.io/](https://packages.atopile.io/), you'll see the build artifacts ready to order or explore.

  Added `hide_designators` [config option](./reference/config#builds-hide-designators).

  Improved checks system with [new exclude capability](./reference/config#builds-exclude-checks)

  Disabled required check for top level modules

  Enhanced `ato create component` to handle pins named as numbers

  ## Upgrading

  No required changes for upgrading.
</Update>

<Update label="v0.5" description="🌈 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.
</Update>

<Update label="v0.4" description="Packages 📦">
  atopile's package management system has had a huge upgrade!

  To find packages, check out the entirely overhauled [package index](https://packages.atopile.io).

  The new commands to packages are clearer and help keep the packages all in sync. See the updated [package guide](./essentials/4-packages).

  If you're looking to publish your own packages, [check out the guide](./guides/publish).

  ## 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`.
</Update>

<Update label="v0.3" description="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.

  | Old                    | New                    |
  | ---------------------- | ---------------------- |
  | `ato install --jlcpcb` | `ato 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.0

  Upgrading 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`](https://github.com/atopile/atopile/tree/main/src/faebryk/library) for the latest and greatest.

  It should be better documented. If this is important for you, please vote on the [issue](https://github.com/atopile/atopile/issues/936).
</Update>
