Development infrastructure

Atualizado 1 ano atrás

MuseScore source code is hosted on GitHub.

File Hosting

The MuseScore binaries for stable and nightly releases are hosted by OSUOSL. We have two shares.
https://ftp.osuosl.org/pub/musescore-nightlies/
https://ftp.osuosl.org/pub/musescore/
For some other resources, MuseScore also have a AWS account and use S3. MuseScore Connect HTML page is hosted on S3, also MuseScore translations available in the resource manager are hosted on S3. We also use S3 to host libraries (Qt) or tools (wkhtml2pdf) used to build MuseScore, generate PDF handbook etc...

Automated development builds

We used to call them "nightly builds" but they aren't so much "nightly" anymore.

AppVeyor is used to create development builds for Windows for the active branches. The packages for Windows are uploaded via FTP on https://ftp.osuosl.org/pub/musescore-nightlies/. Only the last 40 nightlies are kept there. Note that AppVeyor also hosts the Windows packages, including for PR. This is very useful if a developer wants to create a test package for an unmerged PR.

The build process notifies the #musescore IRC channel when a new build is available.

For macOS and Linux, nightlies are built by Travis-CI. See below.

Continuous integration using Travis-CI

For every code pushed, GitHub sends a notification to Travis-CI.org, a free hosted continuous integration service for the open source community. Travis uses the file .travis.yml at the root of the source code tree to build MuseScore, and run the unit tests located in the mtests directory.
If the build or the tests fail, Travis will notify the #musescore channel on IRC, and send emails to committers.

Travis also creates nightly builds for macOS and hosts them to OSUOSL. The whole build process is public self contained in the git repository.

Mark issue as fixed automatically

GitHub can send a POST HTTP requests to any URL. MuseScore.org uses this feature to receive notification of every new commit on the master branch of the Git repository. If the commit message starts with "fix #xxxxx", with xxxxx the issue number in the issue tracker, the issue will be marked as fixed automatically.

Git Push notification on IRC

GitHub sends a notification on the #musescore IRC channel for each new push on the Git repository.


Source https://docs.google.com/drawings/d/1nYccYxrTQsHYnxELcHCbnHzLXiJyccs9g1B…

Continuous translation and resource manager

We use Travis-CI cron capabilities to run the following project periodically https://github.com/musescore/tx2s3. The process takes TS files from Transifex and upload them to S3. The Resource Manager in MuseScore connects to S3 to get the latest language updates.
Here is the process to switch translations from one release to another release: https://docs.google.com/document/d/1KdhLVp8mFlFfxBsIiXHRd_lQMlFH7j3ol1X…

Handbook in PDF

The MuseScore handbook is written and translated on musescore.org. We also offer it as a PDF. The PDFs are hosted by OSUOSL and created daily by Travis-CI using https://github.com/musescore/handbook2PDF