: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.

= October 2017 Board report

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

== Issues:

* None to report this quarter.

== Activity & Health report:

* As a community we made 10 releases this quarter.
* Mailing list activity and pull request contribution remains broadly the same.
* Release Distribution Policy update: .sha1 and .md5 files for all released files.

== PMC changes:

* Currently 38 PMC members.
* No new PMC members added in the last 3 months
* Last PMC addition was Dominik Przybysz on Tue May 30 2017

== Committer base changes:

* Currently 55 committers.
* No new committers added in the last 3 months
* Last committer addition was Tom De Wolf at Wed May 03 2017

== Releases:

* subsystem (uber bundle) 2.0.10 was released on Tue Aug 08 2017
* subsystem-api 2.0.10 was released on Tue Aug 08 2017
* subsystem-core 2.0.10 was released on Tue Aug 08 2017
* blueprint-maven-plugin 1.8.0 was released on Thu Aug 17 2017
* blueprint-maven-plugin 1.9.0 was released on Tue Oct 10 2017
* blueprint-maven-plugin-spi 1.1.0 was released on Thu Aug 17 2017
* blueprint-maven-plugin-annotation 1.2.0 was released on Thu Aug 17 2017
* blueprint-maven-plugin-annotation 1.3.0 was released on Tue Oct 10 2017
* blueprint-maven-plugin-pax-cdi-handlers 1.9.0 was released on Tue Oct 10 2017
* blueprint-spring 1.2.0 was released on Mon Oct 2 2017

== Mailing list activity:

* dev@aries.apache.org:
 ** 136 subscribers (down -1 in the last 3 months):
 ** 200 emails sent to list (310 in previous quarter)
* user@aries.apache.org:
 ** 243 subscribers (up 0 in the last 3 months):
 ** 27 emails sent to list (34 in previous quarter)

== JIRA activity:

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