Development Environment for MS3.7
Are there any details on how to set up a development environment for MS3.7 Evolution on Windows? If so, where can I find them?
[Update] Added the wiki link here so that it's at the top of this thread.
https://github.com/Jojo-Schmitz/MuseScore/wiki/Setting-Up-a-Development…
Comments
In reply to @Jojo-Schmitz @yonah_ag… by knoike
Usually you fork a repo, not a branch
"3.x" is the default branch in my repo, "master" is the default branch for the upstream repo, newer repos have "main" instead of "master" (to solve some alleged political correctness issue)
In reply to Usually you for a repo, not… by Jojo-Schmitz
So my link in the instructions does correctly link to your 3.x repo?
In reply to So my link in the… by yonah_ag
Yep
In reply to Usually you for a repo, not… by Jojo-Schmitz
@Jojo-Schmitz @yonah_ag
Yes, I know that the relation of repository and branch in Git.
What I want to know is how to operate it in GitHub Web UI.
If I fork the Jojo's repository as following yonah_ag's instruction, there will only be 3.x branch in that forked repository.
This is not the expected state, is it?
For check, I also tried 'git clone' on my local PC and got the same result.
$ git clone https://github.com/Jojo-Schmitz/MuseScore.git MuseScore3.7
Cloning into 'MuseScore3.7'...
remote: Enumerating objects: 463359, done.
remote: Counting objects: 100% (393/393), done.
remote: Compressing objects: 100% (252/252), done.
remote: Total 463359 (delta 232), reused 151 (delta 141), pack-reused 462966 (from 4)
Receiving objects: 100% (463359/463359), 850.81 MiB | 3.55 MiB/s, done.
Resolving deltas: 100% (375694/375694), done.
Updating files: 100% (7707/7707), done.
$ cd MuseScore3.7/
$ git branch
* 3.x
Should I fork this, first?
https://github.com/musescore/MuseScore/
Or do I need to set something up in my account?
For example, I haven't registered my SSH key yet.
In reply to @Jojo-Schmitz @yonah_ag Yes,… by knoike
@Jojo-Schmitz @yonah_ag
What's the best way to fork repository on GitHub to help the development of Evolution?
In GitHub, if I fork Jojo's repository first, MuseScore's repository will not be able to fork.
In reply to @Jojo-Schmitz @yonah_ag What… by knoike
I don't know. I obviously forked the MuseScpre repo
In reply to @Jojo-Schmitz @yonah_ag Yes,… by knoike
My expected outcome is a fork of Jojo's 3.x repo. I believe that this is the only repo needed for developing 3.7 Evolution. I have no interest in MS4 at the present time.
My wiki instructions produced a copy of JoJo's 3.x repo which is exactly what I intended. I have not forked any other MuseScore repos. My wiki page is exclusively about development of 3.7 Evolution.
I don't know what branches are (yet) but will find out from the GitHub docs.
I have a feeling that I may not be answering your points but I guess that's because I am at my GitHub knowledge limit at the moment.
In reply to My expected outcome is a… by yonah_ag
@yonah_ag @Jojo-Schmitz
I see. Thanks.
As you said, to help the development of Evolution, what I need is the 3.x branch in Jojo's repository and that is sufficiently.
And I haven't tried it yet, but I think it is also able to create PRs to Jojo's repository.
As for why the result of my install works are slightly different from yonah_ag's instruction, I will personally investigate this at a later date.
I think this is not a big problem for the purpose.
Thanks!
In reply to @yonah_ag @Jojo-Schmitz I… by knoike
@yonah_ag @Jojo-Schmitz
I understand a little bit more about fork behavior on GitHub Web UI.
1/
About it will show "Copy the 3.x branch only" instead of "Copy the master branch only".
In generally, this will show the default branch of the source repository being forked.
Namely, after yonah_ag took the screen capture, Jojo changed the repository settings.
(Probably unconsciously.)
So, it may better you take a screen capture again.
And you should correct the text "Choose a name for your copy of this repository and tick Copy the master branch only" on Wiki.
The user cannot choose which branch in repository to fork in here.
3.x branch is needed, not master branch.
And check/uncheck(tick/untick) may a matter of preference in here.
2/
By unchecking the checkbox of "Copy the 3.x branch only" and forking, all branches will be forked.
It was just as described.
Basically, only 3.x branch is needed, so this may a matter of preference.
Now, I am currently investigating how to fork people who are interested in both Evolution and MuseScore4 should take.
It seems there are some constraint(limitation) on GitHub.
I cannot have a fork of Jojo's repo and a fork of MuseScore's repo in my account simultaneously.
I was able to fork either Jojo's repo or MuseScore's repo, but not both simultaneously.
I will report the results of my investigation later.
In reply to @yonah_ag @Jojo-Schmitz I… by knoike
3.x is the default branch of my repo, and is since long, nothing changed there recently. The only recent change to the repo is that I opened the Wiki so other users can edit it
In reply to 3.x is the default branch of… by Jojo-Schmitz
@Jojo-Schmitz
> 3.x is the default branch of my repo, and is since long, nothing changed there recently. The only recent change to the repo is that I opened the Wiki so other users can edit it
I don't know why. Maybe you're not aware of it. Maybe it changes temporarily when you sync with upstream or something. I don't know why.
Otherwise, I think GitHub Web UI wouldn't present the master branch instead 3.x branch at forking as image captured by yonah_ag.
In reply to @yonah_ag @Jojo-Schmitz I… by knoike
@knoike: I'm still seeing 3.x as the root of the repository. I don't see the change that you describe. I can choose from many branches in the repo.
@Jojo: What am I missing here? I can't get a materially different screenshot for the wiki.
In reply to @knoike: I'm still seeing 3… by yonah_ag
3.x is the default branch. I don't think you're missing anything
In reply to @knoike: I'm still seeing 3… by yonah_ag
Ah, in the wiki you talk about forking the master branch, that's wrong
In reply to Ah, in the wiki you talk… by Jojo-Schmitz
But that's what it shows on GitHub. See tick box label in the image below:
In reply to But that's what it shows on… by yonah_ag
Would it be clearer to delete my corresponding text which says master branch?
In reply to Would it be clearer to… by yonah_ag
yes, delete that, it seems wrong
In reply to But that's what it shows on… by yonah_ag
Does this tick box even need to be ticked? (Evertyhing seems to work as expected).
In reply to Does this tick box even need… by yonah_ag
It is ticked by default, no idea whether it should
In reply to But that's what it shows on… by yonah_ag
That's not what I see though, I see this:
In reply to Ah, in the wiki you talk… by Jojo-Schmitz
> Ah, in the wiki you talk about forking the master branch, that's wrong
Yes, that's it.
In reply to @yonah_ag @Jojo-Schmitz I… by knoike
@knoike: Are you using this url for the repo?
https://github.com/Jojo-Schmitz/MuseScore
In reply to @knoike: Are you using this… by yonah_ag
@yonah_ag
> @knoike: Are you using this url for the repo?
> https://github.com/Jojo-Schmitz/MuseScore
Yes.
@yonah_ag
Try deleting the forked repository in your account and forking Jojo's repo again.
"Copy the 3.x branch only" should be displayed instead of "Copy the master branch only".
In reply to @yonah_ag > @knoike: Are you… by knoike
😯
Confirmed! I will update the wiki.
In reply to 😯 Confirmed! I will update… by yonah_ag
Wiki updated.
In reply to Wiki updated. by yonah_ag
@yonah_ag
> Confirmed! I will update the wiki.
> Wiki updated.
👍️Good!
In reply to @yonah_ag @Jojo-Schmitz I… by knoike
@yonah_ag @Jojo-Schmitz
> Now, I am currently investigating how to fork people who are interested in both Evolution and MuseScore4 should take.
> It seems there are some constraint(limitation) on GitHub.
> I cannot have a fork of Jojo's repo and a fork of MuseScore's repo in my account simultaneously.
> I was able to fork either Jojo's repo or MuseScore's repo, but not both simultaneously.
It seems there is constraint on GitHub fork that "GitHub allows only one fork per user within the same repository network."
Mrepo: https://github.com/musescore/MuseScore/
Jrepo: https://github.com/Jojo-Schmitz/MuseScore/
Jrepo is a fork repo of Mrepo, so Jrepo is in Mrepo network.
In one account,
1/ can fork Jrepo, but cannot fork Mrepo,
2/ can fork Mrepo, but cannot fork Jrepo.
So if people who are interested in not only forking Jrepo but also forking Mrepo, to avoid this constraint, creating an another account seems to be a realistic solution.
In reply to @yonah_ag @Jojo-Schmitz >… by knoike
How dod those who already created PREs against my Rpo do this?
Like @Gootector, who created (Polish translation ) PRs against mine and against upstream/master?
In reply to How dod those who already… by Jojo-Schmitz
Please See:
Gootector's repositories: https://github.com/Gootector?tab=repositories
Gootector:3.x repo(404 not found): https://github.com/Gootector/MuseScore/tree/3.x
from https://github.com/Jojo-Schmitz/MuseScore/pull/797
He no longer has either repository, Jojo's repo and MuseScore's repo.
I think he removed repo from his account after PR was merged.
In reply to Please See: Gootector's… by knoike
Very interesting and strange...
In reply to Please See: Gootector's… by knoike
What about @worldwideweary ? For example https://github.com/Jojo-Schmitz/MuseScore/pull/742 -> https://github.com/worldwideweary/MuseScore/tree/3.7-AllowFlaghookRever… forked from upstream but having a bunch of branches named 3.7*
In reply to What about @worldwideweary ?… by Jojo-Schmitz
@Jojo-Schmitz
Ah, I see. This is also one way to avoid this constraint.
This might be the right way to avoid it.
He has Upstream MuseScore's repo only.
I still don't know how he actually created PR to Jojo's repo/branch, but it seems gets merged as "force-pushed", not just "merged".
What I want to say is that @yonah_ag's instruction on Wiki needs information for people who are interested in both "3 Evolution" and "Upstream MuseScore".
If that people fork Jojo's repo first, I think it will be difficult to get involved with "Upstream MuseScore".
(Possibly, there's a way to connect from the master branch in Jojo's repo to the Upstream MuseScore's repo, but I don't know it yet.
https://github.com/Jojo-Schmitz/MuseScore/tree/master )
In reply to @Jojo-Schmitz Ah, I see… by knoike
Might be a question to ask in a GitHub discussion, and by @-mentioning all past contributors to my repo, see https://github.com/Jojo-Schmitz/MuseScore/pulls?q=is%3Apr+-author%3AJoj…
In reply to Might be a question to ask… by Jojo-Schmitz
I see. We will use there if necessary. Thanks.
Probably, I think that the correct approach would be to fork Upstream MuseScore's repo
and create PR to Jojo's repo:3.x branch in some way.
If person who are interested in both "3 Evolution" and "Upstream MuseScore" fork Jojo's repo according to instruction on Wiki, that person will need to create another account and fork MuseScore's repo into it.
(Alternatively, fork and remove repo as needed. as Gootector does.)
If person who are only interested in "3 Evolution", just fork Jojo's repo as instruction.
In reply to @Jojo-Schmitz Ah, I see… by knoike
Re: "What I want to say is that @yonah_ag's instruction on Wiki needs information for people who are interested in both 3 Evolution and Upstream MuseScore. If people fork Jojo's repo first, I think it will be difficult to get involved with Upstream MuseScore."
Please feel free to update the wiki when a working solution has been tested. It would be good to have the method documented for developers who want to work on both 3.7 and 4.x.
(As for me, I have no interest in MS4 as it has no improvements for TAB only guitarists and several deficiencies in plugin capabilities.)
In reply to Re: "What I want to say is… by yonah_ag
@yonah_ag
Yes! If I found a better way, I'll add it as an FYI or TIPS.
I still cannot understand GitHub's repository network and its PRs deeply... .
In reply to @yonah_ag Yes! If I found a… by knoike
This seems to confirm that you cannot fork both 3.7 and 4.x to the same GitHub account:
https://github.com/orgs/community/discussions/23839
Does a fork of 4.x actually include all of 3.7?
In reply to This seems to confirm that… by yonah_ag
> Does a fork of 4.x actually include all of 3.7?
No.
3.7:master is synchronized with 4.x:master.
Namely,
https://github.com/Jojo-Schmitz/MuseScore/tree/master
is
synchronized with https://github.com/musescore/MuseScore/tree/master .
So it is in the same network.
I have no time now. Sorry for poor English.
Let's move about this matter to on the Discussions.
https://github.com/Jojo-Schmitz/MuseScore/discussions
In reply to This seems to confirm that… by yonah_ag
There's no such thing as a fort or 4.x or 3.7.
You fork a repository. Mine or MuseScore 's
Mine is a fork or MuseScore. My 3.x brach is ahead of MuseScore 's by more that 1000 commits. My master branch is on par with MuseScore's or a few comments back, I keep it in sync regularly.
In reply to There's no such thing as a… by Jojo-Schmitz
I referred to my repo as a fork of 3.7 but technically it is a fork of 3.x which I renamed 3.7.
In reply to I referred to my repo as a… by yonah_ag
You mean your fork of my repo('s 3.x branch)
In reply to I referred to my repo as a… by yonah_ag
@yonah_ag
Please note the difference between what "repository" and "branch" refer to.
Maybe you're confusing them.
In reply to @yonah_ag Please note the… by knoike
I don't know what a branch is yet but when I forked Jojo's 3.x I ended up with a repository – at least according to GitHub. What is a branch?
In reply to I don't know what a branch… by yonah_ag
A part of a repository, which has one or more of them. Like here the master branch and the 3.x branch
The latter is what in my repo is for MuseScore 3.7 Evolution the former is the main development branch in MuseScore's repo
Every PR of mine is yet another branch of my repo, but rather short-living (only until it got merged into my 3.x or MuseScore's master branch), which is when I usually delete it
In reply to A part of a repository,… by Jojo-Schmitz
I think I get it now. To confirm: I have made a repository (called MS3.7) from a part (a branch) of your repository, specifically the 3.x branch? I can now make branches of my MS3.7 repo to make changes and I can choose whether to keep such changes private, discard them, or make pull requests to your 3.x branch.
In reply to I think I get it now. To… by yonah_ag
Yup
In reply to This seems to confirm that… by yonah_ag
> This seems to confirm that you cannot fork both 3.7 and 4.x to the same GitHub account:
> https://github.com/orgs/community/discussions/23839
Yes, GitHub has this limitation(constraint).
This is a limitation(policy) of GitHub, not Git.
At later, I will ask @worldwideweary how he manages the two branches and creates PRs to each branch.
https://github.com/worldwideweary/MuseScore/tree/3.7-AllowFlaghookRever…
In reply to > This seems to confirm that… by knoike
It would be good someone could draw a diagram of the branch tree of relation of "branch for 3 Evolution" and "upstream MuseScore".
In reply to It would be good someone… by knoike
My repo is a fork of musescore's, with all its branches. Only my 3.x branch is different (more than 1000 commits ahead) from those of musescore's (which is basically orphanned)
If, like me, you are new to Visual Studio and C++ then you may find this Microsoft documentation helpful in getting started.
https://learn.microsoft.com/en-us/cpp/?view=msvc-170
Another resource that I'm find helpful in getting started is the official GitHub documentation:
https://docs.github.com/en
Particularly the section on collaborative coding.
Added missing steps to the wiki for:
1) Qt VS Tools
2) Qt folder reference in Path
Added Section 4 to the wiki to list some optional settings and learning resources.
https://github.com/Jojo-Schmitz/MuseScore/wiki/Setting-Up-a-Development…
Added helper to links section of wiki, (See Section 4.2).
MuseScore Developers' Handbook: Git Workflow
https://musescore.org/en/handbook/developers-handbook/finding-your-way-…
After the first build, there are more than 4000 files to commit, all in the out folder.
Adding out to gitignore "solve" the thing, but I'm wondering, shouldn't "out" already be in gitignore?
gitignore is already quite complete
Or did I misbuild by getting stuff produced in "out"?
In reply to After the first build, there… by frfancha
What does "files to commit" mean?
I have 2920 files in out/build and 1515 in out/install.
How do I know whether these are "to commit" or not?
I don't think that you have mis-built: I think that files in the out sub-folders are expected.
In reply to What does "files to commit"… by yonah_ag
Files to commit means they have changed (or been created or deleted, all these are changes) in the folder tracked by git.
And they are not listed in .gitignore so git considers that as a true repository change that you need to commit and ultimately to push in your in your repo and to PR for the "official" evolution repo.
In reply to What does "files to commit"… by yonah_ag
That's because "out" is not the directory to use for builds/installs (and because it isn't mentioned in .gitignore)
And no, you're not supposed to commit them
In reply to That's because "out" is not… by Jojo-Schmitz
Ok we shouldn't have been using out.
What's the one to use and where to set the correct name?
In reply to Ok we shouldn't have been… by frfancha
I use build.qtc (for MinGW builds), msvc.build, msvc.install, msvc.build_x64, msvc.install_x64 for MSVC builds
Check .gitignore for more options ;-)
In reply to Ok we shouldn't have been… by frfancha
I have added /out to .gitignore and all the commits have gone.
In reply to I have added /out to … by yonah_ag
Except for the change to .gitignore
In reply to Except for the change to … by Jojo-Schmitz
Now you see them:
Now you don't:
In reply to What does "files to commit"… by yonah_ag
By the way what about the proposal you had to continue this in a more "chat" application?
I don't have one in mind, so tell what's best for you and Jojo
In reply to By the way what about the… by frfancha
I could open "Discussions" in my repo, not sure that's feasible though.
Actually https://github.com/Jojo-Schmitz/MuseScore/discussions is open already
In reply to I could open "Discussions"… by Jojo-Schmitz
Looks like a good place to start.
In reply to I could open "Discussions"… by Jojo-Schmitz
👍️ Good! It's also searchable, so people can refer to it later.
In reply to 👍️ Good! It's also… by knoike
Web development is all about creating websites and web apps, but it’s not just about coding. It’s about understanding what users need and how they interact with the site. If you’re into UX, like the UX Task Analysis guide on Clay Global's blog https://clay.global/blog/top-web-design-agencies/professional-agency , you’ll see how important it is to analyze tasks and user goals. It’s about making sure the site works for the user, not just looking pretty!