How to join/contribute

Topics: General Discussion, READ FIRST: If Thinking of Joining
Jan 5, 2013 at 1:16 AM
Edited Jan 7, 2013 at 3:46 PM

Before joining the Family Lines project we require that you answer the following questions.  We ask them to determine your level of experience and area(s) of interest:

  1. How much and what kind of experience do you have with C#?
  2. How familiar are you with C# 4.0?
  3. Have you worked with WPF?
    • If so, how long and it what manner?
  4. What interests you about the project?
  5. Are you interested in a particular area(s) of coding?
  6. Are you fluent in language(s) other than English? (for localization support?
  7. Do you have any knowledge/experience in family research or genealogy?
    • This is not required, but if you have some familiarity it would be helpful in genealogy related coding, i.e., the GEDCOM routines.

All candidates will be expected to do some preliminary tasks and email the code to the project coordinators and must be willing to be contacted. 

Email, your answers to the questions above to CodeFuglee and notonyournelly.

Thanks for your interest in joining our project,

Brian Belden
aka CodeFuglee

Feb 17, 2013 at 10:48 PM
Edited Mar 18, 2013 at 5:56 PM
A wee reminder. Project membership is not required to get the source code or even to participate in the project!

Open source is open. The project code and files are available in the repository: feel free to grab them, play with the code, see what makes it "tick". If you have any ideas, comments, code or possible bugs to share, please post in the discussion area! If you have any questions about the project/code, also post there and we'll do our best to answer your questions.

If you want to just grab the code, click on the 'Source Code' tab above, and use the 'Download' link to grab the latest revision.

How to access a project's SVN repository is one of the more poorly documented aspects of Codeplex. The Family Lines SVN repository URL is:

Credentials should not be required for read access. If you have problems, contact us!

Kevin Routley
aka notonyournelly
Mar 3, 2013 at 6:31 PM
Note: this pertains to programmers. If you want to do a translation, documentation, testing, or some such activity, nothing here applies ... Just email us.

Someone posted a question in the forum asking how to join an open source project. For me, two replies summed up the answer perfectly. The full post is here: but these I think are the relevant bits:

"By way of prep, learn your way around the software - build it on your home machine, play with it, see what different changes do, and so forth. Screw things up, see what happens. When you know your way around the innards, find a bug on the issues list and make a fix that seems to work. Repeat - basically, you want to know what you're talking about when you talk about this code."

"In order to get into a project you have to first realize that these devs have committed considerable time to this project and it's more or less a child to them. They probably won't like some random guy coming in asking how they can help with no idea what in the world the software even really does. "

"The goal is to know the project as well as they do, read the release notes, find the bugs, and propose solutions to those bugs. If you have a solid working fix, you're valuable. If you want to completely overhaul their program and give it a fresh coat of paint, there's the door."

In case anyone wonders how they should start and what sort of people we're looking for. I'm not going to suggest a candidate must be a complete expert on every aspect of Family Lines. There is some complex history behind the program and the code reflects that. A useful candidate will be willing to find their way around at least some parts of the code, be able and willing to work on tasks as defined by the coordinator's plans or make bug-fixes. If you want guidance or suggestions, just ask.

Mar 17, 2013 at 5:48 PM
Edited Mar 25, 2013 at 8:30 PM
Suggestions for Ways to Contribute

Even if you can't write C# or WPF, you could lend us a hand. Here are a few ideas to hopefully inspire you! Give any of these a try and post or email your feedback or ideas!

To grab the code, including the language and skins RESX files, use the 'Source Code' tab above, then the 'Download' link for the latest revision. Or access the subversion URL as posted on the main project page.


Try exercising every feature of Family Lines. Does anything behave 'counter-intuitively'? Anything crash or produce incorrect results? Post any issues.

  • How does someone get started making a family tree?
  • How to use some of the more advanced features?

We could use "better" or "more complete" samples. Familyx or GED files. Some useful things to have:
  • More events / location / date information (e.g. marriage info; birth/date info)
  • Photos
  • Sources/Repositories
  • Stories/Attachments
  • A more "varied" family history: divorces, widows, widowers, adoptions, children-out-of-wedlock, polygamy, polyandry, ...
You could create a "fake" tree, or find one of the public-domain "historical" trees and add photos/documents and so on.

  • Translate new strings in the string resource files for any existing language.
  • Translate the string resources to a new language.
  • Review existing translations for correctness.
  • Examine the GUI in an existing language for problems. Is text 'chopped off'? Are there any grammatical problems? Report any errors.
  • Examine the code for any embedded strings. Report any problems.
Competitive Analysis

Look at free/open-source genealogy programs. What features do they have which would be useful to have in Family Lines?


We could use a variety of "skins" and optionally a more up-to-date "look".
  • Create variants on the existing black/silver skins: blue, green, 'parchment', ...
  • New themes: Windows 7 style, Windows 8 style, ... Ideally at least both "light" and "dark" variants.

Design some reports.
  • Assuming HTML format, what might these reports look like? If possible, mock up the HTML.
  • What data fields should be included?
  • What options would be useful (which people to include, what other data to include, etc)?