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

Difference between revisions of "Architecture Council/Contributor Guide Recommendation"

m (Contributing Code)
(Replaced content with "The EMO has moved this content to the [https://www.eclipse.org/projects/handbook/#legaldoc-contributor Eclipse Project Handbook].")
 
(16 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<font size="+1"><b><font color="orange">Under Construction: </font>This page is still under construction. It should provide a recommendation for new projects to provide a Gontributor Guide. See {{bug|397644}} for more information.</b></font>
+
The EMO has moved this content to the [https://www.eclipse.org/projects/handbook/#legaldoc-contributor Eclipse Project Handbook].
 
+
= Contributor Guide - Motivation =
+
Having concise and clear information how to get involved in a project is very important for building the community around a project.
+
Therefore, to simplify adoption and encourage contributions it is recommended that projects maintain a "Contributor Guide" page.
+
 
+
= What a Contributor Guide Should / Could Contain? =
+
Below are some hints what a contributor guide should contain.
+
 
+
== Setting up the development environment ==
+
Make it easy for people who got interested in your project to start playing with it
+
* Provide a clear description how to get the sources in the IDE
+
* Describe how to setup any additional tools needed for the development
+
* Describe what the dependencites of the project are, or even better how to easily get all the necessary libraries the project depends on. Provide for example a target platform definition (see Tools below)
+
* Describe any necessary steps to build the artifacts of the project (e.g. bundles, features, standalone products)
+
 
+
== Contributing Code ==
+
Make it very clear what are the steps a contributor needs to follow, so that his contribution reaches the project and may be accepted
+
 
+
* Include very specific instructions on how contributions are accepted. For example, if the project accept contributions via Gerrit, describe the mechanics of using Gerrit for the contribution
+
* Indicate whether or not the project will accept GitHub pull requests. If yes, then describe the necessary steps to have the project honor those requests.
+
* Describe the leagal part of the proccess for accepting contributions, e.g. the three questions which should be answered, references to the [http://www.eclipse.org/legal/CLA.php CLA] / [http://www.eclipse.org/legal/CoO.php CoO] (both still drafts)
+
* Provide a CONTRIBUTING file in the root of each repository
+
** Due to the nature of Git, repositories get copied around a lot. Mirrors are hosted in various locations that may or may not have a connection back to the project website. There is an evolving standard of putting "CONTRIBUTING" file in the root of each repository
+
** Keep the file in a "standard" location - the root of the repository. This could allow tools like the PMI to magically show the content on the project page
+
** Keep the guide as concise as possible - it should contain a few words and a link to the website/wiki for details and more information
+
** Use plain text, more complex structures can be provided in a Wiki
+
* Describe any further project specific rules, which the contributors should know, for example:
+
** preferences on code quality
+
** code formatting
+
** processes for code review
+
* Projects may slightly different rules for contributing to different repositories. Make this clear to the contributors.
+
 
+
== Ideas what could be contributed to the project ==
+
It may help people who would like to contribute to the project if you list some ideas for improvements which the team already knows, some areas where help is needed.
+
 
+
= Tools =
+
This section contains brief information on concrete tools, frequently mentioned in the contribution guides
+
== Getting the Sources ==
+
* For projects in Git usually [http://www.eclipse.org/egit/download/ EGit] is used. See the [[EGit|Contributor_Guide#From an installed EGit plugin]]
+
* For projects in SVN usually [http://www.eclipse.org/subversive/ Subversive] is used. Project Set files (psf) may also be provided.
+
 
+
== Using an Explicit Target Platform Definition ==
+
One technical possibility for projects to simplify the handling of dependencies is to provide one or more target definition files.
+
Such files can be stored in the repository together with the sources and should be promoted on the "How to Contribute" page.
+
 
+
Using a target definition file, one can setup the workspace with a few steps:
+
* clone (or checkout) source from the repository
+
* import the projects (usually at this time there are compiling errors because of missing dependencies)
+
* open the target definition file and set it as target platform for the workspace - all dependencies are resolved
+
* start develpoing
+
+
In addition, projects using Tycho as a build technology can use exactly the same target definition during the build. This guarantees that the dependencies used in the IDE and the ones fetched during the build are the same.
+
 
+
Target definition files should contain the strict necessary dependencies for the project to compile and execute. It's recommended setting includeSources attribute to true in .target files to provide to developers access to sources of the dependencies, when available, in their development environment (PDE) without effort; for Tycho builds, this attribute is ignored and does not add sources to the build target-platform.
+
Project could maintain several target defintions, for example to match several version of Eclipse.
+
 
+
= Examples =
+
There are many projects at Eclipse which provide a "How to contribute" description. Just to name a few examples:
+
* http://wiki.eclipse.org/EGit/Contributor_Guide
+
* http://wiki.eclipse.org/Linux_Tools_Project/Getting_Involved
+
* http://wiki.eclipse.org/index.php/Mylyn/Contributor_Reference#Getting_Started
+
* http://wiki.eclipse.org/Gyrex/Contributor_Guide
+

Latest revision as of 15:30, 18 May 2023

The EMO has moved this content to the Eclipse Project Handbook.

Back to the top