Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: How to help test SFML  (Read 25141 times)

0 Members and 1 Guest are viewing this topic.


  • SFML Team
  • Hero Member
  • *****
  • Posts: 1405
  • I am awesome.
    • View Profile
    • The server that really shouldn't be running
How to help test SFML
« on: March 28, 2015, 09:05:36 pm »
Since Glocke was interested in testing SFML and asked me how he could help, I decided instead of replying to his message, I'd make the information public in case anybody else is interested.

If you are keen on helping test the latest and greatest that SFML has to offer, start out by watching the GitHub repository.

Go to https://github.com/SFML/SFML and at the top, you see a button labelled "Watch". Click on that and you will be watching the repository, meaning you will be automatically notified of any commits that are made.

Now... SFML development happens in branches. Nothing is ever directly pushed to the master branch any more. If code ends up in the master branch, it would have gone through a dedicated pull request meaning code review and thorough testing. For every issue that is currently being worked on, there is normally an associated branch and pull request.

You can find a detailed list of all branches here: https://github.com/SFML/SFML/branches/all. If you click on the #number at the right, it will take you to its associated pull request, where you can provide feedback about e.g. whether it fixes the issue for you or even breaks something that previously worked. The pull request is the "main hub" for discussions regarding that work item, and any future changes will typically be announced in it by the author as well.

After browsing through the branches, you might have found something that you think you are able to meaningfully test, you have 2 options at this point, either clone the repository using git or download the zip archive of the corresponding branch.

To download the zip archive of the branch, simply click on the branch name in the list of branches. Once you are at the file list index just click on the "Download ZIP" button to the right and unzip the archive somewhere.

You will have to do this again every time you want to try out another branch or even another version of the same branch deleting the previous files first. This is why I recommend the git method.

To clone the repository using git, either use the tool you might have installed to do it, or install git and run
Code: [Select]
git clone https://github.com/SFML/SFML.gitat any command line that is able to run the git executable. Once the repository is cloned, you can review the remote branches that exist using the command
Code: [Select]
git branch -rvThis will output the branch name, HEAD of the branch and commit message of HEAD. You can make sure you are testing the right stuff by checking whether the HEAD message is what you expect. To checkout/switch to a branch, simply run the command
Code: [Select]
git checkout -f <HEAD commit hash here>The -f is there just in case you accidentally modify a tracked file, it will discard the change automatically.

Cloning the repository has the advantage that you don't have to re-download a new zip every time you want to test another branch, or even a newer version of the branch.

At this point, just build SFML using the standard procedure. Configure using CMake, build it however you want and conduct your tests however you feel like testing the code ;). Nothing prevents you from using WIP branches in your own projects as well, in case you just can't wait for that next release ;).
« Last Edit: March 29, 2015, 05:20:29 pm by binary1248 »
SFGUI # SFNUL # GLS # Wyrm <- Why do I waste my time on such a useless project? Because I am awesome (first meaning).

Elias Daler

  • Hero Member
  • *****
  • Posts: 599
    • View Profile
    • Blog
    • Email
Re: How to help test SFML
« Reply #1 on: April 09, 2018, 12:42:35 am »
I think that's it's worth adding that it's sometimes necessary to specify install directory in the CMake configuration to not get your main install of SFML overridden...

And later, you can use this newly built version of SFML by setting FIND_SFML_PATHS variable inside your CMake script before calling find_package. So you'll have a stable SFML and dev versions, but find_package will still find stable SFML if you installed it in some default dir and didn't set FIND_SFML_PATHS, so your other projects won't be affected. 

And for devs: make your stuff easy to test! Make example .cpp's which can ve easily built and which showcase new functionality or a bug fix. Provide all the necessary instructions: which buttons to press, what you should see and so on. By doing all this, people are more likely to test the stuff.
Tomb Painter, Re:creation dev (abandoned, doing other things) | edw.is | @EliasDaler