Running nixpkgs-update (https://nix-community.org/update-bot/) with UPDATE_INFO: esphome 2026.3.3 -> 2026.4.3 https://github.com/esphome/esphome/releases attrpath: esphome Checking auto update branch... [version] [version] generic version rewriter does not support multiple hashes [rustCrateVersion] [rustCrateVersion] No cargoHash found [golangModuleVersion] [golangModuleVersion] Not a buildGoModule package with vendorHash [npmDepsVersion] [npmDepsVersion] No npmDepsHash [updateScript] [updateScript] Success [updateScript] these 2 derivations will be built: /nix/store/3a05bc7mvgdy8mwcyh7261g9cffy0xgi-update-esphome.drv /nix/store/n8ac4qgk39lf9immj8a4fn5h254kkd9z-packages.json.drv building '/nix/store/3a05bc7mvgdy8mwcyh7261g9cffy0xgi-update-esphome.drv'... building '/nix/store/n8ac4qgk39lf9immj8a4fn5h254kkd9z-packages.json.drv'... Going to be running update for following packages: - esphome-2026.3.3 Press Enter key to continue... Running update for: Enqueuing group of 1 packages - esphome-2026.3.3: UPDATING ... - esphome-2026.3.3: DONE. Packages updated! Diff after rewrites: diff --git a/pkgs/by-name/es/esphome/dashboard.nix b/pkgs/by-name/es/esphome/dashboard.nix index 444d9205f16c..8c9df558a942 100644 --- a/pkgs/by-name/es/esphome/dashboard.nix +++ b/pkgs/by-name/es/esphome/dashboard.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "esphome-dashboard"; - version = "20260210.0"; + version = "20260408.1"; pyproject = true; src = fetchFromGitHub { owner = "esphome"; repo = "dashboard"; tag = finalAttrs.version; - hash = "sha256-Edd2ZOSBAZSrGVjbncyPhhjFjE0CxBHz16ZHXyzx9LI="; + hash = "sha256-OY7s/b0rWmjI9QfmEwj3VxbTFrj99fyf9x1tPl24RbI="; }; npmDeps = fetchNpmDeps { diff --git a/pkgs/by-name/es/esphome/package.nix b/pkgs/by-name/es/esphome/package.nix index 1d7fb10189f6..bf2a6f9ba94f 100644 --- a/pkgs/by-name/es/esphome/package.nix +++ b/pkgs/by-name/es/esphome/package.nix @@ -33,14 +33,14 @@ let in python.pkgs.buildPythonApplication rec { pname = "esphome"; - version = "2026.3.3"; + version = "2026.4.3"; pyproject = true; src = fetchFromGitHub { owner = "esphome"; repo = "esphome"; tag = version; - hash = "sha256-yMPHz6IZIGM4oJw1wspEL3lIIiPv4WZALUJ7J1UWukY="; + hash = "sha256-+esSczOBIT4dJEyzqmEv6YMU4wGkN4lFGmuZKRp5/bo="; }; patches = [ No auto update branch exists Old version 2026.3.3" not present in master derivation file with contents: { lib, stdenv, callPackage, python3Packages, fetchFromGitHub, installShellFiles, platformio, esptool, git, versionCheckHook, nixosTests, }: let python = python3Packages.python.override { self = python; packageOverrides = self: super: { esphome-dashboard = self.callPackage ./dashboard.nix { }; paho-mqtt = super.paho-mqtt.overridePythonAttrs (oldAttrs: rec { version = "1.6.1"; src = fetchFromGitHub { inherit (oldAttrs.src) owner repo; tag = "v${version}"; hash = "sha256-9nH6xROVpmI+iTKXfwv2Ar1PAmWbEunI3HO0pZyK6Rg="; }; build-system = with self; [ setuptools ]; doCheck = false; }); }; }; in python.pkgs.buildPythonApplication (finalAttrs: { pname = "esphome"; version = "2026.4.3"; pyproject = true; src = fetchFromGitHub { owner = "esphome"; repo = "esphome"; tag = finalAttrs.version; hash = "sha256-+esSczOBIT4dJEyzqmEv6YMU4wGkN4lFGmuZKRp5/bo="; }; patches = [ # Use the esptool executable directly in the ESP32 post build script, that # gets executed by platformio. This is required, because platformio uses its # own python environment through `python -m esptool` and then fails to find # the esptool library. ./esp32-post-build-esptool-reference.patch # Call the platformio binary directly instead of `python -m # esphome.platformio_runner`, which tries to import platformio as a Python # module. ./platformio-binary-reference.patch ]; build-system = with python.pkgs; [ setuptools ]; nativeBuildInputs = [ installShellFiles ]; pythonRelaxDeps = true; pythonRemoveDeps = [ "esptool" "platformio" ]; postPatch = '' substituteInPlace pyproject.toml \ --replace-fail "setuptools==82.0.1" "setuptools" \ --replace-fail "wheel>=0.43,<0.47" "wheel" ''; # Remove esptool and platformio from requirements env.ESPHOME_USE_SUBPROCESS = ""; dependencies = with python.pkgs; [ aioesphomeapi argcomplete bleak cairosvg click colorama cryptography esphome-dashboard esphome-glyphsets freetype-py icmplib jinja2 paho-mqtt pillow platformio puremagic pyparsing pyserial pyyaml requests resvg-py ruamel-yaml smpclient tornado tzdata tzlocal voluptuous zeroconf ]; makeWrapperArgs = [ # platformio is used in esphome/platformio_api.py # esptool is used in esphome/__main__.py # git is used in esphome/git.py "--prefix PATH : ${ lib.makeBinPath [ platformio esptool git ] }" # The dashboard requires esphome to be importable # dependencies are added to show better error messages "--prefix PYTHONPATH : $out/${python.sitePackages}:${python.pkgs.makePythonPath finalAttrs.passthru.dependencies}" "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.cc ]}" "--set ESPHOME_USE_SUBPROCESS ''" # https://github.com/NixOS/nixpkgs/issues/362193 "--set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION 'python'" ]; # Needed for tests __darwinAllowLocalNetworking = true; nativeCheckInputs = with python.pkgs; [ hypothesis mock pytest-asyncio pytest-cov-stub pytest-mock pytestCheckHook ] ++ [ git versionCheckHook ]; disabledTestPaths = [ # platformio builds; requires networking for dependency resolution "tests/integration" ]; preCheck = '' export PATH=$PATH:$out/bin ''; postInstall = let argcomplete = lib.getExe' python.pkgs.argcomplete "register-python-argcomplete"; in '' installShellCompletion --cmd esphome \ --bash <(${argcomplete} --shell bash esphome) \ --zsh <(${argcomplete} --shell zsh esphome) \ --fish <(${argcomplete} --shell fish esphome) ''; doInstallCheck = true; disabledTests = [ # tries to import platformio, which is wrapped in an fhsenv "test_clean_build" "test_clean_build_empty_cache_dir" "test_clean_all" "test_clean_all_partial_exists" # tries to use esptool, which is wrapped in an fhsenv "test_upload_using_esptool_passes_crystal_callback" "test_upload_using_esptool_path_conversion" "test_upload_using_esptool_skips_missing_extra_flash_images" "test_upload_using_esptool_with_file_path" # AssertionError: Expected 'run_external_command' to have been called once. Called 0 times. "test_run_platformio_cli_sets_environment_variables" # Expects a full git clone "test_clang_tidy_mode_full_scan" "test_clang_tidy_mode_targeted_scan" ]; passthru = { dashboard = python.pkgs.esphome-dashboard; updateScript = callPackage ./update.nix { }; tests = { inherit (nixosTests) esphome; }; }; meta = { changelog = "https://github.com/esphome/esphome/releases/tag/${finalAttrs.src.tag}"; description = "Make creating custom firmwares for ESP32/ESP8266 super easy"; homepage = "https://esphome.io/"; license = with lib.licenses; [ mit # The C++/runtime codebase of the ESPHome project (file extensions .c, .cpp, .h, .hpp, .tcc, .ino) gpl3Only # The python codebase and all other parts of this codebase ]; maintainers = with lib.maintainers; [ hexa picnoir thanegill karlbeecken ]; mainProgram = "esphome"; }; })