Hi All,

## 2.4.0 Release

Within the next two weeks, I am planning to release Apache Celix 2.4.0.

Currently, only two issues remain for the 2.4.0 milestone [1]: one
concerning documentation updates (#99) and another regarding
changes.md (#632).
For #99, I will likely update the subproject document and review the
introduction and building documentation. For the other document items
mentioned I'll create separate issues to be addressed later.

If anything is missing from the 2.4.0 release, please let us know, and
we can consider including it.

## 3.0.0 Preparation

Following the release of Apache Celix 2.4.0, we are planning a major
update (3.0.0). This also means that post-2.4.0 release, breaking
changes will be introduced, including the removal of certain
libraries, headers, functions, and bundles. For a more complete
overview of the anticipated breaking changes, see issue #509 [2].

The primary focus of these changes will be:
- Removal (or non-export) of the old C API that doesn't utilize a
`celix_` prefix.
- Removal of unused/unmaintained bundles. This includes the pubsub bundles.

So, why are these breaking changes being introduced?

Trimming the API is intended to streamline the public API of Apache
Celix, making the framework more manageable, especially by a smaller
team.

Regarding the removal of certain libraries/bundles and, in particular,
the pubsub bundles: My perspective is that the Apache Celix project
should concentrate on providing a native OSGi framework. This
framework should come with associated bundles that align with (and
adapt as needed) the OSGi specification, while also offering advanced
features, such as the Event Admin with support for remote events.
While the PubSub bundles offer valuable functionality, IMO they should
not be part of Apache Celix. Users can still access the PubSub bundles
from previous Apache Celix versions.

In closing,  I believe a potential future goal for Apache Celix could
be to provide a native dynamic service framework promoting polyglot
solutions within a singular native process, based on a C API and
implementation. This could lean towards a low-level polyglot approach,
emphasizing FFI usage to create framework API bindings and
facilitating C-styled services to bridge various languages without
requiring a VM.
Presently, Apache Celix supports C and C++, but integrating Rust and
Python could be beneficial. Although Python support might depend on a
VM (PVM), it could be a worthy inclusion given that many C/C++
developers are familiar with Python. I share these thoughts as "food
for thought" but also to highlight that simplifying the Apache Celix
framework and its bundles would make achieving these goals more
feasible.

1: https://github.com/apache/celix/milestone/4
2: https://github.com/apache/celix/issues/509

What are your thoughts?

Best regards,
Pepijn

Reply via email to