# Contribute in to a Coding,? Yes, How ..?



## internisiti (Oct 31, 2009)

Dear guys,
Yes, Contribution, i would like to do that,
I would really to apply some my programming knowledge on any kind of small project,
I know it is a lot information that disscused about it in the Claude, but i just need to have some suggestion from you all?
How do you start your contribution a project especially FreeBSD related ?
I am really to be part of any kind project
Please, please guide me.:stud


----------



## vermaden (Oct 31, 2009)

IMHO for a start check current projects related to FreeBSD, like porting some applications or something like that, check *freebsdfoundation.org* and *quaterly status reports* and *wiki.freebsd.org* for example projects.

also remember to check *FreeBSD Developers Handbook*.


----------



## joel@ (Nov 1, 2009)

Take a look at the bug database. Find a problem report and try to diagnose and fix the problem. Here's for example a list of all open bugs in the 'bin' category:
http://www.freebsd.org/cgi/query-pr-summary.cgi?category=bin

There are also plenty of TODO-lists on the FreeBSD wiki, for example these:
http://wiki.freebsd.org/SMPTODO
http://wiki.freebsd.org/Networking

Reading the hackers@ and arch@ mailing lists can also give you a few ideas.

Before starting anything big, make sure you ask a developer for advice (in case someone else is already implementing the same stuff)


----------



## internisiti (Nov 2, 2009)

Thank you very much for the advices,
I am really interesting with this link, http://www.freebsd.org/cgi/query-pr-summary.cgi?category=bin .
I never know of existing that link, pardon me for that.

Btw, dont you think wiki.freebsd.org contain quite big project, what i am saying , is it just not place for beginner to start to contribute.
I thought i could get some small project,where i might get the idea how contribute/work with OSS or freebsd project is.


----------



## DutchDaemon (Nov 2, 2009)

Do you want to contribute code to FreeBSD projects, or do you want FreeBSD to teach you how to code?


----------



## aragon (Nov 2, 2009)

There are already a few small projects that joel@ linked to that beginners can get started with quite easily.  If you're not a programmer, then you need to look for non programming projects, such as internationalisation and documentation.

If you're wanting to program and the projects joel@ linked to seem too hard, well, the FreeBSD project isn't a school.  If you aren't able to program you need to buy a book or attend a programming course before you can begin contributing with code.

Why do the projects linked to seem big to you?  What specifically don't you understand?


----------



## internisiti (Nov 3, 2009)

@dutchdaemon.
I do really want to contribute to FreeBSD, I am just to get clarified, is this really place(wiki.freebsd.org) where you all 'start' to contribute in to freeBSD project?

@aragon.
I believe the project specified in wiki.freebsd.org, are not just matter of technical part(coding) but we need to understand what is going on project, understanding some theoretical part of the project, to get the logic to solve the problem.
Thus why I say it is big for me, because I need to have much time to study the theory parts, which might be I nvr known at all before.
I thought to start to contribute a project is just like to start using a new kind of programming language,which you start from the 'Hello World' example.  Just want to get to idea how this thing are workin.
If I am wrong, please do correct me.
Again, is wiki.freebsd.org your place to start to contribute in coding?


----------



## joel@ (Nov 3, 2009)

If you really want to start small, fixing PR's in the bug database is the way to go. That way you'll learn how the project works and how to submit patches. There is a crapload of stuff that are important for new hackers to know about, like for example style(9) but you'll probably pick up all that knowledge on the way.


----------



## plamaiziere (Nov 3, 2009)

DutchDaemon said:
			
		

> Do you want to contribute code to FreeBSD projects, or do you want FreeBSD to teach you how to code?



Both, I guess. There is a lot of things to learn from the FreeBSD code.


----------



## rhyous (Nov 3, 2009)

I have actually spent days trying to figure out how to get into a development project.

It is not easy to figure out how to contribute.  It is easier to find a bug.

It also takes time to build a dev environment, and it can take a long to figure out.  

I am not one to complain without providing possible solutions...Now, I haven't tried in about two years so maybe some of what I am suggesting already exists.

My Recommendations:

Create a FreeBSD VMWare image that has a dev environment set and is ready to open code and debug.
Provide a web page dedicated to contributing and make it one of the Menu items at the top of the FreeBSD.org page menu, the page would include:
a. The link to the VMWare image.
b. Steps for creating the VMWare image so someone can create their own build environment.
c. Three examples of opening and debugging code. A simple example, an intermediate example, and a complex example.
d. Have a forum section under the "Development" section that is for "Joining Projects / Contributing Code / Fixing bugs.
e. Of course a list of all projects.
f. A way to recommend/submit a new project.
If you hold someones hand the first few times, they can usually run on their own after that.

The easier it is for someone to contribute, the more likely it is that you get contributors.


----------



## rhyous (Nov 3, 2009)

So I had to go look and found that my #2e recommendation already exists.

On the home http://www.freebsd.org home page (or any page with the menu bar), click on Developers | Project Ideas.

Like I said, it has been a while since I looked.

The other steps though were not easily found and a VMWare build environment would help any non-hardware related project.


----------



## Alt (Nov 7, 2009)

I think its will be a good idea - make a small/clear/fast manual in 2-3 pages "How to become a FreeBSD developer". It must introduce things like 
- How the develop job is organised. How it go from PR tasks to pathes/fixes and how it going to done from plan to release.
- Which mail list to subcribe and how to use info from it.
- Where to get tasks and how to post job that done.
- How to advance in developer status, how to get commit bit etc

Also, i think there is must be 1-2 people that works as 'manager' for new developers, giving answers to small question like 'how to commit a port update/patch' etc. 
My friend made a package to update qutIM messenger, which is totally outdated in ports tree. He cant know where to post his path since mantaier is not answering. He must to read many docs just for post his update?

I think going this way will lead to many new developers contributing code and their ideas.


----------



## dennylin93 (Nov 8, 2009)

These might help:

Committer's Guide
http://www.freebsd.org/doc/en/books/developers-handbook/
FreeBSD Porter's Handbook
FreeBSD Documentation Project Primer for New Contributors

From the Porter's Handbook:


> Changes to the port will be sent to the maintainer of a port for review and approval before being committed. If the maintainer does not respond to an update request after two weeks (excluding major public holidays), then that is considered a maintainer timeout, and the update may be made without explicit maintainer approval. If the maintainer does not respond within three months, then that maintainer is considered absent without leave, and can be replaced as the maintainer of the particular port in question.



Send a PR with the patch and a committer will take care of it. New FreeBSD committers have a mentor that approve their commits.


----------

