Nirum

Latest version: v0.6.3

Safety actively analyzes 629723 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 5

0.3.2

-------------

Released on March 15, 2018.

Et cetera

- Fixed a broken build of the official Docker images.

0.3.1

-------------

Released on March 1, 2018.

Python target

- Fixed record/union deserializers to ignore unknown fields in data payload.
Deserializers had raised `KeyError` before. [232]

[232]: https://github.com/spoqa/nirum/issues/232

0.3.0

-------------

Released on February 18, 2018.

Language

- [Package](./docs/package.md) is now a new compilation unit of Nirum.
Every Nirum package needs *package.toml* manifest file.
[[83], [99]]
- Since a Nirum package can be compiled to more than one target languages,
the `nirum` command became to have `-t`/`--target` required parameter.
[[106], [111], [114]]
- Added `-w`/`--watch` mode. [[91], [104], [218]]
- Annotations became able to have multiple arguments and every parameter
became necessary to having its name (keyword). [[178], [190], [197]]
- Service methods became able to omit their return types.
[[179], [199] by Yang Chun Ung]
- Added `error` annotation to make a type to subclass an exception base
class (e.g., [`Exception`][python-exception] in Python) when it's compiled
to OO languages. [[38], [127]]
- Union tag docstrings in parentheses became allowed. [[153], [154]]
- Fixed a parser bug that a bare identifier (i.e., unquoted identifier) cannot
start with a reserved keyword, e.g., `types` (`type` is reserved),
`enumeration` (`enum` is reserved). [[184], [189]]
- Fixed a parser bug that `import` names had been disallowing to have
a trailing comma or newlines. [[202]]
- Fixed the `nirum` command bug that it had always terminated with exit code
0 even when it errored. [[97], [108]]

Docs target

- A new target, `docs` is now available. To generate docs for a Nirum
package, specify `--target docs` option to the `nirum` command.
[[10], [113], [116], [125], [131], [152], [170], [223]]

Python target

- Now supports Python 2.7 besides Python 3.4 or later.
[[50], [85], [93], [117], [nirum-python 22]]
- Now requires *nirum-python* 0.6.0 or later. [[119], [141], [146]]
- From now on, in order to compile a Nirum package to Python,
*package.toml* manifest need [`targets.python`][targets.python] section
and `targets.python.name` field. [[99]]
- Added `targets.python.minimum_runtime` option to specify the minimum
version of *nirum-python* runtime library. [[118], [119]]
- Added `targets.python.renames` option to rename module names when they
are compiled to a Python module. [[121]]
- More package metadata became configurable. [[100]]
- `targets.python.description` [[174] by Seunghun Lee]
- `targets.python.license` [[180] by Seunghun Lee]
- `targets.python.keywords` [[183] by Seunghun Lee]
- Added new transport layer. [[149], [nirum-python 79], [nirum-python 92]]
- Generated constructors of service clients became to take a
`nirum.transport.Transport` instance.
- Followed renamed/moved import paths of the runtime classes
(e.g., `nirum.rpc.Service` became to `nirum.service.Service`).
- The way to avoid name collision between generated types and runtime
classes is changed. The runtime library had provided alternative names
like `service_type` for `Service` and generated imports had been like
`from nirum.rpc import service_type`, but it's now
`from nirum.service import Service as service_type`.
- Record/union tag fields of an optional type can be omitted when
the constructor is called.
[[70], [165] by Seunghun Lee]
- Generated tag classes became qualified under its union class
(e.g., `Shape.Rectangle` instead of `Rectangle`).
Deprecated the old style and it is going to be obsolete in the near future.
[[68], [193]]
- Generated service clients became qualified under its service class
(e.g., `FooService.Client` instead of `FooService_Client`).
Deprecated the old style and it is going to be obsolete in the near future.
[[167], [222]].
- Generated serializers became independent from *nirum-python* runtime
library. [[160], [201], [203], [204]]
- Deserializers became to show multiple error messages at a time.
[[168], [224]]
- Generated Python classes became having `__nirum_type__` metadata for RTTI.
[[nirum-python 34], [192]]
- Generated service classes became having `__nirum_method_annotations__`
metadata for processing annotations. [[194]]
- Docstrings in a Nirum schema became to generate corresponding Python
docstrings. [[102], [128]]
- Sets, lists, and maps became compiled to immutable data structures
so that thay are easily hashable. [[nirum-python 49], [123]]
- Fixed a bug that implicit ancestor packages hadn't been generated even
if they have submodules. [[92], [105]]
- Fixed a bug that a generated Python code had raised
[`NameError`][python-name-error] when a referring type is above than
a referred type. [[138], [nirum-python 88], [146]]
- Fixed a bug that a generated Python `enum` code had became broken
when an enum type has a member named `mro`. [[185], [188]]

Et cetera

- The officialy distributed executable binaries for Linux became
independent from [glibc]; instead statically linked to [musl]. [216]
- The Docker image now has `nirum` command in `PATH`. [[155]]
- The Docker image became based and built on [Alpine Linux][] so that
the image is now much lighter.

