:doctype: book

Title: Notice:    Licensed to the Apache Software Foundation (ASF) under one            or more contributor license agreements.
See the NOTICE file            distributed with this work for additional information            regarding copyright ownership.
The ASF licenses this file            to you under the Apache License, Version 2.0 (the            "License");
you may not use this file except in compliance            with the License.
You may obtain a copy of the License at            .              http://www.apache.org/licenses/LICENSE-2.0            .            Unless required by applicable law or agreed to in writing,            software distributed under the License is distributed on an            "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY            KIND, either express or implied.
See the License for the            specific language governing permissions and limitations            under the License.

= January 2017 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:

* As a community we made 3 releases this quarter and 3 further releases currently under vote, and added Johannes Utzig as a new committer.

== Health report:

* The PMC were requested by the board to consider if there are any potential PMC candidates among the current committers.
There was some discussion, but no people were decided upon.
This will be discussed again in the coming days.
* A new contribution of the JAX-RS Services OSGi specification Reference Implementation has been contributed from Carlos Sierra Andrés.
This specification is currently in draft.
* The number of subscribers to the dev@ user@ private@ and commits@ lists are roughly consistent (down by 0-3 in the last 3 months).
* The dev@ list traffic is consistent, while the user@ traffic has been down over last three months.
However, there has been a wide variety of discussion across the different modules within Aries.
* Despite 32 issues being closed off, the number opened was slightly higher in the past 3 months.

== 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 52 committers.
* No new committers added in the last 3 months
* Last committer addition was Johannes Utzig at Wed Sep 14 2016

== Releases:

* Aries Blueprint Core 1.7.1 (blueprint-core) 2016-10-19
* Aries JMX Core 1.1.7 (jmx-core) 2016-10-19
* Aries Util 1.1.3 (util) 2016-10-20
* Aries Transaction Control service (tx-control) 2016-10-21
* Aries JPA 2.5.0 (jpa) 2016-10-31
* Aries Apache Aries Blueprint Plugin SPI 1.0.0 (blueprint-maven-plugin-spi) 2016-12-05
* Aries Blueprint Plugin Annotations 1.0.0 (blueprint-maven-plugin-annotation) 2016-12-05
* Aries Blueprint Maven Plugin 1.5.0 (blueprint-maven-plugin) 2016-12-05
* Aries Transaction Manager 1.3.2 (transaction-manager) 2017-01-03
* Aries Proxy Service 1.0.6 (proxy-impl) 2017-01-03

== Mailing list activity:

* dev@aries.apache.org:
 ** 135 subscribers (up 1 in the last 3 months):
 ** 481 emails sent to list (546 in previous quarter)
* user@aries.apache.org:
 ** 239 subscribers (up 0 in the last 3 months):
 ** 269 emails sent to list (91 in previous quarter)
