It sounds to me like the Apache License 2.0 would fit the bill.
Software source code will be public so anyone can read it or use it.
This is less a matter of license and more a matter of how you decide to host your repository. Your license can give users a right to access the source, but forcing people to use a public repository (github, etc) is impractical. That's one reason the GPL still makes a reference to distributing source code on request by mailing out copies on disk/CD.
Anyone can contribute or add modifications to the source code (pull request) providing an express grant of patent rights.
Apache 2.0's big selling point over BSD/MIT is that it requires that sort of patent grant (see section 3 and to a lesser extent section 5). Here, such a grant is automatic, so you don't have to keep track of contributor release agreements, etc. The contents of a pull request or submitted patch are my changes, thus I own the copyright and do not need your license's permission to submit them. If I choose to submit them, section 5 automatically licenses those changes under Apache 2.0 and sections 2 and 3 give the upstream project and end users all the permissions they need to use those changes.
License must allow to publish the software in any app market or to be distributed.
Section 4 permits redistribution "in any medium, … in Source or Object form", so publishing it via app store should be fine in and of itself. If the app store in question requires additional restrictions to be placed on the user, then you'll have a problem. A redistributor does not have the legal right to take away something that the copyright holder has granted. That's going to be a problem no matter what license you use. The copyright holder can dual-license the code to meet the app store's restrictions, but a mere redistributor cannot.
License must protect against forking the source code and publishing or distributing the same version (changing name and authors) without modifications.
I can't tell exactly what you're getting at here, but there seem to be several aspects of the license that apply. The copyright-related grants in section 2 do not give the recipient permission to remove the copyright notices that contain your name, and copyright law prevents the recipient from claiming any of your code as their own. Section 4 requires all "copyright, patent, trademark, and attribution notices" in the source code to be retained, with the exception that you can add an additional copyright notice that only covers any changes you've made (existing notices must stay intact). Author information that you include in a
NOTICE file is required to be retained as well, and must be distributed along with both source and binary copies. If you want to make sure people know where to find the original, add a link to your website/repo in the
Trying to prevent someone from distributing a verbatim copy (zero modifications) is probably not something you want to waste time on. A source that distributes unmodified copies is also called a mirror, and those are generally considered beneficial. Without the ability to redistribute verbatim copies, your software couldn't be included in a Linux distribution's package manager (for instance).
Anyone can fork the original source code, modify how it works and distribute that new version.
Section 4 gives the right to "reproduce and distribute copies", including modified copies.
Commercial and private use is allowed.
The rights granted to the user in sections 2 and 4 are not qualified. They apply to commercial and non-commercial use cases equally.
New versions must keep the same license. So any forked version has the same protection.
Section 4 technically allows a modified version to be distributed under a different license, in the sense that you can add additional rights. For example, I could sell the software to my customer under a modified license that includes the right to a year's worth of support services (from me) or that obligates me to provide access to old versions of the program for 5 years after the initial release date. The recipient still keeps all their original rights and protections, but may also get a few more.
License should be distributed with the software.
Section 4 requires you to "give any other recipients of the Work or Derivative Works a copy of this License". That applies to both source and object form.