I’d suggest installing Haiku first (nightly or Beta4) to familiarize yourself with the OS. You can install it on a spare machine if you have one or, like @PulkoMandy mentioned, install it on your windows machine in a virtual machine (VMware Player, VirtualBox, HyperV). You can find configuration details here: Virtualizing Haiku | Haiku Project.
Also has the advantage of having all the necessary development tools already installed. Haiku development is mostly in C++, if you’re not yet familiar with it yet there are some beginner tutorials here: Learning to Program with Haiku | Haiku Project
To get started with contributing you can pick some easy tasks from Haiku’s bugtracker or get involved with one of the apps on HaikuArchives (Haiku Software Archives · GitHub), a collection of applications for Haiku.
Thanks for your reply. It helps me a lot. Sorry for my bad English.
I set up my system on VM with haiku.
Go through beginner tutorials. I am familiar with C++ so I have no problem with this. Haiku API was new to me.
Now, I am going to go through various repositories to understand them and find improvements.
Currently, I have involved in Calendar application. Going through the codebase.
Now, Figuring out
→ How to understand a large number of files?
→ If I make a clone of the repo and changes in the codebase How to test?
Since you’re familiar with C++ I guess you are not asking how to compile the program. This would be a simple “make” in most cases, some Haiku apps are also using jam as a build system. It’s usually explained in the readme.md file.
How you are actually testing your changes depends on the program and what changes you have made. Some apps make use of testing frameworks, others do not. If you need to debug something, familiarize yourself with Haiku’s debugger, it’s really worth it.
I’m not familiar with the Calendar source code, it seems to be a rather large codebase. I’d say just dive into it, and ask for help if you don’t understand something specific.
If you install HaikuPorter, it will build recipe files from an automated process. It downloads and installs any dependencies required for the build process including GCC, CMake, Make, NinjaBuild and so on. It also is part of the package manager system. Getting familiar with HaikuPorter recipes is probably the most impotant thing you can learn about code creation on Haiku.
If you are going to work on the sourcecode of one application, HaikuPorter is not needed at all. It is much easier to just build and run that application locally without making any package. So, no, for code creation it isn’t important at all. Especially for apps like Calendar which already have a package, updating that will be very easy.