[10]: https://github.com/spoqa/nirum/issues/10
[38]: https://github.com/spoqa/nirum/issues/38
[50]: https://github.com/spoqa/nirum/issues/50
[68]: https://github.com/spoqa/nirum/issues/68
[70]: https://github.com/spoqa/nirum/issues/70
[83]: https://github.com/spoqa/nirum/pull/83
[85]: https://github.com/spoqa/nirum/pull/85
[91]: https://github.com/spoqa/nirum/issues/91
[92]: https://github.com/spoqa/nirum/issues/92
[93]: https://github.com/spoqa/nirum/issues/93
[99]: https://github.com/spoqa/nirum/pull/99
[97]: https://github.com/spoqa/nirum/issues/97
[100]: https://github.com/spoqa/nirum/issues/100
[102]: https://github.com/spoqa/nirum/issues/102
[104]: https://github.com/spoqa/nirum/pull/104
[105]: https://github.com/spoqa/nirum/pull/105
[106]: https://github.com/spoqa/nirum/pull/106
[108]: https://github.com/spoqa/nirum/pull/108
[111]: https://github.com/spoqa/nirum/pull/111
[113]: https://github.com/spoqa/nirum/pull/113
[114]: https://github.com/spoqa/nirum/pull/114
[116]: https://github.com/spoqa/nirum/pull/116
[117]: https://github.com/spoqa/nirum/pull/117
[118]: https://github.com/spoqa/nirum/issues/118
[119]: https://github.com/spoqa/nirum/pull/119
[121]: https://github.com/spoqa/nirum/pull/121
[123]: https://github.com/spoqa/nirum/pull/123
[128]: https://github.com/spoqa/nirum/pull/128
[125]: https://github.com/spoqa/nirum/issues/125
[127]: https://github.com/spoqa/nirum/pull/127
[131]: https://github.com/spoqa/nirum/pull/131
[138]: https://github.com/spoqa/nirum/issues/138
[141]: https://github.com/spoqa/nirum/pull/141
[146]: https://github.com/spoqa/nirum/pull/146
[149]: https://github.com/spoqa/nirum/pull/149
[152]: https://github.com/spoqa/nirum/pull/152
[153]: https://github.com/spoqa/nirum/issues/153
[154]: https://github.com/spoqa/nirum/pull/154
[155]: https://github.com/spoqa/nirum/pull/155
[160]: https://github.com/spoqa/nirum/issues/160
[165]: https://github.com/spoqa/nirum/pull/165
[167]: https://github.com/spoqa/nirum/pull/167
[168]: https://github.com/spoqa/nirum/issues/168
[170]: https://github.com/spoqa/nirum/pull/170
[174]: https://github.com/spoqa/nirum/pull/174
[178]: https://github.com/spoqa/nirum/issues/178
[179]: https://github.com/spoqa/nirum/issues/179
[180]: https://github.com/spoqa/nirum/pull/180
[183]: https://github.com/spoqa/nirum/pull/183
[184]: https://github.com/spoqa/nirum/issues/184
[185]: https://github.com/spoqa/nirum/issues/185
[188]: https://github.com/spoqa/nirum/pull/188
[189]: https://github.com/spoqa/nirum/pull/189
[190]: https://github.com/spoqa/nirum/pull/190
[192]: https://github.com/spoqa/nirum/pull/192
[193]: https://github.com/spoqa/nirum/pull/193
[194]: https://github.com/spoqa/nirum/pull/194
[197]: https://github.com/spoqa/nirum/pull/197
[199]: https://github.com/spoqa/nirum/pull/199
[201]: https://github.com/spoqa/nirum/pull/201
[202]: https://github.com/spoqa/nirum/pull/202
[203]: https://github.com/spoqa/nirum/pull/203
[204]: https://github.com/spoqa/nirum/pull/204
[216]: https://github.com/spoqa/nirum/issues/216
[218]: https://github.com/spoqa/nirum/issues/218
[222]: https://github.com/spoqa/nirum/pull/222
[223]: https://github.com/spoqa/nirum/pull/223
[224]: https://github.com/spoqa/nirum/pull/224
[nirum-python 22]: https://github.com/spoqa/nirum-python/issues/22
[nirum-python 34]: https://github.com/spoqa/nirum-python/issues/34
[nirum-python 49]: https://github.com/spoqa/nirum-python/issues/49
[nirum-python 79]: https://github.com/spoqa/nirum-python/issues/79
[nirum-python 88]: https://github.com/spoqa/nirum-python/pull/88
[nirum-python 92]: https://github.com/spoqa/nirum-python/pull/92
[python-exception]: https://docs.python.org/3/library/exceptions.htmlException
[targets.python]: ./target/python.md
[python-name-error]: https://docs.python.org/3/library/exceptions.htmlNameError
[glibc]: https://www.gnu.org/software/libc/
[musl]: https://www.musl-libc.org/
[Alpine Linux]: https://alpinelinux.org/

0.2.3

-------------

To be released.

0.2.2

-------------

Released on March 20, 2018.

- Fixed a runtime ``TypeError`` that had been raised when a parameter
corresponding to a variable for a query string in ``http-resource``
annotation's path has an optional type. [`251`_ by Chang-soo Han]

.. _251: https://github.com/spoqa/nirum/issues/251

0.2.1

-------------

Released on March 20, 2018.

- Fixed a runtime ``re.error`` (``sre_constants.error``) that had been raised
when a variable name for a query string has one or more hyphens
in ``http-resource`` annotation's ``path``. [`250`_ by Chang-soo Han]

.. _250: https://github.com/spoqa/nirum/issues/250

Page 4 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.