Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Nov 2008 11:26:07 -0800
From:      Tim Kientzle <kientzle@freebsd.org>
To:        Eitan Adler <eitanadlerlist@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: keeping track of local modifications
Message-ID:  <4932E8CF.9040501@freebsd.org>
In-Reply-To: <4931CB02.9070904@gmail.com>
References:  <4931CB02.9070904@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Eitan Adler wrote:
> As an aside can anyone point me to a relatively easy bug/feature that I
> can work on as a beginner C coder?

There are thousands of such; could you narrow it down
a little bit?  Are you interested in kernel hacking?
Device support?  Core libraries?  Networking?  Utilities?
Porting?

There are a couple of idea pages floating around and
many discussions in public mailing lists, blogs, and other
places:

* Search the source code for "TODO" or "XXX" to find
   comments about things that could use cleaning or
   improvement.  As a bonus, these usually comment things
   that someone thinks should be done, so you might have
   a little easier job selling your solution.

* Search the web for "FreeBSD GSoC" or "FreeBSD Summer of Code"
   to find ideas that are intended to be 3-month projects
   targeted at student-level developers.  You'll find links
   both to past projects (a fair number of which are still
   not yet entirely completed; maybe you could help?) and
   web pages and mailing list discussions about possible
   future projects.

* Search the web for "Junior Kernel Hacker" for other
   ideas that people have come up with over the years.

* Go to FreeBSD.org and skim the mailing list archives
   to find ideas and see what problems people are having.
   hackers@ and current@ are good starting points, some
   of the more specialized lists can also be interesting
   reading.  You might find problems that you can solve
   yourself or you might find an ongoing project that
   could use a little help.  Projects like FreeBSD work best
   when there are several people working on any given area.

Of course, how a lot of people get involved is simply
to install and use FreeBSD for a little while, and find
something that doesn't seem quite right:
* a hardware device on your system that's not fully supported?
* a utility that doesn't work the way you think it should?
* an application that doesn't run on FreeBSD as well as it
    does on some other platform?

In my case, I'd used FreeBSD for many years, decided I didn't
like the installer (still don't, by the way) but found that
writing a new installer was too big a project for the limited
time I had available.  So I cast around and found my niche
working on archiving tools.  (Maybe Ivan Voras is interested
in having help with his finstall project?)

As you figure it out, it's usually a good idea to ask
on mailing lists (hackers@ is good) or IRC to see if
other people are encountering the same problem or if
someone is already working on something.  That kind of
discussion can help you get more complete background
on a particular problem, including approaches that other
people have tried or even partial code for fixes that
were never completed.  (There's a lot of interesting
bits sitting around people's hard drives that are
worth the effort to study, test, and fix.)

Perhaps most importantly, by talking about your
work-in-progress, you have a better chance of connecting
with a committer who will help get your work into the
tree.  A lot of excellent ideas never make it into
FreeBSD because the author never talked to anyone
until they were "done" and the result couldn't really fit
into FreeBSD correctly without a lot more work.

On this latter point, it can help to read carefully
through old commit logs, study past work in that area,
and ask questions specifically of developers who have
done work in that area.  (Though it's usually better to
ask first in a public forum like hackers@ or current@;
individual developers are sometimes very busy or on
vacation or just slow to respond for various reasons.)

Most importantly, have fun and remember that most of us are
volunteers who enjoy using and working on FreeBSD in our (often
quite limited) spare time.  On the one hand, that sometimes
makes us slow to answer:  If I only have a couple of hours
a week, I'd usually rather spend it coding than typing
long answers to questions that people could answer themselves.
On the other hand, it also means I enjoy talking about FreeBSD
and sometimes get carried away writing overly-long email
epics with lots of detail about stuff that noone really
cares about.  <grin>

Welcome to the zoo!

Tim

P.S.  libarchive has a number of mid-sized projects that
I'd like to see done, including improvements to the ISO
reader (tar's ability to read ISOs is a popular feature
that merits some additional work), RMT support for tar and
cpio, a pax front-end, an ISO writer, and a bunch of work
to identify common functions in tar and cpio and find clean
ways to move them into libarchive so they can be effectively
shared.  This last in particular doesn't require complex
coding since the core functionality is already written,
but does require a lot of care with library API design
(a subject about which I have strong opinions) and
refactoring existing code.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4932E8CF.9040501>