Skip to content

Commit

Permalink
Updated upgrade page.
Browse files Browse the repository at this point in the history
  • Loading branch information
lextm committed Sep 12, 2024
1 parent a0cc2e7 commit eb546ab
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 53 deletions.
21 changes: 11 additions & 10 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@

## Supported Versions

Only 6.x/7.x releases are currently being supported with security updates.
Shipped releases are supported with security updates before they reach the
end-of-life date.

| Version | Supported | End of Life | Comment |
| ------- | ------------------ | ------------------- | -------------------------------- |
| 7.1.x | :white_check_mark: | TBD | TBD |
| 7.0.x | :white_check_mark: | 2025-3-11 | 6 months after 7.1.0 release day |
| 6.2.x | :white_check_mark: | 2025-8-22 | 1 year after 7.0.0 release day |
| 6.1.x | :white_check_mark: | 2025-1-12 | 6 months after 6.2.0 release day |
| 6.0.x | :white_check_mark: | 2024-9-23 | 6 months after 6.1.0 release day |
| 5.0.x | :x: | 2024-8-31 | |
| < 5.0 | :x: | 2024-8-31 | |
| Version | End of Life | Comment |
| ------- | ------------------- | --------------------------------- |
| 7.1.x | TBD | TBD |
| 7.0.x | 2025-3-11 | 6 months after 7.1.0 release date |
| 6.2.x | 2025-8-22 | 1 year after 7.0.0 release date |
| 6.1.x | 2025-1-12 | 6 months after 6.2.0 release date |
| 6.0.x | 2024-9-23 | 6 months after 6.1.0 release date |
| 5.0.x | 2024-8-31 | |
| < 5.0 | 2024-8-31 | |

Rules:

Expand Down
1 change: 1 addition & 0 deletions docs/source/includes/_links.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@
.. _tcpdump: https://www.tcpdump.org/
.. _Net-SNMP: http://www.net-snmp.org/
.. _Support Options: https://www.pysnmp.com/support
.. _this lifecycle page: https://github.com/lextudio/pysnmp/blob/main/SECURITY.md
60 changes: 17 additions & 43 deletions docs/source/upgrade.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ releases from old releases such as 4.x and 5.x.
We will keep the ``-lextudio`` packages for a while to ensure a smooth
transition for users who are still using them.

.. important::

Each release has its own end-of-life date, so please check the table on
`this lifecycle page`_ for more details.


Issues in 4.x Releases
----------------------
Expand Down Expand Up @@ -142,6 +147,8 @@ the code base. So far, this release introduces the following changes:
operations and easy migration from 4.x/5.0 releases.
* The API surface was adjusted slightly to make it more aligned with other
SNMP implementations.
* Upon better time synchronization in 5.0 release, more changes are
included in 6.0 release to make the engine fully compliant with RFC3414.
* Documentation is significantly improved to cover the new features and
changes.
* Continuous collaboration with downstream projects.
Expand Down Expand Up @@ -179,8 +186,16 @@ above.
Upgrade to 6.2 Releases
-----------------------

As the quality of asyncio-based sync API is not as good as we expect,
we decided to remove it from 6.2 release.
The new sync API is added to enable synchronous I/O operations and easy
migration from 4.x/5.x releases. The new API is based on asyncio and is
compatible with Python 3.8 and later.

We were hoping the new sync API would be stable enough to meet the quality
expectation, but it turned out to be the opposite. So we decided to remove
it from 6.2 release.

You might copy the sync wrappers from 6.1 release and use them in your code
if you still need them.

.. important::

Expand Down Expand Up @@ -208,47 +223,6 @@ Switching to async DNS resolver forced us to make some changes to the API,
so instead of using simply ``UdpTransportTarget()`` now you need to call
``await UdpTransportTarget.create()``.

Important Changes
-----------------

The following changes are important to note when upgrading to 6.x:

Async API based on asyncore
+++++++++++++++++++++++++++

All such APIs are removed, so you can no longer import types from the
relevant modules.

Sync API based on asyncore
++++++++++++++++++++++++++

The old sync API is removed, so you can no longer import types from the
relevant modules.

Sync API based on asyncio
+++++++++++++++++++++++++

The new sync API is added to enable synchronous I/O operations and easy
migration from 4.x/5.x releases. The new API is based on asyncio and is
compatible with Python 3.8 and later.

We were hoping the new sync API would be stable enough to meet the quality
expectation, but it turned out to be the opposite. So we decided to remove
it from 6.2 release.

You might copy the sync wrappers from 6.1 release and use them in your code
if you still need them.

RFC3414 Compliance
++++++++++++++++++

The engine request/response processing wasn't fully compliant with RFC3414,
especially when it came to error handling.

Initial changes were introduced to better support time synchronization in
5.0 release, but more changes are included in 6.0 release to make the
engine fully compliant with RFC3414.

Related Resources
-----------------

Expand Down

0 comments on commit eb546ab

Please sign in to comment.