Lines Matching +full:python +full:- +full:is +full:- +full:python3

9 Nanopb-1.0.0 (2025-xx-xx)
10 -------------------------
12 ### Remove Python 2 support
14 **Rationale:** Python 2 interpreter was deprecated in 2020. For backward
16 Python 2 for the 0.4.x series. That has required several tricks that
19 **Changes:** Removed Python 2 support files and code hacks needed to
22 **Required actions:** Upgrade to Python 3 and ensure `python-protobuf`
23 is installed.
25 Nanopb-0.4.9 (2024-09-19)
26 -------------------------
32 not necessarily compatible with `python-protobuf` version installed from `pip`.
35 turn uses `grpc_tools` Python package if available. If it is not available,
36 system path is searched for `protoc`.
39 version incompatibilities, `pip install --user --upgrade grpcio-tools protobuf`
40 is recommended. If needed, `PROTOBUF_PROTOC_EXECUTABLE` can be set to override
44 versions of `protoc` selected by CMake is different than installed `python-protobuf`.
46 ### Use uint8_t for pb_byte_t when UINT8_MAX is defined
54 is available. Use it to select which type to typedef.
64 …hortcomings of the WORKSPACE system](https://bazel.build/external/overview#workspace-shortcomings),
65 Bzlmod is going to replace the legacy WORKSPACE system in future Bazel releases.
87 If the old name `com_github_nanopb_nanopb` is preferred, can add `repo_name` parameter to indicate …
94 **Rationale:** Nanopb-0.4.7 extended `int_size` option to affect enums.
95 This is only supported by C++11 and C23 compilers.
99 **Changes**: `enum_intsize` is now a separate option, and does not use `#ifdef`.
104 **Error indications:** Enum integer sizes use defaults as the old setting is ignored.
106 Nanopb-0.4.8 (2023-11-11)
107 -------------------------
111 **Rationale:** Previously `CMakeLists.txt` installed nanopb Python module under name `proto` and in…
113 **Changes:** Python module is installed as `nanopb` and include files under `/usr/include/nanopb`.
118 Include path may need adjustment if not using `nanopb-targets.cmake` to determine it.
120 **Error indications:** Include file `pb.h` not found when compiling against a system-wide installat…
122 Nanopb-0.4.7 (2022-12-11)
123 -------------------------
127 **This option was separated to `enum_intsize` in nanopb-0.4.9. This migration notice has been updat…
129 …enum sizes can be specified with the new `int_size` option. Note that this is only supported when …
149 Nanopb-0.4.6 (2022-05-30)
150 -------------------------
152 ### NANOPB_VERSION define is now a string
154 **Changes:** To ease `NANOPB_VERSION` macro usage, the value is directly a string.
163 **Changes:** The default options passing method now uses `--plugin-opt` which
164 is supported by protoc 3.6.0 and newer (released in 2018).
167 `grpcio-tools` package from `pip`. If neither is possible, the
172 **Error indications:** "`protoc: Unknown flag: --nanopb_opt`"
178 The most widely supported is C11 `_Static_assert` keyword.
179 Previously the code used negative size array definition trick, which is
183 **Changes:** Now `_Static_assert` is used by default.
185 **Required actions:** If the keyword is not recognized, set the compiler to
186 C11 standard mode if available. If it is not available, define either `PB_C99_STATIC_ASSERT`
191 Nanopb-0.4.4 (2020-11-25)
192 -------------------------
198 a transitional file was added. It was later abandoned and is now removed
207 Nanopb-0.4.3 (2020-09-21)
208 -------------------------
217 Regeneration is not needed.
223 Nanopb-0.4.2 (2020-06-23)
224 -------------------------
226 ### Generator now uses Python 3 by default
228 **Rationale:** Previously `nanopb-generator.py` had hashbang
229 of `#!/usr/bin/env python`, which would execute with Python
230 2 on most systems. Python 2 is now deprecated and many libraries are
232 While `nanopb_generator.py` has worked with Python 3 for
233 years now, and overriding the python version was possible with
236 **Changes:** Hashbang now uses `#!/usr/bin/env python3`.
238 Python 2, if necessary.
240 **Required actions:** If possible, just verify Python 3 is installed and
241 necessary dependencies are installed for it. For example `pip3 install protobuf grpcio-tools`
242 should take care of it. If this is not possible, call `nanopb_generator.py2` from your build
245 **Error indications:** `python3: command not found` if
246 Python 3 is not installed.
247 `Could not import the Google protobuf Python libraries` if dependencies are only installed for Pyth…
249 Nanopb-0.4.0 (2019-12-20)
250 -------------------------
260 **Changes:** Now field information is encoded more efficiently in
261 `uint32_t` array in a variable-length format. Old
262 `pb_field_t` structure has been removed and it is now a
267 **Required actions:** If your own code accesses the low-level field
278 `#include` directives. This is different than what the
281 **Changes:** Now default options are `--no-timestamp` and
282 `--no-strip-path`.
284 **Required actions:** If old behaviour is desired, add
285 `--timestamp` and `--strip-path` options to
287 line as `--nanopb_out=--timestamp,--strip-path:outdir`.
295 **Rationale:** Google's Python protobuf library, which is used in
297 version 3.1.0. It is not necessary to bundle it with nanopb anymore.
299 **Required actions:** Update `python-protobuf` to version
304 ### .options file is now always case-sensitive
307 were case-sensitive on Linux and case-insensitive on Windows. This was
308 by accident. Because `.proto` files are case-sensitive,
312 case-sensitive, and matched by `fnmatchcase()` instead of
318 ### `CHAR_BIT` define is now needed
320 **Rationale:** To check whether the platform has 8-bit or larger chars,
321 the C standard `CHAR_BIT` macro is needed.
326 available, you can define the macro in `pb_syshdr.h`. There is an
332 ### Strings must now always be null-terminated
334 **Rationale:** Previously `pb_encode()` would accept non-terminated
340 is missing. Maximum encoded message size calculation is changed
341 accordingly so that at most `max_size-1` strings are assumed. New field
350 ### Removal of per-field default value constants
373 by a null byte, which is read as zero tag value. Most other protobuf
374 implementations don't support this, so it is not very useful feature.
385 `pb_encode_ex()`. If compatibility with 0.3.9.x is needed,
395 present only when their contents was non-zero. Most other protobuf
403 that is present. Alternatively, the field option
416 **Changes:** `PB_OLD_CALLBACK_STYLE` option no-longer has
434 `--protoc-insertion-points` option is passed to the
437 Nanopb-0.3.9.4, 0.4.0 (2019-10-13)
438 ----------------------------------
470 `.proto` is not required. If user code directly uses the
474 Nanopb-0.3.9.1, 0.4.0 (2018-04-14)
475 ----------------------------------
489 Nanopb-0.3.8 (2017-03-05)
490 -------------------------
516 Nanopb-0.3.5 (2016-02-13)
517 -------------------------
521 **Rationale:** Some platforms cannot access 8-bit sized values directly,
530 standards-compliant `stdint.h`, it may lack the definition for
536 Nanopb-0.3.2 (2015-01-24)
537 -------------------------
550 one change is needed: use `which_xxxx` field to detect which field is
558 Nanopb-0.3.0 (2014-08-26)
559 -------------------------
568 **Changes:** There is a new file, `pb_common.c`, which must be included
571 **Required actions:** Add `pb_common.c` to build rules. This file is
573 left out if some functionality is not needed.
580 **Rationale:** Often nanopb is used with small arrays, such as 255 items
583 `PB_FIELD_16BIT` and `PB_FIELD_32BIT` which tell nanopb what is the
596 and have better indications of errors, so this is only an issue for
603 haven\'t caused trouble so far, it is reasonable to switch to
604 non-conflicting names as these are rarely used from user code.
608 - Macros:
609 - STATIC_ASSERT(x) -> PB_STATIC_ASSERT(x)
610 - UNUSED(x) -> PB_UNUSED(x)
611 - Include guards:
612 - PB_filename -> PB_filename_INCLUDED
613 - Structure forward declaration tags:
614 - _pb_field_t -> pb_field_s
615 - _pb_bytes_array_t -> pb_bytes_array_s
616 - _pb_callback_t -> pb_callback_s
617 - _pb_extension_type_t -> pb_extension_type_s
618 - _pb_extension_t -> pb_extension_s
619 - _pb_istream_t -> pb_istream_s
620 - _pb_ostream_t -> pb_ostream_s
623 the above identifiers in your application code, perform search-replace
629 Nanopb-0.2.9 (2014-08-09)
630 -------------------------
632 ### Change semantics of generator -e option
635 (like in default extension .pb.c). The `-e` option to the generator
638 **Changes:** The `-e` option in generator will no longer add the
642 **Required actions:** Only if using the generator -e option. Add dot
648 Nanopb-0.2.7 (2014-04-07)
649 -------------------------
651 ### Changed pointer-type bytes field datatype
654 nanopb-0.2.5, the bytes type used a separate `pb_bytes_ptr_t` type to
656 separate, user-allocated buffer. However, it made the internal logic
662 **Required actions:** Only if using pointer-type fields with the bytes
663 datatype. Change any access to `msg->field.size` to
664 `msg->field->size`. Change any allocation to reserve space of amount
672 Nanopb-0.2.4 (2013-11-07)
673 -------------------------
678 to be non-static, even if the option is not used. This caused errors on
685 previously used. Actions are as listed under nanopb-0.1.3 and
686 nanopb-0.1.6.
691 Nanopb-0.2.1 (2013-04-14)
692 -------------------------
703 defining `PB_OLD_CALLBACK_STYLE`. Recommended action is to:
705 - Change the callback signatures to contain `void**` for decoders and `void * const *` for encode…
706 - Change the callback function body to use **arg` instead of `arg`.
711 Nanopb-0.2.0 (2013-03-02)
712 -------------------------
742 `pb_field_t` contents in your own code, something which is
745 - Change `PB_HTYPE_ARRAY` to `PB_HTYPE_REPEATED`.
746 - Change `PB_HTYPE_CALLBACK` to `PB_ATYPE()` and `PB_ATYPE_CALLBACK`.
751 Nanopb-0.1.6 (2012-09-02)
752 -------------------------
756 **Rationale:** Similarly to field encoders in nanopb-0.1.3.
761 using the old functions. Recommended action is to replace any calls with
768 Nanopb-0.1.3 (2012-06-12)
769 -------------------------
783 using the old functions. Recommended action is to replace any calls with