= April 2016 Board report

Apache Aries delivers a set of pluggable Java components enabling an    enterprise OSGi application programming model.

== Issues:

* There are no issues requiring board attention at this time

== Activity:

* New module: Aries Remote Service Admin seeded from Apache CXF DOSGi for providing an implementation of the OSGi Remote Service Admin specification with pluggable transports.
http://aries.apache.org/modules/rsa.html
* New module: Aries Transaction Control Service.
An implementation of the in development RFC221 at the OSGi Alliance.
* 8 releases since the last report in January

== Health report:

* Mailing list discussion and project contributions continue to be healthy.

== PMC changes:

* Currently 37 PMC members.
* No new PMC members added in the last 3 months
* Last PMC addition was Christian Schneider on Fri Apr 10 2015

== Committer base changes:

* Currently 49 committers.
* No new committers added in the last 3 months
* Last committer addition was Sam Bratton at Mon Dec 21 2015

== Releases:

* Aries JPA container (jpa-container) 1.0.4 2016-03-08
* Apache Aries Proxy Service (proxy-impl) 1.0.5 2016-03-25
* Apache Aries JMX Core (jmx-core) 1.1.6 2016-03-25
* Aries Blueprint Core (blueprint-core) 1.6.0 2016-03-25
* Aries Blueprint Spring Support (blueprint-spring) 0.2.0 2016-03-25
* Aries Blueprint Spring Extender Support (blueprint-spring-extender) 0.2.0 2016-03-25
* Aries Blueprint no-OSGI (blueprint-noosgi) 1.1.2 2016-03-25
* Aries Blueprint CM (blueprint-cm) 1.0.8 2016-03-25

== Mailing list activity:

* dev@aries.apache.org:
 ** 131 subscribers (down -4 in the last 3 months):
 ** 488 emails sent to list (527 in previous quarter)
* user@aries.apache.org:
 ** 236 subscribers (up 0 in the last 3 months):
 ** 37 emails sent to list (37 in previous quarter)

== JIRA activity:

* 44 JIRA tickets created in the last 3 months
* 50 JIRA tickets closed/resolved in the last 3 months
