Development Environment for MS3.7

• Jan 13, 2025 - 19:12

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 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 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 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 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 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 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.

Screenshot_20250205-071345_Samsung Internet.jpg

@Jojo: What am I missing here? I can't get a materially different screenshot for the wiki.

In reply to 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 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 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 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 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 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 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 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 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…

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 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 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!

Do you still have an unanswered question? Please log in first to post your question.