blob: 5773c8cc7738734c29f57989cdb80dad34256e62 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Release Management :: Apache Felix</title>
<link rel="canonical" href="https://felix.apache.org/documentation/development/release-management-nexus.html">
<meta name="generator" content="Antora 2.3.4">
<link rel="stylesheet" href="../../_/css/site.css">
<link rel="icon" href="../../_/img/favicon.png" type="image/x-icon">
</head>
<body class="article">
<header class="header">
<nav class="navbar">
<div class="navbar-brand">
<a class="navbar-item" href="https://felix.apache.org/index.html">
<span>
<img src="../../_/img/logo.png">
</span>
</a>
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
</div>
<div id="topbar-nav" class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item" href="https://felix.apache.org/index.html">Home</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Subprojects</a>
<div class="navbar-dropdown">
<a class="navbar-item" href="../subprojects/apache-felix-dependency-manager.html">Dependency Manager</a>
<a class="navbar-item" href="../subprojects/apache-felix-event-admin.html">Event Admin</a>
<a class="navbar-item" href="../subprojects/apache-felix-file-install.html">File Install</a>
<a class="navbar-item" href="../subprojects/apache-felix-framework.html">Framework</a>
<a class="navbar-item" href="../subprojects/apache-felix-gogo.html">Gogo Shell</a>
<a class="navbar-item" href="../subprojects/apache-felix-healthchecks.html">Health Checks</a>
<a class="navbar-item" href="../subprojects/apache-felix-inventory.html">Inventory</a>
<a class="navbar-item" href="../subprojects/apache-felix-log.html">Log</a>
<a class="navbar-item" href="../subprojects/apache-felix-logback.html">Logback</a>
<a class="navbar-item" href="../subprojects/apache-felix-maven-bundle-plugin.html">Maven bundle plugin</a>
<a class="navbar-item" href="../subprojects/apache-felix-maven-scr-plugin.html">Maven SCR plugin</a>
<a class="navbar-item" href="../subprojects/apache-felix-metatype-service.html">Metatype Service</a>
<a class="navbar-item" href="../subprojects/apache-felix-preferences-service.html">Preferences Service</a>
<a class="navbar-item" href="../subprojects/apache-felix-remote-shell.html">Remote Shell</a>
<a class="navbar-item" href="../subprojects/apache-felix-script-console-plugin.html">Script console plugin</a>
<a class="navbar-item" href="../subprojects/apache-felix-shell.html">Lightweight shell</a>
<a class="navbar-item" href="../subprojects/apache-felix-shell-tui.html">Shell TUI</a>
<a class="navbar-item" href="../subprojects/apache-felix-web-console.html">Web Console</a>
</div>
</div>
<div class="navbar-item">
<span class="control">
<a class="button is-primary" href="../downloads.html">Downloads</a>
</span>
</div>
</div>
</div>
</nav>
</header>
<div class="body">
<div class="nav-container" data-component="documentation" data-version="master">
<aside class="nav">
<div class="panels">
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<h3 class="title"><a href="../index.html">Documentation</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../documentation.html">Documentation</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../downloads.html">Downloads</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../getting-started.html">Getting Started</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../news.html">News</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Community</span>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../community/project-info.html">Apache Felix Project Info</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../community/contributing.html">Contributing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../community/projects-using-felix.html">Projects Using Felix</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<span class="nav-text">Development</span>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="coding-standards.html">Coding Standards</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="dependencies-file-template.html">DEPENDENCIES file template</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="provisional-osgi-api-policy.html">Provisional OSGi API Policy</a>
</li>
<li class="nav-item is-current-page" data-depth="2">
<a class="nav-link" href="release-management-nexus.html">Release Management</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="site-how-to.html">Site How To</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="using-the-osgi-compliance-tests.html">Using the OSGi Compliance Tests</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../faqs.html">FAQS</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../faqs/apache-felix-bundle-plugin-faq.html">Apache Felix Bundle Plugin Frequently Asked Questions</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../faqs/apache-felix-scr-plugin-faq.html">Apache Felix SCR Plugin Frequently Asked Questions</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../subprojects.html">Subprojects</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager.html">Apache Felix Dependency Manager</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">Guides</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/migrating-from-earlier-versions.html">Apache Felix Dependency Manager - Migrating from earlier versions</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/annotations.html">Dependency Manager - Annotations</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/background.html">Dependency Manager - Background</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/bundles-and-dependencies.html">Dependency Manager - Bundles and Dependencies</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/design-patterns.html">Dependency Manager - Design Patterns</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/development.html">Dependency Manager - Development</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/history.html">Dependency Manager - History</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/javadocs.html">Dependency Manager - JavaDocs</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/migrating-from-other-solutions.html">Dependency Manager - Migrating from other solutions.</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/performance-tuning.html">Dependency Manager - Performance Tuning</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/resources.html">Dependency Manager - Resource adapters</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/whatsnew.html">Dependency Manager - What&#8217;s new in version 4?</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/dm-lambda.html">Dependency Manager Lambda</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/guides/whatsnew-r15.html">What&#8217;s New in R15</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">Reference</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/component-adapter.html">Dependency Manager - Adapter</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/component-aspect.html">Dependency Manager - Aspect</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html">Dependency Manager - Bundle Adapter</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/dependency-bundle.html">Dependency Manager - Bundle Dependency</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/components.html">Dependency Manager - Components</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/dependency-configuration.html">Dependency Manager - Configuration Dependency</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/dependencies.html">Dependency Manager - Dependencies</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/external-links.html">Dependency Manager - External Links</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/component-factory-configuration-adapter.html">Dependency Manager - Factory Configuration Adapter Service</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/component-resource-adapter.html">Dependency Manager - Resource Adapter</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/dependency-resource.html">Dependency Manager - Resource Dependency</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/dependency-service.html">Dependency Manager - Service Dependency</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/service-scopes.html">Dependency Manager - Service Scopes</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/component-singleton.html">Dependency Manager - Singleton Component</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/thread-model.html">Dependency Manager - Thread Model</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/reference/dm-annotations.html">Dependency Manager Annotations</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">Tutorials</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/tutorials/working-with-annotations.html">Dependency Manager - Annotations</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/tutorials/getting-started.html">Dependency Manager - Getting Started</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/tutorials/leveraging-the-shell.html">Dependency Manager - Leveraging the shell</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-dependency-manager/tutorials/sample-code.html">Dependency Manager sample projects</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-event-admin.html">Apache Felix Event Admin</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-file-install.html">Apache Felix File Install</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../subprojects/apache-felix-framework.html">Apache Felix Framework</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-framework/apache-felix-framework-bundle-cache.html">Apache Felix Framework Bundle Cache</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-framework/apache-felix-framework-configuration-properties.html">Apache Felix Framework Configuration Properties</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-framework/apache-felix-framework-faq.html">Apache Felix Framework Frequently Asked Questions</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.html">Apache Felix Framework Launching and Embedding</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.html">Apache Felix Framework Usage Documentation</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-framework-security.html">Apache Felix Framework Security</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../subprojects/apache-felix-gogo.html">Apache Felix Gogo</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-gogo/rfc-147-overview.html">RFC 147 Overview</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-healthchecks.html">Apache Felix Health Checks</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-inventory.html">Apache Felix Inventory Printer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-log.html">Apache Felix Log</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-logback.html">Apache Felix Logback</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-maven-bundle-plugin-bnd.html">Apache Felix Maven Bundle Plugin (BND)</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-metatype-service.html">Apache Felix Metatype Service</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-osgi-bundle-repository.html">Apache Felix OSGi Bundle Repository (OBR)</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-preferences-service.html">Apache Felix Preferences Service</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-remote-shell.html">Apache Felix Remote Shell</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-shell.html">Apache Felix Shell</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../subprojects/apache-felix-shell-tui.html">Apache Felix Shell TUI</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../subprojects/apache-felix-web-console.html">Apache Felix Web Console</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-web-console/extending-the-apache-felix-web-console.html">Extending the Apache Felix Web Console</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-web-console/web-console-restful-api.html">Web Console RESTful API</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-web-console/web-console-security-provider.html">Web Console Security Provider</a>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">Extensions</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/branding-the-web-console.html">Branding the Web Console</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/providing-resources.html">Providing Resources</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/providing-web-console-plugins.html">Providing Web Console Plugins</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-logging.html">Web Console Logging</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../subprojects/apache-felix-web-console/extending-the-apache-felix-web-console/web-console-output-templating.html">Web Console Output Templating</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Maven SCR plugin</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-maven-scr-plugin/apache-felix-maven-scr-plugin-use.html">Apache Felix Maven SCR Plugin Use</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-bndtools-use.html">Apache Felix SCR Annotations BndTools Use</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-maven-scr-plugin/apache-felix-scr-ant-task-use.html">Apache Felix SCR Ant Task Use</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-maven-scr-plugin/extending-scr-annotations.html">Extending SCR Annotations Excerpt: How add new Annotations extending the base Annotations</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">SCR Annotations Excerpt: Using Java 5 Annotations to describe the component or service.</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../subprojects/apache-felix-maven-scr-plugin/scr-javadoc-tags.html">SCR JavaDoc Tags Excerpt: Using JavaDoc Tags to describe the component or service.</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../tutorials-examples-and-presentations.html">Tutorials</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-application-demonstration.html">Apache Felix Application Demonstration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial.html">Apache Felix OSGi Tutorial</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-faq.html">OSGi Frequently Asked Questions</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">OSGI Tutorial</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-1.html">Apache Felix Tutorial Example 1 - Service Event Listener Bundle</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2.html">Apache Felix Tutorial Example 2</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2b.html">Apache Felix Tutorial Example 2b</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-3.html">Apache Felix Tutorial Example 3</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-4.html">Apache Felix Tutorial Example 4</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-5.html">Apache Felix Tutorial Example 5</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-6.html">Example 6 - Spell Checker Service Bundle</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-7.html">Example 7 - Spell Checker Client Bundle</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-8.html">Example 8 - Spell Checker Service using Service Binder</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-9.html">Example 9 - Spell Checker Service using Declarative Services</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../license.html">Apache License 2.0</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../site-map.html">Site map</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Documentation</span>
<span class="version">master</span>
</div>
<ul class="components">
<li class="component is-current">
<span class="title">Documentation</span>
<ul class="versions">
<li class="version is-current is-latest">
<a href="../index.html">master</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../index.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../index.html">Documentation</a></li>
<li>Development</li>
<li><a href="release-management-nexus.html">Release Management</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/apache/felix-antora-site/edit/main/modules/ROOT/pages/development/release-management-nexus.adoc">Edit this Page</a></div>
</div>
<div class="content">
<article class="doc">
<h1 class="page">Release Management</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>*This is the release process for Apache Felix, based on Apache Maven <a href="https://maven.apache.org/developers/release/releasing.html">process</a></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_basics"><a class="anchor" href="#_basics"></a>Basics</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Apache Felix artifacts are distributed in two channels: The Maven Repository and the Apache distribution channels.</p>
</div>
<div class="paragraph">
<p>The basic steps for releasing are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#_staging_the_release_candidates">Release the module with the Maven Release plugin deploying to the Nexus Staging repository</a></p>
</li>
<li>
<p>Check the artifacts</p>
</li>
<li>
<p><a href="#_starting_the_vote">Call for vote</a></p>
</li>
<li>
<p><a href="#_promoting_the_release">Publish the release candidate</a>:</p>
<div class="ulist">
<ul>
<li>
<p>Publish the staged artifacts from Nexus Staging</p>
</li>
<li>
<p><code>svn add</code> the artifacts to the <code>dist</code> Subversion repository and <code>svn rm</code> the artifacts from the previous release</p>
</li>
</ul>
</div>
</li>
<li>
<p><a href="#_create_an_announcement">Announce the release</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The Apache Felix PMC appreciates all committers playing release manager for the projects they maintain.
Due to restrictions imposed on us, only members of the PMC are actually able to commit the releases to the distribution repository (See <a href="#_promoting_the_release">Publish the release candidate</a>).
In this case please ask a member of the PMC to actually publish the release artifacts.
Thanks.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_prerequisites"><a class="anchor" href="#_prerequisites"></a>Prerequisites</h2>
<div class="sectionbody">
<div class="paragraph">
<p>To prepare or perform a release you <em>MUST BE</em> at least an Apache Felix Committer.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>each and every release must be <a href="https://www.apache.org/dev/release-signing.html">SIGNED</a>;
your public key should be added to [<a href="https://www.apache.org/dist/felix/KEYS" class="bare">https://www.apache.org/dist/felix/KEYS</a>] (see <em>Appendix A</em>)</p>
</li>
<li>
<p>your public key should also be cross-signed by other Apache committers (not required, but suggested)</p>
</li>
<li>
<p>make sure you have all Apache servers defined in your <a href="https://maven.apache.org/developers/committer-settings.html">settings.xml</a></p>
</li>
<li>
<p>use Maven 3.5.0 (or higher)</p>
</li>
</ul>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
Listing the Apache servers in the <code>settings.xml</code> file also requires adding the password to that file.
Starting with Maven 2.1 this password may be encrypted and needs not be give in plaintext.
Please refer to <a href="https://maven.apache.org/guides/mini/guide-encryption.html">Password Encryption</a> for more information.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>In the past we staged release candidates on our local machines using a semi-manual process.
Now that we inherit from the Apache parent POM version 5, a repository manager will automatically handle staging for you.
This means you now only need to specify your GPG passphrase in the release profile of your <code>$\{user.home\}/.m2/settings.xml</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> &lt;settings&gt;
...
&lt;profiles&gt;
&lt;profile&gt;
&lt;id&gt;release&lt;/id&gt;
&lt;properties&gt;
&lt;gpg.passphrase&gt; &lt;!-- YOUR KEY PASSPHRASE --&gt; &lt;/gpg.passphrase&gt;
&lt;/properties&gt;
&lt;/profile&gt;
&lt;/profiles&gt;
...
&lt;/settings&gt;</code></pre>
</div>
</div>
<div class="paragraph">
<p>Everything else has been configured in the latest Felix parent POM:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> &lt;parent&gt;
&lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
&lt;artifactId&gt;felix-parent&lt;/artifactId&gt;
&lt;version&gt;6&lt;/version&gt;
&lt;relativePath&gt;../pom/pom.xml&lt;/relativePath&gt;
&lt;/parent&gt;</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_staging_the_release_candidates"><a class="anchor" href="#_staging_the_release_candidates"></a>Staging the Release Candidates</h2>
<div class="sectionbody">
<div class="paragraph">
<p>First prepare your POMs for release:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Make sure you have correct NOTICE, <a href="dependencies-file-template.html" class="page">DEPENDENCIES</a>, and LICENSE files.
Remember to update the copyright year.</p>
</li>
<li>
<p>Make sure you have an updated change log file, typically in <code>doc/changelog.txt</code> but in the project root is also acceptable.</p>
</li>
<li>
<p>Make sure there are no snapshots in the POMs to be released</p>
</li>
<li>
<p>Check that your POMs will not lose content when they are rewritten during the release process</p>
<div class="ulist">
<ul>
<li>
<p><code>mvn release:prepare -DdryRun=true</code></p>
</li>
<li>
<p>diff the original <code>pom.xml</code> with the one called <code>pom.xml.tag</code> to see if the license or any other info has been removed.
This has been known to happen if the starting <code>&lt;project&gt;</code> tag is not on a single line.
The only things that should be different between these files are the <code>&lt;version&gt;</code> and <code>&lt;scm&gt;</code> elements.
If there are any other changes, you must fix the original <code>pom.xml</code> file and commit before proceeding with the release</p>
</li>
</ul>
</div>
</li>
<li>
<p>Publish a snapshot.
This is useful for existing builds that still depend on a snapshot version of this artifact.
It means that the snapshot they will be getting is effectively the same as the released version.</p>
<div class="paragraph">
<p><code>$ mvn deploy ...
[INFO] [deploy:deploy] [INFO] Retrieving previous build number from apache.snapshots.https ...</code>
<strong> if you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the <em>Prerequisites</em>
</strong> be sure that the generated artifacts respect the Apache release <a href="https://www.apache.org/dev/release.html">rules</a>: NOTICE and LICENSE files should be present in the META-INF directory within the jar.
For -sources artifacts, be sure that your POM does not use the maven-source-plugin:2.0.3 which is broken.
The recommended version at this time is 2.0.4
** you should verify the deployment under the <a href="https://repository.apache.org/content/groups/snapshots/org/apache/felix">snapshot</a> repository on Apache</p>
</div>
</li>
<li>
<p>Prepare the release</p>
<div class="paragraph">
<p><code>$ mvn release:clean $ mvn release:prepare</code>
** preparing the release will create the new tag in git, automatically checking in on your behalf</p>
</div>
</li>
<li>
<p>Stage the release for a vote</p>
<div class="paragraph">
<p><code>$ mvn release:perform</code>
<strong> the release will automatically be inserted into a temporary staging repository for you, see the Nexus <a href="https://www.sonatype.com/books/nexus-book/reference/staging.html">staging documentation</a> for full details
</strong> you can continue to use <code>mvn release:prepare</code> and <code>mvn release:perform</code> on other sub-projects as necessary on the same machine and they will be combined in the same staging repository - this is useful when making a release of the Felix framework and its associated bundles.</p>
</div>
</li>
<li>
<p>Close the staging repository</p>
<div class="ulist">
<ul>
<li>
<p>login to <a href="https://repository.apache.org" class="bare">https://repository.apache.org</a> using your Apache SVN credentials.
Click on <em>Staging</em> on the left.
Then click on <em>org.apache.felix</em> in the list of repositories.
In the panel below you should see an open repository that is linked to your username and IP.
Right click on this repository and select <em>Close</em>.
This will close the repository from future deployments and make it available for others to view.
If you are staging multiple releases together, skip this step until you have staged everything</p>
</li>
</ul>
</div>
</li>
<li>
<p>Verify the staged artifacts</p>
<div class="ulist">
<ul>
<li>
<p>if you click on your repository, a tree view will appear below.
You can then browse the contents to ensure the artifacts are as you expect them.
Pay particular attention to the existence of *.asc (signature) files.
If you don&#8217;t like the content of the repository, right click your repository and choose <em>Drop</em>.
You can then rollback your release (see <em>Canceling the Release</em>) and repeat the process</p>
</li>
<li>
<p>note the staging repository URL (especially the number at the end of the URL) you will need this in your vote email.</p>
</li>
</ul>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_starting_the_vote"><a class="anchor" href="#_starting_the_vote"></a>Starting the Vote</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Propose a vote on the dev list with the closed issues, the issues left, and the staging repository - for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">To: "Felix Developers List" &lt;dev@felix.apache.org&gt;
Subject: [VOTE] Release Felix XXX version Y.Z
Hi,
We solved N issues in this release:
https://issues.apache.org/jira/...
There are still some outstanding issues:
https://issues.apache.org/jira/...
Staging repository:
https://repository.apache.org/content/repositories/orgapachefelix-[YOUR REPOSITORY ID]/
You can use this UNIX script to download the release and verify the signatures:
https://github.com/apache/felix-dev/blob/master/check_staged_release.sh
Usage:
sh check_staged_release.sh [YOUR REPOSITORY ID] /tmp/felix-staging
Please vote to approve this release:
[ ] +1 Approve the release
[ ] -1 Veto the release (please provide specific comments)
This vote will be open for 72 hours.</code></pre>
</div>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 50%;">
<col style="width: 50%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">To get the JIRA release notes link, browse to the FELIX <a href="https://issues.apache.org/jira/browse/FELIX">JIRA</a> page, select [Release Notes</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="https://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12310100" class="bare">https://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12310100</a>] and choose the relevant sub-project release and format (HTML)</p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>To get the list of issues left in JIRA, select the <a href="https://issues.apache.org/jira/browse/FELIX?report=com.atlassian.jira.plugin.system.project:openissues-panel">Open Issues</a> tab on the main FELIX page, and select the relevant sub-project.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_wait_for_the_results"><a class="anchor" href="#_wait_for_the_results"></a>Wait for the Results</h2>
<div class="sectionbody">
<div class="paragraph">
<p>From <a href="https://www.apache.org/foundation/voting.html">Votes on Package Releases</a>:</p>
</div>
<div class="quoteblock">
<blockquote>
<div class="paragraph">
<p>Votes on whether a package is ready to be released follow a format similar to majority approval &#8201;&#8212;&#8201;except that the decision is officially determined solely by whether at least three +1 votes were registered.
Releases may not be vetoed.
Generally the community will table the vote to release if anyone identifies serious problems, but in most cases the ultimate decision, once three or more positive votes have been garnered, lies with the individual serving as release manager.
The specifics of the process may vary from project to project, but the 'minimum of three +1 votes' rule is universal.</p>
</div>
</blockquote>
</div>
<div class="paragraph">
<p>The list of binding voters is available at link:{{ refs.project-management-committee-pmc.path }}[{{ refs.project-management-committee-pmc.headers.title }}]</p>
</div>
<div class="paragraph">
<p>If the vote is successful, post the result to the dev list - for example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">To: "Felix Developers List" &lt;dev@felix.apache.org&gt;
Subject: [RESULT] [VOTE] Release Felix XXX version Y.Z
Hi,
The vote has passed with the following result :
+1 (binding): &lt;&lt;list of names&gt;&gt;
+1 (non binding): &lt;&lt;list of names&gt;&gt;
I will copy this release to the Felix dist directory and
promote the artifacts to the central Maven repository.</code></pre>
</div>
</div>
<div class="paragraph">
<p>If the vote is unsuccessful, you need to fix the issues and restart the process - see <em>Canceling the Release</em>.
If the vote is successful, you need to promote and distribute the release - see <em>Promoting the Release</em>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_canceling_the_release"><a class="anchor" href="#_canceling_the_release"></a>Canceling the Release</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If the vote fails, or you decide to redo the release:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>remove the release tag from Subversion (<code>svn rm ...</code>)</p>
</li>
<li>
<p>login to <a href="https://repository.apache.org" class="bare">https://repository.apache.org</a> using your Apache SVN credentials.
Click on <em>Staging</em> on the left.
Then click on <em>org.apache.felix</em> in the list of repositories.
In the panel below you should see a closed repository that is linked to your username and IP (if it&#8217;s not yet closed you need to right click and select <em>Close</em>).
Right click on this repository and select <em>Drop</em>.</p>
</li>
<li>
<p>rollback the version in the <code>pom.xml</code> and commit any fixes you need to make</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>INFO: The release manager is free to either reuse the same version when proposing a new release for vote (for example 2.1.2 after a failed 2.1.2 release attempt), or choose a different number (for example 2.1.4 after a failed 2.1.2 attempt).
(cf. vote on 02/14/11).</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_promoting_the_release"><a class="anchor" href="#_promoting_the_release"></a>Promoting the Release</h2>
<div class="sectionbody">
<div class="paragraph">
<p>If the vote passes:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="#_upload_the_artifacts">Upload the Artifacts</a></p>
</li>
<li>
<p><a href="#_release_to_the_maven_repository">Release to the Maven Repository</a></p>
</li>
<li>
<p><a href="#_release_bundles_to_the_obr">Release Bundles to the OBR</a></p>
</li>
<li>
<p><a href="#_update_the_site">Update the Site</a></p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="_upload_the_artifacts"><a class="anchor" href="#_upload_the_artifacts"></a>Upload the Artifacts</h3>
<div class="paragraph">
<p>If you are not a member of the Apache Felix PMC you might have to ask a member of the PMC to execute this step.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
It is recommended to use the check_staged_release.sh script to download your release prior to releasing the staging repository.
This will make the task of uploading the release to the Felix releases repository easier.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>We use the distribution mechanism as described in <a href="https://www.apache.org/dev/release.html#upload-ci">How do I upload a release (newer way)?</a></p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Check out the <a href="https://dist.apache.org/repos/dist/release/felix">Felix releases repository</a>;</p>
</li>
<li>
<p><code>svn add</code> the artifacts to your checkout;</p>
</li>
<li>
<p><code>svn rm</code> the artifacts from the previous release from your checkout.
This will remove the artifacts from the main distribution and the mirrors.
They are still kept in the archive;</p>
</li>
<li>
<p><code>svn commit</code> your changes.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>After committing your changes, the <a href="https://www.apache.org/dist/felix">Apache Felix Dist</a> folder is immediately updated.
Updating the mirrors takes another few hours (up to a day).</p>
</div>
</div>
<div class="sect2">
<h3 id="_release_to_the_maven_repository"><a class="anchor" href="#_release_to_the_maven_repository"></a>Release to the Maven Repository</h3>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Login to <a href="https://repository.apache.org">Apache Nexus Repository</a> with your Apache SVN credentials;</p>
</li>
<li>
<p>Click on <em>Staging</em>;</p>
</li>
<li>
<p>Find your closed staging repository, select it, and click the <em>Release</em> button;</p>
</li>
<li>
<p>Click on <em>Repositories</em>;</p>
</li>
<li>
<p>Select the <em>Releases</em> repository;</p>
</li>
<li>
<p>Validate that your artifacts are all there.</p>
</li>
</ol>
</div>
</div>
<div class="sect2">
<h3 id="_release_bundles_to_the_obr"><a class="anchor" href="#_release_bundles_to_the_obr"></a>Release Bundles to the OBR</h3>
<div class="paragraph">
<p>If you&#8217;re releasing bundles, you can also add them to the Felix Release OBR.
To do this, execute the following command in a checkout of the release tag (target/checkout if is still around, otherwise a new one):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"> $ export site=# your checkout of (https://svn.apache.org/repos/asf/felix/site/trunk/content)
$ export obr=${site}/obr
$ mvn clean install \
org.apache.felix:maven-bundle-plugin:deploy \
-DprefixUrl=https://repo1.maven.org/maven2 \
-DremoteOBR=releases.xml \
-DaltDeploymentRepository=apache.website::default::file:///${obr}
$ svn commit -m"..." ${obr}/repository.xml</code></pre>
</div>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
the following about the site is wrong and needs to be rewritten
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>After committing the site must be published.
If you release to OBR before <a href="#_update_the_site">updating the site</a> you can defer publishing until after that.
Otherwise publish the site by visiting the <a href="https://cms.apache.org/felix/publish">Site Publication</a> link.</p>
</div>
<div class="paragraph">
<p>The <a href="https://felix.apache.org/obr/releases.xml">releases</a> page is updated immediately.</p>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
the project building the bundle must use the link:{{ maven-bundle-plugin.path }}[{{ maven-bundle-plugin.headers.title }}] and use a version equal to or higher than 1.4.2.
</td>
</tr>
</table>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
with Maven 3, you must add an extension to your <code>&lt;build&gt;</code> providing the SCP/SSH protocol:
</td>
</tr>
</table>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs" data-lang="xml"> &lt;build&gt;
...
&lt;extensions&gt;
&lt;extension&gt;
&lt;groupId&gt;org.apache.maven.wagon&lt;/groupId&gt;
&lt;artifactId&gt;wagon-ssh&lt;/artifactId&gt;
&lt;version&gt;1.0-beta-6&lt;/version&gt;
&lt;/extension&gt;
&lt;/extensions&gt;
&lt;/build&gt;</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="_update_the_site"><a class="anchor" href="#_update_the_site"></a>Update the Site</h3>
<div class="paragraph">
<p>The appropriate parts of the website are in the <a href="https://github.com/apache/felix-antora-site" class="bare">https://github.com/apache/felix-antora-site</a> repository or the Apache "original" copy.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Update the news section on the website at <a href="../news.html" class="page">News</a>;</p>
</li>
<li>
<p>Update the appropriate entry in at modules/ROOT/examples/downloads.yml[] to point to the new release;</p>
</li>
<li>
<p>Commit your changes and push to GitHub (or the Apache mirror);</p>
</li>
<li>
<p>The published site will be updated by the Jenkins site build jobs.</p>
</li>
</ol>
</div>
<div class="paragraph">
<p>For the last two tasks, it&#8217;s better to give the mirrors some time to distribute the uploaded artifacts (one day should be fine).
This ensures that once the website (news and download page) is updated, people can actually download the artifacts.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_update_jira"><a class="anchor" href="#_update_jira"></a>Update JIRA</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Go to <a href="https://issues.apache.org/jira/secure/project/ViewProject.jspa?pid=12310100">Admin</a> section on the FELIX JIRA and mark the Y.Z version as released - create version Y.Z+1, if that hasn&#8217;t already been done.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_publish_generated_documentation"><a class="anchor" href="#_publish_generated_documentation"></a>Publish Generated Documentation</h2>
<div class="sectionbody">
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
This doesn&#8217;t seem to relate well to the state of the CMS site.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>This procedure applies currently only to the <code>maven-bundle-plugin</code>:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Checkout the release tag of the plugin</p>
</li>
<li>
<p>Run <code>mvn clean package site</code></p>
</li>
<li>
<p>Clone this <a href="https://github.com/apache/felix-antora-site.git" class="bare">https://github.com/apache/felix-antora-site.git</a> repository.</p>
</li>
<li>
<p>Create a new directory for the new version <code>modules/ROOT/attachments/components/bundle-plugin-archives/bundle-plugin-&lt;version&gt;</code>.</p>
</li>
<li>
<p>Run <code>git rm modules/ROOT/attachments/components/bundle-plugin/*</code>.</p>
</li>
<li>
<p>Copy the maven-generated <code>target/site</code> contents to the <code>bundle-plugin</code> and <code>bundle-plugin-&lt;version&gt;</code> directories.</p>
</li>
<li>
<p><code>git add</code> the new content.</p>
</li>
<li>
<p>Commit and push.</p>
</li>
</ol>
</div>
<div class="sect2">
<h3 id="_previously_undocumented_apidocs"><a class="anchor" href="#_previously_undocumented_apidocs"></a>Previously undocumented apidocs</h3>
<div class="paragraph">
<p>Several subprojects appear to have generated javadoc for various versions under <code>modules/ROOT/attachments/apidocs</code>.
There are no evident instructions on when or how to update these.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_create_an_announcement"><a class="anchor" href="#_create_an_announcement"></a>Create an Announcement</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-text hljs" data-lang="text">To: "Felix Users List" &lt;users@felix.apache.org&gt;
Subject: [ANN] Felix XXX version Y.Z Released
The Felix team is pleased to announce the release of Felix XXX version Y.Z
&lt;&lt;insert short description of the sub-project&gt;&gt;
https://felix.apache.org/site/apache-felix-XXX.html
This release is available from https://felix.apache.org/site/downloads.cgi and Maven:
&lt;dependency&gt;
&lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
&lt;artifactId&gt;org.apache.felix.XXX&lt;/artifactId&gt;
&lt;version&gt;Y.Z&lt;/version&gt;
&lt;/dependency&gt;
Release Notes:
&lt;&lt;insert release notes in text format from JIRA&gt;&gt;
Enjoy!
-The Felix team</code></pre>
</div>
</div>
<div class="paragraph">
<p>Remember to forward this announcement to <code>users@felix.apache.org</code> - try <em>not</em> to cross-post (CC:) announcements to both user and dev lists.</p>
</div>
<div class="paragraph">
<p><em>Remind Carsten about this release when he writes the next board report ;)</em></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_appendix_a_create_and_add_your_key_to_httpswww_apache_orgdistfelixkeys"><a class="anchor" href="#_appendix_a_create_and_add_your_key_to_httpswww_apache_orgdistfelixkeys"></a>Appendix A: create and add your key to <a href="https://www.apache.org/dist/felix/KEYS" class="bare">https://www.apache.org/dist/felix/KEYS</a></h2>
<div class="sectionbody">
<div class="paragraph">
<p>If you are using a *nix system with a working OpenSSH, GnuPG, and bash you can create and add your own key with the following command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"> $ gpg --gen-key</code></pre>
</div>
</div>
<div class="paragraph">
<p>When gpg asks for e-mail linked the key you <em>MUST USE</em> the &lt;committer&gt;@apache.org one.
When gpg asks for comment linked the key you <strong>SHOULD USE</strong> "CODE SIGNING KEY".&lt;/committer&gt;</p>
</div>
<div class="paragraph">
<p>Second, <em>Add the key to</em> (<a href="https://dist.apache.org/repos/dist/release/felix/KEYS" class="bare">https://dist.apache.org/repos/dist/release/felix/KEYS</a>).</p>
</div>
<div class="paragraph">
<p>Only PMC members can commit to files in the dist area, so you should do the key export in the shell commands below, and send the results along to a friendly PMC member for assistance.</p>
</div>
<div class="paragraph">
<p>Type the following command replacing the word e-mail with your Apache&#8217;s one (&lt;committer&gt;@apache.org).
To update you have to checkout the Felix dist release repository (you also need this to publish a release):&lt;/committer&gt;</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"> $ (gpg --list-sigs e-mail &amp;&amp; gpg --export --armor e-mail) &gt; toadd.key</code></pre>
</div>
</div>
<div class="paragraph">
<p>Provide the file to a PMC member, who will:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash"> $ svn checkout https://dist.apache.org/repos/dist/release/felix felix-dist
$ cat toadd.key &gt;&gt; felix-dist/KEYS
$ scn commit -m"KEYS += &lt;committer&gt;" felix-dist/KEYS</code></pre>
</div>
</div>
<div class="paragraph">
<p>You are now <em>DONE</em> and the changes are visible on <a href="https://www.apache.org/dist/felix/KEYS" class="bare">https://www.apache.org/dist/felix/KEYS</a>.</p>
</div>
</div>
</div>
</article>
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
</div>
</main>
</div>
<footer class="footer">
<p>Content licensed under AL2. UI licensed under MPL-2.0 with extensions licensed under AL2</p>
</footer>
<script src="../../_/js/site.js"></script>
<script async src="../../_/js/vendor/highlight.js"></script>
</body>
</html>