Changelog
[10.0.1] - Development
10.0.0 - 2024-12-22
Changed
- Breaking: Rename --verbose CLI flag to --debug (
5116ffe
) - Breaking: Raise
bincopy.Error
instead ofValueError
inchunked
(452afb5
) - Improve CLI error handling (
5116ffe
) - Clarify
self_verify
docstring (fc8d16b
)
Added
- Implement
read_flash
(908aeac
) - Add
readback
utility function to read firmware image from flash (53481c2
) - Add support for Python 3.13 (
a74ed75
)
Removed
- Drop support for EOL Python 3.8 (
a74ed75
)
Fixed
- Breaking: Re-rename types.py to protocol.py to avoid shadowing built-in types.py (
2a66b7b
)
9.0.1 - 2024-05-14
Changed
- Make minor improvements to CLI output (
fb17948
)
Fixed
- Update README to reflect changes made in v9.0.0 (
e6dc42c
)
9.0.0 - 2024-05-13
Changed
- Disable checksumming by default in CLI, enable with
--checksum
flag (b685bb5
) - Unconditionally erase before flashing with CLI (
9a4ddc6
)
Added
- Add CLI flag
--reset
to reset device after flashing (e38cefb
)
Removed
- Breaking: Remove
.has_checksum
attribute versionofBootAttrs
(b685bb5
)
Fixed
8.0.2 - 2024-05-11
Fixed
- Continue with warning on
BadAddress
during checksum (b8734ea
)
8.0.1 - 2024-02-08
Changed
- Bump development status trove classifier: Beta -> Stable (
418142e
) - Begin argument descriptions with lowercase letter (
103a331
)
Fixed
- Fix
chunked
missing from API reference (a276764
)
8.0.0 - 2023-11-09
Changed
- Breaking: Renamed
connection.py
toflash.py
(3319508
) - Breaking: Renamed
protocol.py
totypes.py
(4d73ca0
) - Renamed
file
argument to CLI tohexfile
(5a0d612
) - Replace sphinx with mkdocs (
4a9e854
) - Split tox.ini from pyproject.toml to separate file (
08ef0ed
) - Use
from __future__ import annotations
(04ed4f9
) - Improve CI time by not installing in environments that don't need it (
6d381ee
)
Added
- Add
BootAttrs
dataclass for holding bootloader attributes (afcfa08
) - Add
Chunk
protocol for data which is to be written to flash (afcfa08
) - Add
Connection
protocol for objects which provide a connection to a device in bootloader mode (afcfa08
) - Add
get_boot_attrs
function to read bootloader attributes (3319508
) - Add
chunked
to load and split HEX file into aligend chunks (afcfa08
) - Add
erase_flash
to erase program memory range (3319508
) - Add
write_flash
to write firmware chunks to flash (3319508
) - Add
checksum
to compare local and remote data (3319508
) - Add
self_verify
to detect installed application on device (3319508
) - Add
reset
to reset device (3319508
) - Add github pages (
f02b7c6
) - Start using ruff for linting (
82e1a95
)
Removed
- Breaking: Remove
flashing.py
(969d110
) - Breaking: Remove
mcbootflash.get_parser
(969d110
) - Breaking: Remove
mcbootflash.flash
(969d110
) - Breaking: Remove
mcbootflash.Bootloader
(3319508
) - Breaking: Remove
mcbootflash.protocol.Packet.from_serial
(f5cb75c
) - Stop using prospector for linting (
eed8b6a
) - Stop using readthedocs (
f4a128d
)
7.0.6 - 2023-11-01
Changed
- Reformat changelog per Common Changelog style (
6447957
)
Fixed
7.0.5 - 2023-10-31
Maintanence release.
Changed
- Update developer guide
- Use bincopy for alignment of first and final chunks in each segment
- Use
__version__
string in sphinxconf.py
- Narrow mypy import ignores
- Update readthedocs python to 3.11
- Use python3.12 instead of python3.12-dev in github-actions
7.0.4 - 2023-10-07
Fixed
- Align all write commands with
write_size
(#21)
7.0.3 - 2023-09-26
Fixed
- Write the final two words of the program memory range (#19)
7.0.0 - 2023-09-23
Changed
- Change HEX file parser from intelhex to bincopy
- Improve error handling and debug logging
Removed
- Breaking: Remove
get_response
Fixed
- Don't checksum if bootloader doesn't support it (#16)
6.1.0 - 2023-09-15
Changed
- Deprecate
Packet.from_serial
in favor ofget_response
Added
- Add function
mcbootflash.protocol.get_response
Fixed
- Fix an off-by-one error which skipped the final word within program memory range
- Skip checksum calculation close to the upper end of program memory range (#13)
6.0.0 - 2023-09-13
Changed
- Make
progressbar2
optional (#11) - Display progress as a percentage value if
progressbar2
is not installed
Added
- Add parameter
progress_callback
tomcbootflash.Bootloader.flash
- Add
--version
option to display mcbootflash version string
Removed
- Breaking: Remove parameter
quiet
frommcbootflash.Bootloader.flash
Fixed
- Flash all data within program memory range (#9)
5.1.1 - 2023-04-26
Fixed
- Increase timeout during flash erase (#6)
5.1.0 - 2023-01-13
Changed
- Fix some minor docstring mistakes
- Improve error message when receiving unexpected data
Added
- Re-add some logging messages that were removed by mistake
- Add build status badge
5.0.0 - 2022-11-29
Changed
- Breaking: Rename McbootflashException to BootloaderError
- Breaking: Simplify protocol names (modules are not namespaces)
- Breaking: Rename BootloaderConnection to Bootloader
- Use pytest-reserial for testing
Removed
- Breaking: Remove several custom exceptions
4.1.1 - 2022-09-17
Fixed
- Fix final chunk not being written in certain situations
- Fix minor errors in console output
4.1.0 - 2022-07-19
Added
- Add documentation
- Add readthedocs
- Add codacy badges
4.0.0 - 2022-07-12
Changed
- Breaking: Move
quiet
parameter toBootloaderConnection.flash
- Raise exception from BootloaderConnection.flash if flashing did not succeed
3.0.0 - 2022-07-11
Changed
- Breaking: Rename
flash.py
->flashing.py
- Breaking: Rename
BootResponseCode
->BootResponse
- Breaking: Refactor exceptions
- Use recorded serial traffic to verify behavior
- Move application code to src/
- Switch to flit build system
- Enable docstring linting
- Enforce alphabetically sorted imports with isort
- Change lots of logging messages
Added
- Add progress bar while flashing. Suppress with
--quiet
flag - Allow overriding CLI arguments
- Add
BootloaderConnection.erase_flash
Removed
- Breaking: Remove
FLASH_UNLOCK_KEY
- Breaking: Remove
BootloaderConnection.{quiet, hexfile}
2.0.0 - 2022-06-12
Changed
- Improve CLI help message
- Improve package metadata
- Reworke exceptions to more closely match those thrown by the bootloader
Added
- Add public interface to
__init__.py
- Add
ChecksumPacket
class - Add
reset
command - Add tests
- Add linters
- Add CI via Github Actions
Fixes
- Fix off-by-one error when firmware uses all available space
1.0.0 - 2022-05-27
Initial release.