Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
df9b714
docs/library/re: Document non-capturing grouping.
agatti Mar 12, 2026
06dbc1f
github: Revert "Run esp32&zephyr daily to keep mstr branch caches hot".
projectgus Mar 12, 2026
d2cda57
rp2/rp2_dma: Disable DMA IRQ before clearing handler function.
projectgus Mar 11, 2026
82c6b0e
esp32: Only check the lockfile currently used by the build.
projectgus Mar 12, 2026
fe32e1d
esp32: Drop support for ESP-IDF <v5.3.
projectgus Mar 12, 2026
f625d2e
esp32: Fix build for ESP-IDF version 5.3.
projectgus Mar 12, 2026
bac45e5
tests/ports/stm32/can: Update pyb.CAN tests for FDCAN.
projectgus Mar 17, 2026
4b339ee
stm32/pyb_can: Fix initialising CAN2 clearing CAN1 filters.
projectgus Mar 18, 2026
a906cfb
stm32/can: Clarify can_clearfilter() arguments.
projectgus Mar 18, 2026
d1c936d
stm32: Expose FDCAN2 on board NUCLEO_G474RE.
projectgus Mar 18, 2026
cda49be
py/objlist,stm32,esp32: Add helpers for creating/ensuring list args.
projectgus Dec 16, 2025
6768325
stm32: Add can_get_state() function, use from pyb.CAN.
projectgus Jan 29, 2026
0225704
extmod,docs: Add generic machine.CAN helpers & docs.
projectgus Dec 15, 2025
6f835b3
stm32: Implement index-aware STM32G4 FDCAN HAL TX functions.
projectgus Feb 18, 2026
6cac2d2
stm32: Add machine.CAN implementation.
projectgus Dec 15, 2025
c802a13
stm32: Fix printing value of pyb.CAN auto_restart on FDCAN hardware.
projectgus Mar 19, 2026
e74f3d5
stm32/timer: Use HAL macro to determine if TIM is 32-bit.
dpgeorge Mar 2, 2026
2d3241f
stm32/timer: Expose functions to convert id to reg and enable TIM clock.
dpgeorge Mar 2, 2026
dbe6a11
stm32/machine_pwm: Implement machine.PWM class.
dpgeorge Feb 11, 2026
094c268
stm32/machine_pwm: Use heuristic to assign TIMx_CHy to a pin.
dpgeorge Mar 5, 2026
6e9d35b
tests/extmod_hardware/machine_pwm.py: Round expected timing calculation.
dpgeorge Mar 2, 2026
142f8b9
tests/extmod_hardware/machine_pwm.py: Add pin settings for stm32 port.
dpgeorge Mar 2, 2026
1d5073f
extmod/machine_pwm: Fix use of object when pointer is needed.
dpgeorge Mar 2, 2026
af31472
stm32/boards: Disable some features on boards with small flash.
dpgeorge Mar 4, 2026
2b64d6d
stm32/boards/stm32f091_af.csv: Split TIM2_CH1 from TIM2_ETR.
dpgeorge Mar 6, 2026
98ab12a
stm32/boards/stm32n657_af.csv: Add TIM alt funcs to PA0-PA3.
dpgeorge Mar 6, 2026
ef2b30b
docs/library/machine.PWM: Add alif,stm32 to list of ports with invert.
dpgeorge Mar 5, 2026
47871a4
docs/library/machine.PWM: Document hardware PWM layout.
dpgeorge Mar 6, 2026
8f24c86
tests/extmod_hardware/machine_pwm.py: Convert test to use target_wiring.
dpgeorge Mar 18, 2026
2ccf78a
ci,esp32: Build oldest & newest ESP-IDF versions in CI.
projectgus Mar 12, 2026
e0beace
LICENSE,docs: Update copyright year range to include 2026.
dpgeorge Mar 11, 2026
b1d635f
docs/reference/speed_python: Update native emitter limitations.
agatti Mar 17, 2026
b3d88cf
extmod/nimble/modbluetooth_nimble: Handle port init failures.
agatti Mar 18, 2026
406356e
extmod/modlwip: Ensure socket is finalisable if error during creation.
dpgeorge Feb 7, 2026
8a3c9f0
extmod/modlwip: Call user callback on newly-received UDP or RAW packet.
jwhitham Jan 8, 2026
134bf4d
alif/irq: Add missing IRQ priorities.
iabdalkader Mar 18, 2026
82e44e0
stm32/mpthreadport: Increase minimum thread stack size to 2.5k.
dpgeorge Feb 9, 2026
702f15a
stm32/boards/PYBD_SF2: Free up some space in internal flash.
dpgeorge Mar 21, 2026
803a4d7
py/objtemplate: Correctly cast qstr literals when printing.
jepler Mar 13, 2026
74e9457
py/modweakref: Implement weakref module with ref and finalize classes.
dpgeorge Feb 4, 2026
c91d09a
tests/basics: Add tests for weakref.ref and weakref.finalize.
dpgeorge Feb 12, 2026
2cca348
tests/basics: Add test for weakref having exception in callback.
dpgeorge Feb 16, 2026
f83f363
webassembly/Makefile: Add test//% target.
dpgeorge Feb 15, 2026
6f96d26
webassembly/variants/pyscript: Enable weakref module and add tests.
dpgeorge Feb 15, 2026
44d8f70
docs/library/weakref: Add documentation for weakref module.
dpgeorge Feb 16, 2026
5c00edc
tools/ci.sh: Increase qemu_arm test run timeout.
dpgeorge Feb 16, 2026
85e8f61
lib/micropython-lib: Update submodule to latest.
dpgeorge Mar 24, 2026
bce8549
tests/feature_check/tstring.py: Remove check for string.templatelib.
dpgeorge Mar 24, 2026
93201ff
lib/cyw43-driver: Update driver to latest version v1.1.1.
dpgeorge Mar 24, 2026
ac48088
rp2/boards/SEEED_XIAO_RP2040: Add XIAO RP2040 board definition.
mattytrentini May 1, 2024
f4d2447
esp32/boards/SPARKFUN_THINGPLUS_ESP32C5: Add SF Thing Plus ESP32-C5.
sfe-SparkFro Mar 16, 2026
2dc2e30
esp32/boards/SEEED_XIAO_ESP32C6: Add new XIAO board definition.
pi-mst Mar 20, 2026
47d6725
mpremote: Add smart encoding selection for fs_writefile.
pi-anl Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/actions/setup_esp32/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Setup ESP-IDF for CI
description: Install ESP-IDF
inputs:
idf_ver:
required: true
type: string
ccache_key:
required: true
type: string

