Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

MicroProfile/ContributingGuidelines

< MicroProfile
Revision as of 04:17, 22 May 2017 by Mihalyi.omnifish.ee (Talk | contribs) (A section about CDI package naming)

Guidelines for contributing to the MicroProfile project

Ways to contribute

License of the contributed resources

All code and resources submitted via a pull request or directly (by a committer) should be licensed under the Apache License Version 2.0

License header

All files must include a license header. Moreover, a NOTICE file should exist for each repository. Author tags under a license header are optional and not mandated by the Eclipse foundation. It's strongly recommended to abide by the following templates:


A license header (included in the beginning of each file):

/**********************************************************************
* Copyright (c) {DATE} Contributors to the Eclipse Foundation
 *
 * See the NOTICES file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * Licensed 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.
*
* SPDX-License-Identifier: Apache-2.0
**********************************************************************/

{DATE} can either be a single year or a range of years separated by a comma.


NOTICE file (in the root of each repository):

SPDXVersion: SPDX-2.1
PackageName: Eclipse Microprofile
PackageHomePage: http://www.eclipse.org/microprofile
PackageLicenseDeclared: Apache-2.0
 
PackageCopyrightText: <text>
{Legal Entity 1}
{Legal Entity 2}
{Legal Entity 3}
...
</text>

The NOTICE file also has to be included in all distribution artifacts (JAR, WAR, etc.).



The templates were discussed with Eclipse mentors:

Deliverable group and artifact naming convention

We have decided here on the mailing list that we'll use the following convention for (maven) artifact and group names:

  groupId: org.eclipse.microprofile.spec for all spec subprojects,
  artifactId: microprofile-<subproject>-<submodule>

Examples:

    org.eclipse.microprofile.spec.config : microprofile-config-api  - for the Config API
    org.eclipse.microprofile.spec.config : microprofile-config-tck - for the Config TCK

    org.eclipse.microprofile.conference : microprofile-conference - for Conference Demo app
    org.eclipse.microprofile.conference : microprofile-conference-session - for the session module of the Conference app

The same project will have the same groupId.

Java package naming conventions

CDI API package names

The CDI API classes should be placed in a subpackage inject of the API. E.g., if the API package is named org.eclipse.microprofile.abcspec, then the package name for the CDI API should be org.eclipse.microprofile.abcspec.inject. This is to follow the convention used in javax.inject and javax.enterprise.inject.

The discussion about this convention is on the mailing list here.

Back to the top