The minimum minimum you need to work for an open source project

I recently started working on some open source project that I found relevant to my interests.

During this initiation period, I came across some terminology / things that I am not familiar with like configure, tool chain, binutils, etc., which I agree depends on the type of project you are working on.

Now my question is, are there any bare requirements that a developer needs to know before starting work on a project?

Any help / link would be greatly appreciated.

EDIT:

In most of the projects I've seen, I've seen the GNU setup and build system. If anyone is worried about this " Configuring and Building the GNU System " is a good place to start.

+2


source to share


8 answers


If it already existed, you will need to read their development docs (if any), learn how to use their source control system, and have the necessary tools to generate the code and run it.



If you have all this and knowledge of the code / language, then you just need some enthusiasm and some free time :)

+12


source


I would not define them as bare requirements in the sense in which they look like you are looking for. If you're a programmer, you already have (hopefully!) The self-learning and problem-solving characteristics that probably drove you to be a programmer in the first place.

You will never know "everything" and will probably learn something new all over the world. Hell, I got my current job without even hearing the word "Model-View-Controller" but got the concept straight away.



Your examples, toolchain and binutils are not complex concepts and a simple wiki article is enough.

+4


source


I would suggest downloading all the source code and making sure you can build it yourself as a first step.

Try to make sure you are familiar with the general design and documentation before trying to make any changes, to make sure you don't accidentally break anything the first time you change it!

The terms used are likely to depend on the technologies used, for example an open source project written in C ++ and running on Linux is likely to be very different from building C # /. NET applications to run on Windows.

+2


source


It depends on what time you participate. If you just want to contribute with a function, just get the tools to create a project, an editor to modify the file, and enough docs reading to find the injection point for your function. If you can find someone to help you get started, it should be pretty easy.

If you want to be committed to the project, I recommend the tutorial build tools, history and project goals. Just as current authors try to solve problems, their perspective in the project will help.

+2


source


I think it totally depends on the project. Most well-designed software projects will include:

  • What language (s) are they written in
  • In which developer environments (if any) are they configured for
  • What tools do you need to build / compile / run your project.
  • Test data with which you can test the software.

What are you working on? Are you sure they don't provide any information?

+1


source


I would say that the ability to understand all of the architecture, tools, and technologies for any project you work on is a must.

However, you tried to make this a general question that applies to any open source project. You answered that for yourself right?

which I agree depends on the type of project you are working on

+1


source


It depends on what you qualify as "working" on the project.

Most of the answers here show that you are coding (and your question hints in that direction), but there are things you can do to contribute to projects - like testing and documentation - this can be done without knowing how it is written program.

Now, for the coding aspect - if it's a smaller project, I will try to figure out what the other sponsor's motivation is and the grand plans / goals for the project. As with any team that comes in and tries to take things in a completely different direction than others are planning, even if you have good intentions, all sorts of problems can arise.

(and then there's technical advice that everyone else said ... control source, build, project architecture, tools used, etc.)

+1


source


It depends, as you say, on the project.

You will need to know how to work in this language, you will need to be familiar with the source control system they use (usually subversion). You will need to be able to build (usually Ant, often Maven).

0


source







All Articles