runs:
using: "composite"

steps:
- id: python_ver
name: Read the Python version
run: echo PYTHON_VER=py$(python --version | cut -d' ' -f2) | tee "${GITHUB_OUTPUT}"
shell: bash

- name: Cached ESP-IDF install
id: cache_esp_idf
uses: actions/cache@v5
with:
path: |
./esp-idf/
~/.espressif/
!~/.espressif/dist/
~/.cache/pip/
# Cache is keyed on both IDF version (from the job) and Python version (from the runner)
key: esp-idf-${{ inputs.idf_ver }}-${{ steps.python_ver.outputs.PYTHON_VER }}

- name: Install ESP-IDF packages
if: steps.cache_esp_idf.outputs.cache-hit != 'true'
env:
IDF_VER: ${{ inputs.idf_ver }}
run: tools/ci.sh esp32_idf_setup
shell: bash

- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: esp32-${{ inputs.idf_ver }}-${{ inputs.ccache_key }}

- name: Enable CCache for ESP-IDF
run: echo "IDF_CCACHE_ENABLE=1" >> ${GITHUB_ENV}
shell: bash

29 changes: 9 additions & 20 deletions .github/workflows/code_size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,17 @@ jobs:
- name: Install packages
run: tools/ci.sh code_size_setup

# Needs to be kept in synch with ports_esp32.yml
- id: idf_ver
name: Read the ESP-IDF version (including Python version) and set outputs.IDF_VER
run: tools/ci.sh esp32_idf_ver | tee "${GITHUB_OUTPUT}"
- name: Cached ESP-IDF install
id: cache_esp_idf
uses: actions/cache@v5
with:
path: |
./esp-idf/
~/.espressif/
!~/.espressif/dist/
~/.cache/pip/
key: esp-idf-${{ steps.idf_ver.outputs.IDF_VER }}
- name: Install ESP-IDF packages
if: steps.cache_esp_idf.outputs.cache-hit != 'true'
run: tools/ci.sh esp32_idf_setup
- name: Find IDF_NEWEST_VER
id: idf_ver
run: |
echo "IDF_VER="$(yq .env.IDF_NEWEST_VER < .github/workflows/ports_esp32.yml) \
| tee "${GITHUB_OUTPUT}"

- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
- name: Setup ESP-IDF
uses: ./.github/actions/setup_esp32
with:
key: code_size
idf_ver: ${{ steps.idf_ver.outputs.IDF_VER }}
ccache_key: code_size

- name: Build
run: tools/ci.sh code_size_build
Expand Down
52 changes: 25 additions & 27 deletions .github/workflows/ports_esp32.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,54 +12,52 @@ on:
- 'lib/**'
- 'drivers/**'
- 'ports/esp32/**'
schedule:
# Scheduled run exists to keep master branch ESP-IDF cache entry hot
# and prevent creating many redundant per-branch cache entries instead.
- cron: "20 0 * * *"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# Oldest and newest supported ESP-IDF versions, should match ports/esp32/README.md
IDF_OLDEST_VER: &oldest "v5.3"
IDF_NEWEST_VER: &newest "v5.5.1"

jobs:
build_idf:
strategy:
fail-fast: false
matrix:
idf_ver:
- *oldest
- *newest
ci_func: # names are functions in ci.sh
- esp32_build_cmod_spiram_s2
- esp32_build_s3_c3
- esp32_build_c2_c5_c6
- esp32_build_p4
exclude:
# Exclude some jobs on the oldest IDF version, to save resources
- idf_ver: *oldest
ci_func: esp32_build_c2_c5_c6
- idf_ver: *oldest
ci_func: esp32_build_p4
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

# Needs to be kept in synch with code_size.yml
- id: idf_ver
name: Read the ESP-IDF version (including Python version) and set outputs.IDF_VER
run: tools/ci.sh esp32_idf_ver | tee "${GITHUB_OUTPUT}"
# Only the newest IDF version will build the ESP-IDF lockfiles correctly,
# so we need to disable MICROPY_MAINTAINER_BUILD on older versions.
- name: Disable extra checks for older ESP-IDF
id: check_newest_ver
if: ${{ matrix.idf_ver != env.IDF_NEWEST_VER }}
run: echo "MICROPY_MAINTAINER_BUILD=0" >> ${GITHUB_ENV}

- name: Cached ESP-IDF install
id: cache_esp_idf
uses: actions/cache@v5
- name: Setup ESP-IDF
uses: ./.github/actions/setup_esp32
with:
path: |
./esp-idf/
~/.espressif/
!~/.espressif/dist/
~/.cache/pip/
key: esp-idf-${{ steps.idf_ver.outputs.IDF_VER }}

- name: Install ESP-IDF packages
if: steps.cache_esp_idf.outputs.cache-hit != 'true'
run: tools/ci.sh esp32_idf_setup
idf_ver: ${{ matrix.idf_ver }}
ccache_key: ${{ matrix.ci_func }}

# Needs to be kept in synch with code_size.yml
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: esp32-${{ matrix.ci_func }}

- name: Build ci_${{matrix.ci_func }}
- name: Build ci_${{matrix.ci_func }} on ESP-IDF ${{ matrix.idf_ver }}
run: tools/ci.sh ${{ matrix.ci_func }}
4 changes: 0 additions & 4 deletions .github/workflows/ports_zephyr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,6 @@ on:
- 'lib/**'
- 'ports/zephyr/**'
- 'tests/**'
schedule:
# Scheduled run exists to keep master branch Zephyr cache entry hot
# and prevent creating many redundant per-branch cache entries instead.
- cron: "40 4 * * *"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2013-2025 Damien P. George
Copyright (c) 2013-2026 Damien P. George

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@

# General information about the project.
project = "MicroPython"
copyright = "- The MicroPython Documentation is Copyright © 2014-2025, " + micropy_authors
copyright = "- The MicroPython Documentation is Copyright © 2014-2026, " + micropy_authors

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down
1 change: 1 addition & 0 deletions docs/library/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ library.
struct.rst
sys.rst
time.rst
weakref.rst
zlib.rst
_thread.rst

Expand Down
Loading
Loading