| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width,initial-scale=1"> |
| <title>Apache James Project guidelines :: Apache James</title> |
| <meta name="generator" content="Antora 3.1.2"> |
| <link rel="stylesheet" href="../../../_/css/site.css"> |
| </head> |
| <body class="article"> |
| <header class="header"> |
| <nav class="navbar"> |
| <div class="navbar-brand"> |
| <a class="navbar-item" href="https://james.apache.org"><img src="/_/img/james.svg" alt="james logo"> Apache James</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="#">Home</a> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a class="navbar-link" href="#">Products</a> |
| <div class="navbar-dropdown"> |
| <div class="navbar-item"><strong>James server</strong></div> |
| <a class="navbar-item" href="https://github.com/apache/james-project">Repository</a> |
| <a class="navbar-item" href="https://issues.apache.org/jira/projects/JAMES/issues">Issue Tracker</a> |
| <hr class="navbar-divider"> |
| <a class="navbar-item" href="https://james.apache.org/mime4j/index.html">Mime4J</a> |
| <a class="navbar-item" href="https://james.apache.org/jsieve/index.html">jSieve</a> |
| <a class="navbar-item" href="https://james.apache.org/jspf/index.html">jSPF</a> |
| <a class="navbar-item" href="https://james.apache.org/jdkim/index.html">jDKIM</a> |
| <a class="navbar-item" href="https://james.apache.org/hupa/index.html">HUPA</a> |
| </div> |
| </div> |
| <div class="navbar-item has-dropdown is-hoverable"> |
| <a class="navbar-link" href="#">Community</a> |
| <div class="navbar-dropdown"> |
| <!-- Not ideal but dropping the version in the href requires tweaking james-projet docs module first --> |
| <a class="navbar-item" href="/james-project/3.6.0/community/mailing-lists.html">Mailing lists</a> |
| <a class="navbar-item" href="https://gitter.im/apache/james-project"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="logo-gitter-sign" data-v-44ebcb1a=""><rect x="15" y="5" width="2" height="10"></rect> <rect x="10" y="5" width="2" height="20"></rect> <rect x="5" y="5" width="2" height="20"></rect> <rect width="2" height="15"></rect></svg> Gitter</a> |
| <a class="navbar-item" href="https://twitter.com/ApacheJames"> |
| <span class="icon"> |
| <svg aria-hidden="true" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"> |
| <path fill="#57aaee" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path> |
| </svg> |
| </span> Twitter |
| </a> |
| <a class="navbar-item" href="#"> <svg class="octicon octicon-mark-github v-align-middle" viewBox="0 0 16 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> Github</a> |
| </div> |
| </div> |
| <!-- <div class="navbar-item"> |
| <span class="control"> |
| <a class="button is-primary" href="#">Download</a> |
| </span> |
| </div> --> |
| </div> |
| </div> |
| </nav> |
| </header> |
| <div class="body"> |
| <div class="nav-container" data-component="james-project" data-version="3.6.0"> |
| <aside class="nav"> |
| <div class="panels"> |
| <div class="nav-panel-menu is-active" data-panel="menu"> |
| <nav class="nav-menu"> |
| <button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button> |
| <h3 class="title"><a href="../index.html">Apache James Server</a></h3> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="0"> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="1"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../concepts/index.html">Concepts</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="../concepts/user/index.html">User Model</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../concepts/mail/index.html">Emails</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="#mail/messages/index.adoc">mail/messages/index.adoc</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="#mail/messages/imf.adoc">mail/messages/imf.adoc</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="#mail/messages/mime.adoc">mail/messages/mime.adoc</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../concepts/protocols/index.html">Protocols</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/protocols/smtp.html">SMTP</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/protocols/pop.html">POP</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/protocols/imap.html">IMAP</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/protocols/jmap.html">JMAP</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/protocols/esmtp.html">ESMTP</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/protocols/lmtp.html">LMTP</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../concepts/storage/index.html">Storage</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/storage/mailbox.html">Mailboxes</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../concepts/storage/users.html">Users</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="../concepts/processing/index.html">Processing</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="../concepts/configuration.html">Configuration</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="../concepts/glossary.html">Glossary</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="0"> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="1"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/index.html">Servers</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/demo.html">Demo</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/5-minute-demo.html">Short Demo</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/15-minute-demo.html">Long Demo</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/basic/index.html">Basic</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/basic/context.html">Context</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/basic/objectives.html">Objectives</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/basic/concepts.html">Concepts</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/basic/architecture.html">Architecture</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/basic/conf/index.html">Configuration</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/basic/help.html">Help</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="../servers/extendable.html">Extendable</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/distributed.html">Distributed</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/distributed/objectives.html">Objectives and motivation</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/distributed/architecture/index.html">Architecture</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/architecture/consistency-model.html">Consistency Model</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/architecture/specialized-instances.html">Specialized instances</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/distributed/run.html">Run</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="../servers/distributed/run-docker.html">Run with docker</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/distributed/configure/index.html">Configuration</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="4"> |
| <button class="nav-item-toggle"></button> |
| <span class="nav-text">Protocols</span> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/imap.html">imapserver.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/jmap.html">jmap.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/jmx.html">jmx.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/smtp.html">smtpserver.xml & lmtpserver.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/smtp-hooks.html">Packaged SMTP hooks</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/pop3.html">pop3server.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/webadmin.html">webadmin.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/ssl.html">SSL & TLS</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <button class="nav-item-toggle"></button> |
| <span class="nav-text">Storage dependencies</span> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/blobstore.html">blobstore.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/cassandra.html">cassandra.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/elasticsearch.html">elasticsearch.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/rabbitmq.html">rabbitmq.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/tika.html">tika.properties</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <button class="nav-item-toggle"></button> |
| <span class="nav-text">Core components</span> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/batchsizes.html">batchsizes.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/dns.html">dnsservice.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/domainlist.html">domainlist.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/healthcheck.html">healthcheck.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/mailetcontainer.html">mailetcontainer.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/mailets.html">Packaged Mailets</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/matchers.html">Packaged Matchers</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/mailrepositorystore.html">mailrepositorystore.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/recipientrewritetable.html">recipientrewritetable.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/usersrepository.html">usersrepository.xml</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <button class="nav-item-toggle"></button> |
| <span class="nav-text">Extensions</span> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/vault.html">deletedMessageVault.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/extensions.html">extensions.properties</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/listeners.html">listeners.xml</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/spam.html">Anti-Spam setup</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/remote-delivery-error-handling.html">About RemoteDelivery error handling</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/collecting-contacts.html">Contact collection</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/collecting-events.html">Event collection</a> |
| </li> |
| <li class="nav-item" data-depth="5"> |
| <a class="nav-link" href="../servers/distributed/configure/dsn.html">ESMTP DSN support</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/distributed/operate/index.html">Operate</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/guide.html">Operator guide</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/logging.html">Logging</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/webadmin.html">WebAdmin REST administration API</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/metrics.html">Metrics</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/migrating.html">Migrating existing data</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/cli.html">Command Line Interface</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/operate/cassandra-migration.html">Cassandra migration</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="../servers/distributed/extending/index.html">Extending server behavior</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/extending/mail-processing.html">Custom mail processing components</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/extending/mailbox-listeners.html">Custom Mailbox Listeners</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/extending/smtp-hooks.html">Custom SMTP hooks</a> |
| </li> |
| <li class="nav-item" data-depth="4"> |
| <a class="nav-link" href="../servers/distributed/extending/webadmin-routes.html">Custom WebAdmin routes</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="../servers/test.html">Test</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="0"> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="1"> |
| <a class="nav-link" href="../customization/index.html">Customization</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="0"> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="1"> |
| <a class="nav-link" href="../development/index.html">Developer Guide</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item" data-depth="0"> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="1"> |
| <button class="nav-item-toggle"></button> |
| <a class="nav-link" href="index.html">Community</a> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="mailing-lists.html">Mailing lists</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="contributing.html">Contributing</a> |
| </li> |
| <li class="nav-item is-current-page" data-depth="2"> |
| <a class="nav-link" href="guidelines.html">Guidelines</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="download.html">Download releases</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="website.html">Building and publishing the website</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="release.html">Creating an official Apache James release</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <a class="nav-link" href="support.html">Professional support</a> |
| </li> |
| <li class="nav-item" data-depth="2"> |
| <button class="nav-item-toggle"></button> |
| <span class="nav-text">Apache Software Foundation</span> |
| <ul class="nav-list"> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/">ASF</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/foundation/getinvolved.html">Get involved</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/foundation/faq.html">FAQ</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/licenses/">Licenses</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/security/">Security</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
| </li> |
| <li class="nav-item" data-depth="3"> |
| <a class="nav-link" href="https://www.apache.org/foundation/thanks.html">Thanks</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </nav> |
| </div> |
| <div class="nav-panel-explore" data-panel="explore"> |
| <div class="context"> |
| <span class="title">Apache James Server</span> |
| <span class="version">3.6.0 Snapshot</span> |
| </div> |
| <ul class="components"> |
| <li class="component"> |
| <div class="title"><a href="../../../james-distributed-app/3.8.1/index.html">Apache James Distributed Server</a></div> |
| <ul class="versions"> |
| <li class="version is-latest"> |
| <a href="../../../james-distributed-app/3.8.1/index.html">3.8.1 SNAPSHOT</a> |
| </li> |
| </ul> |
| </li> |
| <li class="component is-current"> |
| <div class="title"><a href="../../3.8.1/index.html">Apache James Server</a></div> |
| <ul class="versions"> |
| <li class="version is-latest"> |
| <a href="../../3.8.1/index.html">3.8.1 SNAPSHOT</a> |
| </li> |
| <li class="version is-current"> |
| <a href="../index.html">3.6.0 Snapshot</a> |
| </li> |
| </ul> |
| </li> |
| <li class="component"> |
| <div class="title"><a href="../../../james-site/latest/index.html">Apache James Site</a></div> |
| <ul class="versions"> |
| <li class="version is-latest"> |
| <a href="../../../james-site/latest/index.html">latest</a> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </aside> |
| </div> |
| <main class="article"> |
| <div class="toolbar" role="navigation"> |
| <button class="nav-toggle"></button> |
| <a href="../../../james-site/latest/homepage.html" class="home-link"></a> |
| <nav class="breadcrumbs" aria-label="breadcrumbs"> |
| <ul> |
| <li><a href="../index.html">Apache James Server</a></li> |
| <li><a href="index.html">Community</a></li> |
| <li><a href="guidelines.html">Guidelines</a></li> |
| </ul> |
| </nav> |
| <div class="page-versions"> |
| <button class="version-menu-toggle" title="Show other versions of page">3.6.0 Snapshot</button> |
| <div class="version-menu"> |
| <a class="version" href="../../3.8.1/community/guidelines.html">3.8.1 SNAPSHOT</a> |
| <a class="version is-current" href="guidelines.html">3.6.0 Snapshot</a> |
| </div> |
| </div> |
| <div class="edit-this-page"><a href="https://github.com/apache/james-project/blob/james-project-3.6.0/docs/modules/community/pages/guidelines.adoc">Edit this Page</a></div> |
| </div> |
| <div class="content"> |
| <aside class="toc sidebar" data-title="Contents" data-levels="2"> |
| <div class="toc-menu"></div> |
| </aside> |
| <article class="doc"> |
| <h1 class="page">Apache James Project guidelines</h1> |
| <div id="preamble"> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>This document defines the guidelines for the Apache James Project. It includes definitions of how conflict is being |
| resolved by voting and who is able to vote.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The objective here is to avoid unnecessary conflicts over changes and continue to produce a quality system in a timely |
| manner. Not all conflict can be avoided, but at least we can agree on the procedures for conflicts to be resolved.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_people_places_and_things"><a class="anchor" href="#_people_places_and_things"></a>People, Places, and Things</h2> |
| <div class="sectionbody"> |
| <div class="sect2"> |
| <h3 id="_apache_james_project_management_committee"><a class="anchor" href="#_apache_james_project_management_committee"></a>Apache James Project Management Committee</h3> |
| <div class="paragraph"> |
| <p>The group of volunteers who are responsible for managing the Apache James Project. This includes deciding what is |
| distributed as products of the Apache James Project, maintaining the Project’s shared resources, speaking on behalf of |
| the Project, resolving license disputes regarding Apache James products, nominating new PMC members or committers, |
| and establishing these guidelines.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Membership in the Apache James PMC is by invitation only and must be approved by consensus of the active Apache James |
| PMC members. A PMC member is considered inactive by their own declaration or by not contributing in any form to the |
| project for over six months. An inactive member can become active again by reversing whichever condition made them |
| inactive (i.e., by reversing their earlier declaration or by once again contributing toward the project’s work). |
| Membership can be revoked by a unanimous vote of all the active PMC members other than the member in question.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_apache_james_committers"><a class="anchor" href="#_apache_james_committers"></a>Apache James Committers</h3> |
| <div class="paragraph"> |
| <p>The group of volunteers who are responsible for the technical aspects of the Apache James Project. This group has write |
| access to the appropriate source repositories and these volunteers may cast non-binding votes on any technical discussion.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Membership as a Committer is by invitation only and must be approved by consensus of the active Apache James PMC members. |
| A Committer is considered inactive by their own declaration or by not contributing in any form to the project for over |
| six months. An inactive member can become active again by reversing whichever condition made them inactive (i.e., by |
| reversing their earlier declaration or by once again contributing toward the project’s work). Membership can be revoked |
| by a unanimous vote of all the active PMC members (except the member in question if they are a PMC member).</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_mailing_list"><a class="anchor" href="#_mailing_list"></a>Mailing list</h3> |
| <div class="paragraph"> |
| <p>The Apache committers' primary mailing list for discussion of issues and changes related to the project |
| (<a href="mailing-lists.html#_server_developer_list" class="xref page"><a href="mailto:server-dev@james.apache.org">server-dev@james.apache.org</a></a>). Subscription to the list is open, but |
| only subscribers can post directly to the list.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_private_list"><a class="anchor" href="#_private_list"></a>Private list</h3> |
| <div class="paragraph"> |
| <p>The Apache James Project’s private mailing list for discussion of issues that are inappropriate for public discussion, |
| such as legal, personal, or security issues prior to a published fix. Subscription to the list is only opened to Apache |
| James PMC members and Apache Software Foundation Members.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_git"><a class="anchor" href="#_git"></a>GIT</h3> |
| <div class="paragraph"> |
| <p>All of the Apache James products are maintained in shared information repositories using GIT on git-wip-us.apache.org. |
| The Apache committers have write access to these repositories; everyone has read access via anonymous GIT.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_voting"><a class="anchor" href="#_voting"></a>Voting</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Any of the Apache James Committers may vote on any issue or action item. However, the only binding votes are those cast |
| by active members of the Apache James PMC; if the vote is about a change to source code or documentation, the primary |
| author of what is being changed may also cast a binding vote on that issue. All other votes are non-binding. All |
| committers are encouraged to participate in decisions, but the decision itself is made by those who have been long-time |
| contributors to the project. In other words, the Apache Project is a minimum-threshold meritocracy.</p> |
| </div> |
| <div class="paragraph"> |
| <p>The act of voting carries certain obligations — voting members are not only stating their opinion, they are agreeing |
| to help do the work of the Apache Project. Since we are all volunteers, members often become inactive for periods of |
| time in order to take care of their "real jobs" or devote more time to other projects. It is therefore unlikely that the |
| entire group membership will vote on every issue. To account for this, all voting decisions are based on a minimum quorum.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Each vote can be made in one of three flavors:</p> |
| </div> |
| <div class="paragraph"> |
| <p><strong>+1</strong> |
| Yes, agree, or the action should be performed. On some issues, this vote is only binding if the voter has tested the |
| action on their own system(s).</p> |
| </div> |
| <div class="paragraph"> |
| <p><strong>+-0</strong> |
| Abstain, no opinion, or I am happy to let the other group members decide this issue. An abstention may have detrimental |
| effects if too many people abstain.</p> |
| </div> |
| <div class="paragraph"> |
| <p><strong>-1</strong> |
| No. On issues where consensus is required, this vote counts as a veto. All vetos must include an explanation of why the |
| veto is appropriate. A veto with no explanation is void. No veto can be overruled. If you disagree with the veto, you |
| should lobby the person who casts the veto. Voters intending to veto an action item should make their opinions known to |
| the group immediately, so that the problem can be remedied as early as possible.</p> |
| </div> |
| <div class="paragraph"> |
| <p>An action item requiring consensus approval must receive at least 3 binding +1 votes and no vetos. An action item |
| requiring majority approval must receive at least 3 binding +1 votes and more +1 votes than -1 votes (i.e., a majority |
| with a minimum quorum of three positive votes). All other action items are considered to have lazy approval until |
| someone votes -1, after which point they are decided by either consensus or a majority vote, depending upon the type |
| of action item.</p> |
| </div> |
| <div class="paragraph"> |
| <p>All votes must be either sent to the mailing list for that action item.</p> |
| </div> |
| <div class="paragraph"> |
| <p>Votes are to remain open for 72 hours after which the developer who put forth the vote should tabulate the result and |
| send this to the mailing list. A developer should be sensitive to holidays that could dampen participation in the vote.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="_types_of_action_items"><a class="anchor" href="#_types_of_action_items"></a>Types of Action Items</h2> |
| <div class="sectionbody"> |
| <div class="sect2"> |
| <h3 id="_long_term_plans"><a class="anchor" href="#_long_term_plans"></a>Long Term Plans</h3> |
| <div class="paragraph"> |
| <p>Long term plans are simply announcements that group members are working on particular issues related to the Apache |
| software. These are not voted on, but group members who do not agree with a particular plan, or think an alternate plan |
| would be better, are obligated to inform the group of their feelings. In general, it is always better to hear about |
| alternate plans prior to spending time on less adequate solutions.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_short_term_plans"><a class="anchor" href="#_short_term_plans"></a>Short Term Plans</h3> |
| <div class="paragraph"> |
| <p>Short term plans are announcements that a developer is working on a particular set of documentation or code files, with |
| the implication that other committers should avoid them or try to coordinate their changes. This is a good way to |
| proactively avoid conflict and possible duplication of work.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_release_plan"><a class="anchor" href="#_release_plan"></a>Release Plan</h3> |
| <div class="paragraph"> |
| <p>A release plan is used to keep all the committers aware of when a release is desired, who will be the release manager, |
| when the repository will be frozen in order to create the release, and assorted other trivia to keep us from tripping |
| over ourselves during the final moments. Lazy majority decides each issue in the release plan.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_release_testing"><a class="anchor" href="#_release_testing"></a>Release Testing</h3> |
| <div class="paragraph"> |
| <p>After a new release is built, colloquially termed a tarball, it must be tested before being released to the public. |
| Majority approval is required before the tarball can be publically released.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_showstoppers"><a class="anchor" href="#_showstoppers"></a>Showstoppers</h3> |
| <div class="paragraph"> |
| <p>Showstoppers are issues that require a fix be in place before the next public release.</p> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="_product_changes"><a class="anchor" href="#_product_changes"></a>Product Changes</h3> |
| <div class="paragraph"> |
| <p>Changes to the Apache James products, including code and documentation, will appear as action items under several |
| categories corresponding to the change status:</p> |
| </div> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p><strong>Concept/Plan</strong> |
| An idea or plan for a change. These are represented as ADRs (Architectural Decision Records), stored under the <code>src/adr</code> |
| folder. Votes are being requested early so as to uncover conflicts before too much work is done. You can find more |
| information about this <a href="contributing.html#_idea_or_design_proposals" class="xref page">here</a>.</p> |
| </li> |
| <li> |
| <p><strong>Proposed Patch</strong> |
| A specific set of changes to the current product in the form of input to the patch command (a diff output).</p> |
| </li> |
| <li> |
| <p><strong>Committed Change</strong> |
| A one-line summary of a change that has been committed to the repository since the last public release.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>All product changes to the currently active repository are subject to lazy consensus. All product changes to a |
| prior-branch (old version) repository require consensus before the change is committed.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </article> |
| </div> |
| </main> |
| </div> |
| <footer class="footer"> |
| <p>This page was built using the Antora default UI.</p> |
| <p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p> |
| </footer> |
| <script id="site-script" src="../../../_/js/site.js" data-ui-root-path="../../../_"></script> |
| <script async src="../../../_/js/vendor/highlight.js"></script> |
| </body> |
| </html> |