Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Getting started on ECF as a developer

Hi Kunal,

On 1/11/2014 5:33 PM, Kunal Suri wrote:
Sir/Ma'am,
                I am an intermediate Java programmer. I want to work on
ECF. I have read the bugs on [1]. While most of the terminologies used in
the code make sense, I am not sure if I have the knowledge to make a
fruitful contribution (e.g. resolve at least one bug).

First...thanks for offering to contribute. Second, I would bet that you do have the knowledge to make a fruitful contribution for two reasons: 1) There are many things that constitute a fruitful contribution (e.g. coding, bug fixing, working on examples/tutorials, work on documentation...release engineering...even helping with project management tasks; 2) I believe that a willingness to learn new things is more important than what you know now...so even if you don't have all the necessary knowledge, you can acquire it :).


Can you tell me about the technical prerequisites for working on ECF? I
have a decent grasp of concepts like interfaces, inner classes, exceptions
and debugging, generics & collections, multithreading and I/O Streams. Do I need to learn some other topic(s) as well or are these enough to (at least)
get started?

These are enough to get started I would say, although here are some additional areas that would be useful to learn some about (not necessarily prior to contributing...but perhaps as part of/during your contribution):

1) OSGi (Open Services Gateway Interface):   http://www.osgi.org.
2) OSGi Remote Services. Two APIs within the suite of APIs that ECF consists of...discovery and remote services...are use to implement a specification within OSGi R5 called 'OSGi Remote Services'. We/I can point you directly to resources for OSGi Remote Services...as well as the relevant parts of the ECF implementation of OSGi Remote Services. So if you don't know where to find such resource, please just ask. 3) Open Source Teams. It's always helpful to be familiar with 'how things work' on an Open Source project...i.e. to have some experience on such a project. But if this is your first open source project then that's OK too. A general rule though...as an open source project, we do everything that we can in the open...with lots of public discussion 4) Eclipse. It's generally helpful to be knowledgeable about Eclipse...both as a user and as a plugin developer. But there are parts of ECF (e.g. OSGi Remote Services) which is *not* bound specifically to Eclipse...and can/does run within OSGi-based servers, Android clients, and/or Eclipse RCP (Rich Client Platform) applications 5) Tools: In addition to Eclipse, it will be very helpful for you to be familiar with (as a user) the following development services/tools:
    a) Bugzilla.   http://bugs.eclipse.org
b) Git...and eGit...i.e. Eclipse's git implementation...and we are using Gerrit (git-based code review) more and more also. c) Wiki Editing...specifically MediaWiki...which is used the the Eclipse Foundation: http://wiki.eclipse.org/ECF d) Build, test, release engineering services and tools. For example, we currently use Jenkins + Buckminster for our own automated build and test system, and we are almost always in need of technical work...to add new projects, create new types of distributions, etc. 6) Networking and Distributed Systems. Obviously since ECF is a set of communications frameworks, knowing about networking concepts (protocols, socket programming, rest, rpc, http/https, servlet, web application servers, etc., etc) as well as more advanced concepts...is very helpful.

Again...it's not at all a prerequisite that you know all these things prior to beginning contributing to ECF...it's my expectation that as you contribute you can/will/should learn about these and other things (e.g. other EF and/or OSGi projects).

One thing to think about...and communicate about (on this mailing lists): what parts of ECF...or more generally communications software most interest you? Are you interested in our work with OSGi standards? (e.g. remote services, etc), or with Eclipse-based tooling for collaboration (e.g. shared editing), user interface development?, server development, testing...etc.

And please feel free to ask a lot of questions. That's also a big part of being an open project :).

Thanks,

Scott




Back to the top