Limesurvey is on github -- YEA!!! This is great news.
What's the "proper" procedure for submitting pull requests? In particular, should non-team developers create their own branch for each independent idea they have, or their own branch for their organization, or ...?
Is there a place to discuss how to implement ideas that would be logical to be part of the core?
For example, we're about to add our
implementation of restricting the language dropdown to our subset of languages
We also have a patch that allows domain-specific config.php files, which would allow individual clients to have their own limesurvey site that all shares the same underlying code. It's only slightly related to the first patch, in that some installations will have different language lists.
So I have those two changes to make in my forked copy of Limesurvey. Before I do, I'd like to discuss the ideas with the LS team. My implementation gets the language list as a comma-delimited set of languages, and is defined in the config.php file -- but what should that global variable be called, to be consistent with other LS nomenclature? Should the "proper" way be to include the list in the database, like "default site language"? I'm sure doing it with some pre-approval of the LS developers gives it a better chance of being pulled into the core.
Now, those are simple changes that will probably have reasonable support for inclusion into the core. But how about bigger discussion items, like dropping the random survey ID and instead using sequential ids? Including 0 in the survey id (maybe starting with a non-zero to keep id's a consistent length).
Or even bigger, like dropping the whole SGQA field names and replacing them the field names derived from the question and answer codes? Or expanding the answer codes to more than 5 characters? Or using Twig or Smarty as a rendering engine? These are big items, all of which I would advocate for, but unlikely to be embraced by the whole team. Is there a place to have a discussion about these kind of things?
Fortunately, with git one can create a new branch easily, implement their own idea, then submit it back, but if it's rejected, they can continue using their own branch. A client requested a permissions system that would restrict users to a subset of answers, or even a subset of groups within a survey. (Specifically, they wanted regional managers to only have access to surveys in their region, and they wanted subject experts to only have access to questions related to their field, but not the entire 130-question survey). I doubt many people would support that level of permissions, especially with the current security implementation of groups (where a group is really just a pre-defined set of permissions, but if group permissions change, the older individual users in that group don't reflect the new permissions).
Oh, and I'd LOVE to add a field name prefix to group, so that instead of having child1_age, child1_birthplace, etc. for group one and child2_age, child2_birthplace for group two, I could have group prefixes of child1, child2 and then question codes within the group would be age, birthplace, and would be expanded out in the questions table accordingly, to be unique. Etc. I've been waiting until LimeSurvey was in github before even considering making these changes, but now that it is I'd love to be involved in development and getting some of them into the core.
Version 2 brings a whole new set of discussions, but this post is already too long. Could you post some guidance on the procedure for implementing these kind of changes and the procedure for getting them pulled?
Thanks (and really looking forward to contributing!)
Tac