Want to maximize your chances of selection? Start early. I personally feel it’s really important to start early because it was a significant factor in my acceptance. I have seen some proposals being accepted even though the students started contributing in March (usually the deadline is in the last week of March), but that could only happen when you have a kickass proposal. I got involved in the community in Dec, and that gave me enough time to pick up the best project for me out of the ideas list, and also, I was able to submit around 30 PRs by the time of the application deadline, and around 22 got merged. You don’t have to necessarily submit these many PRs because quality PRs matter more. Note that mentoring organizations are always looking for long-term contributors to the project. So don’t make them feel like you won’t contribute after the summer program. This Medium blog-post might give you more precise information. One thing I find really important is to be patient. Note that open-source projects are usually created by volunteers in whatever limited time they have available. Ask to-the-point meaningful questions, and wait for sometime before you ping on it again. Don’t just assume that they are available to answer your questions 24/7, because they are not, most of them have full-time jobs. Also: please try to avoid being personal. Don’t call them by names, use their handles if you can in the pull requests or open issues, and be polite/friendly. Most probably they know much more than you do. You’ll notice sometimes they won’t reply to FAQs, and it’s fine, don’t get offended because you can find the necessary info in the wiki page.
Being proficient in Git version control and getting comfortable with using GitHub is a necessity (you should first check out what the project is using, and learn that. But Git and GitHub are most commonly used). Mostly the code you write will be pushed to GitHub. In the beginning, if you know how to submit a pull request and add commits to it, you can start making contributions. It would nice to learn git concepts, not just a bunch of commands (this Medium blog can be useful). Learn about branching. Play with it. Also: install Linux on your system (I started with Ubuntu). Customize your development environment, get comfortable with a code editor (I use VS code), and stick to it. Open-source development is mostly done remotely so you have to learn written communication. Writing accurately is difficult but you need to convey your thoughts well enough. Above all, try to submit an excellent proposal because that’s what matters in the end. They’ll select you based on that. Try to make it at least 15–20 pages long, and that will show the research you have done. Have a look at previous year accepted proposals and prefer the same template. Add code snippets for the desired functionality, that would be great! Even if you haven’t contributed a lot to the project before the deadline, at least try to make a good proposal, you never know they might select you. Don’t get dishearted if your project is not accepted. In fact, take it as a challenge to try again next year (if you’re eligible of course) with more enthusiasm and after gaining some skillset. No matter which university you’re in, no matter what your major is, as long as you show them that you have the right skills, you’re good to go! Around 1200 proposals are accepted each year with proposals coming from students all around the world, so luck also plays a big role here. What you can do?? Try your best.