Releases: tcalmant/ipopo
v3.0.0
First release of the v3 branch
- Dropped support for Python 2.7 and versions earlier than 3.10
- Kept compability with iPOPO 1.0 on API level
- Moved from Travis-CI to GitHub actions to test project against Python 3.10, 3.11 and 3.12
- Added type hints where possible
- Support types in specifications
- Documentation updates
- Fixed most deprecation warnings from Python 3.12
- Upgraded Eclipse Paho to 2.1
- Replaced SleekXMPP by SliXMPP
- Added an etcd3 discovery provider
- Updated
osgiservicebridge
to 1.5.7 because ofprotobuf
version issues - Fixed link to Karaf
v1.0.2
v1.0.1
- Added a
RequiresBroadcast
decorator, which injects a proxy that broadcasts
calls to all services matched by the requirement. It also transparently
ignores calls when no service matches the requirement. ConfigurationAdmin
default persistence can now be disabled by setting the
pelix.configadmin.persistence.default.disable
framework property to any
non-empty value.
See #113 for more details.- Added a
to_record()
method inLogEntry
objects. This converts the
Pelix entry to alogging.LogRecord
object, which can then be formatted
using standard formatters.
Note that some information is missing, like the place the log record is from
(file path and line).
v1.0.0
First 1.x release of iPOPO!
Note: The Pelix/iPOPO project is now split in two branches: iPOPO (v1
branch) and ipopo2 (v2
branch). The v2
branch requires Python 3.7+, whereas v1
will keep compatibility with Python 2.7.
Bug fixes with this release:
- Fixed an error when starting the framework after having loaded native modules, e.g.
numpy
. These modules don't have a__path__
set, which case was not handled when the framework normalizes the existing module paths. - Fixed an invalid import of
collections
abstract classes for Python 3.3+ inpelix.internal.hooks
.
v0.8.1
This is a bug fixing release:
- Fixed a memory leak in the thread pool implementation.
The patch comes from issue 35 of the jsonrpclib-pelix project. - Fixed a deadlock in the Py4J provider (issue #100), contributed by Scott Lewis (@scottslewis).
See pull request #101 for more details.
v0.8.0
A new step toward 1.0 !
This major new feature of this release is the contribution of the Remote Service Admin implementation by @scottslewis.
The documentation about this new feature is split into 3 parts:
- A refcard
- A tutorial on the Py4J provider
- A tutorial on the XML-RPC provider
The evolution of this feature can be seen in issues #60 and #98.
v0.7.1
This is a small release, before version 0.8.0 (unless some issues are detected meanwhile)
This version adds:
- TLS Remote Shell
- Shell completion services
- Shell reference cards in the documentation
@In/ValidateComponent
decorators, which give more control on the argument of the life-cycle callbacks- Bugs fixed:
Framework.delete()
behavior on stopped frameworks- LogService access to Python LogRecord messages
v0.7.0
This version adds:
- Prototype Service Factories
- Automatic release of consumed services when a bundle stops. This will avoid some stale references when using service factories. WARNING: This is an important change in behavior, which might break some projects which use stale references to pass information from one bundle version to another during an update (which is a bad way to do it).
- Deprecation handling of the
imp
package - Added a
Framework.delete()
method to avoid the need to know about theFrameworkFactory
class.
This release also removes some Python 2.6 compatibility code that was remaining. and which is not necessary anymore, as this version of Python is not supported anymore by iPOPO.
A big thank you to @elrhedda for his feedback.
v0.6.5
This version mainly adds:
- Service Factories
- HTTP Routing (based on decorators,
HttpGet
,HttpPost
, ...) - Redis and ZooKeeper remote service discovery providers (Docker-friendly discovery)
- Added basic support of HTTPS in Remote Services
A big thanks to iPOPO contributors:
- @debovis for fixing a strange behavior when importing a module a bundle depends on
- @Paltoquet for fixing the thread pool
- @ahmadshahwan for preventing imported HTTP servlets to be exposed by the local HTTP server
- @tbr for adding an auto-naming capacity in
@Provides
decorators and for fixing a bug innormalize_path()
v0.6.4
This version adds new decorators to iPOPO:
@RequiresVariableFilter
, which works as@Requires
but also support the use of component properties as variables in LDAP filter.@HiddenProperty
, which extends@Property
, but ensures that the property key and value won't be seen in the description API nor in the shell.
(it will stay visible using the standard reflection API of Python)
The "log service" has also been added to this version, though the pelix.misc.log bundle
.
It provides the OSGi API to log traces, but also keep track of the traces written with the logging module.
The log entries can be accessed locally (but not through remote services).
They can be printed in the shell using commands provided by pelix.shell.log
.
Finally, the HTTP basic component now support HTTPS.
It is activated when given two files (a certificate and a key) in its component properties.
A password can also be given if the key file is encrypted.
This is a prototype feature and should be used carefully.
Also, it should not be used with remote services.