Ask not what your community can do for you, ask what you can do for your community!
With apologies to former US President John F Kennedy, that oft paraphrased line strikes at the heart of what the SasView project is about. Collaboration.
Irrespective of how slick and professional we do try to make SasView appear, the reality is that SasView is not the product of a vast team of programmers working for a software house. Rather, it is the cumulative endeavour of a community of contributors, many of whom who have just given a few hours of their time, as and when they could, over a number of years. Those contributors have included software developers/engineers, computer scientists, data scientists and, in particular, many who practise small-angle scattering. Simply put, SasView needs contributors with a broad range of skills!
If the idea of joining this community appeals to you, please keep reading!
Why get involved
No matter whether you are a senior academic, an industrial researcher, or a graduate student, numerous studies have shown there are many benefits to joining collaborative software projects. See here for a great overview of why! But in a nutshell, you will not only be helping to develop a piece of software that you (and perhaps colleagues around you) rely on, but you will be developing your own skills set too.
And if you are just starting out using small-angle scattering, contributing to SasView would be a great way to meet people with a wealth of experience! We offer discounted consultancy rates to contributors. (In case you are wondering, that is a joke!)
Ways to contribute
There are many ways that you can contribute to SasView, and not all of them require coding!
We need contributors that can…
- Respond to queries posted to firstname.lastname@example.org;
- Teach others how to get the best from SasView;
- Write and improve documentation;
- Write and record tutorials;
- Test SasView (over and over!) and write bug reports;
- Provide new plugin fitting models;
- Maintain webservers;
- Work on GitHub Actions;
- Deploy and improve automated testing;
- Review the code contributions of others;
- Develop code in Python3/C++ and PyQt/Matplotlib;
- Develop code using OpenCL, Numba and JiT;
- Develop code on Windows, MacOS and Ubuntu;
…and no doubt several other things besides!
If in doubt, ask us!
Rules of the collaboration
Naturally, there have to be some rules to make sure everyone gets along! But we have tried hard to keep them as simple as possible:
First off, SasView is an Open Source project. So you must be comfortable with the fact that anything you contribute is there for others to inspect and, if necessary, challenge.
The SasView project has also chosen to use a permissive software licence: the BSD 3-Clause licence which you can read here. This means anything you contribute can be redistributed or reused by others within the terms of the licence. But note this licence also means that we cannot implement the code of others in SasView if that code is subject to a more restrictive licence, for example, the GNU Public Licence (or GPL). This can cause us headaches at times!
You must not break or destroy the work of others, and should you inadvertently do so you must accept that the onus is on you to rectify the problem with all possible haste.
‘He who pays the piper calls the tune’… to a large extent. If you want to implement some amazing new functionality in SasView and you have the skills or resources at your disposal to do so, that is great. All we ask is that you talk things through with the wider Development Team beforehand. After all, we might have considered - but rejected - the idea once before! And if not, we will certainly have insights into the best way for you to proceed!
Lastly, it is everyones responsibility to help tackle the open issues on GitHub.
If we have whetted your appetite then you will be wanting more information. Have a look at our SasView project wiki.
Who to contact
If you have a question about getting involved, email the Leadership Team.