Community Contribution

From MSP Challenge Community

Intro

The MSP Challenge Simulation Platform is openly available for users to download and use, as explained on the Download page.

You might however be interested in developing new Client features, or to create your own Simulations to add additional data calculations to the platform. For this purpose, we have provided the source code of the Client, Server, and Simulations for our community to use for expanding on the MSP Challenge Simulation Platform.

Source Location: MSPChallenge Repository

License: GPL-3.0, see Terms & Conditions on the wiki


Thank you for considering to contribute to the MSP Challenge Simulation Platform. We have seen many users of the MSP Challenge over the years, and it brings us great joy to see the enthusiasm of these users extend into becoming contributors to the platform.

The following guidelines help understand why we made the project open source, and how we expect to reply to community contributions. As the MSP Challenge team consists of a small team without funding for dedicated open-source support staff, we ask for your understanding in our capabilities to respond to any contact related to community contributions


Free to extend on the MSP Challenge Simulation Platform

Our aim is to allow all community members with the required technical knowledge to freely contribute to the MSP Challenge project, both the content as well as the features. To aid in this effort we decided to release the source code under the GPL-3.0-only license. For more information on the Terms & Condition of using the MSP Challenge Simulation platform, please visit the Terms and Conditions page on the wiki:

Terms & Conditions - MSP Challenge Community


Licensed elements

Plug-ins and Packages

While the source code of MSP Challenge itself is open source, several packages and plug-ins have been used to develop the software, which have their own licenses. Sometimes those licenses do NOT allow us to share the concerned files. We therefore have to ask you to retrieve your own copy if you wish to use these files or plug-ins. This involves several plug-ins we purchased via the Unity Asset Store. You can find these plug-ins and libraries on the following page on the wiki: Credits

Geo-Data

Our geo-data can only be used by us to create derivate works, not to publicly share, therefore we have provided an example GeoServer, including GIS files and configuration, to assist in the setup and development of community based content.  To find out where exactly we retrieved our data, please visit our Data Sources page on the wiki.

Retrieving the MSP Challenge Source Data

We chose to host the MSP Challenge on GitHub, being one of the major hosting platforms for Open Source projects. You can find the repository here. Contributors are free to fork the repository, and use this fork to extend on the project, as long as all changes are tracked. Community members are only able to edit their own fork, and cannot directly edit and commit to the public MSP Challenge repository itself.

For more information on how to fork a repository, please visit the documentation page by GitHub - Fork a repo / GitHub Docs


Code Responsibilities

To make sure that community contributions can be considered for integration, please respect that the MSP Challenge Client is cross-platform, i.e., it supports for both macOS and Windows 10. Contributions that use code or content specific to only one operating system / platform will not be accepted.

Please also keep security in the back of your mind before submitting your contribution. Does your contribution introduce a security risk for any MSP Challenge user (both server users and end users)? If so, try to estimate it and make any code adjustments in an effort to increase security. We reserve the right to rewrite (a bit of) your code to make it more secure if needed. Either way, if we accept your contribution including a little rewrite by us into the public release, you will of course still be credited. It was your contribution, after all.

For all code contributions, please consider the current code structure / style. We reserve the right to rewrite (a bit of) your code to make it comply to the existing code structure / style, unless yours is clearly an improvement of the current structure / style. Again, if we accept your contribution including a little rewrite by us into the public release, you will of course still be credited.


Community Responsibilities

The MSP Community consists of a diverse group of users and contributors from different backgrounds, with varying levels of technical knowhow. To create an open and welcoming community, we ask everyone to comply with the following responsibilities:

- In all communication efforts, both between community members, and with developers, please be open and friendly.

- Remember that any contributions are made as part of the community, and created for the good of the community itself. Be thoughtful, and keep this in mind when addressing any communications inside the community.

- You are talking to other people. Whether via mail, direct messaging, or a video call, treat people with respect across all communication channels.

- Many contributions are made with personal time and effort. Respect the community members and developers who put in their personal time. Any contribution is a show of appreciation towards the community and the product as a whole, please treat these with the respect they deserve.

- The MSP Challenge Community is focused on the development and improvement of the MSP Challenge Simulation Platform. We therefore ask our members to refrain from including or discussing any political topics on MSP Challenge related communication channels.

Inappropriate Behavior:

Of course, any form of harassment, threats, violent language, sexual language or imagery or other inappropriate (social) contact are unacceptable.

Any community members who have been requested to stop any form of inappropriate behavior are expected to comply with this request immediately.

Failure to comply with above stated community responsibilities may lead to actions taken by the MSP Challenge team. Depending on the severity of the action this could lead to a warning of the offender, or ban from the community and community channels, as well as limitations to accessing the MSP Challenge content.

Thank you to all community members who help in creating a pleasant, open, and welcoming environment for the project.


Communication with the Developers

As our current focus on community contributions is limited, we have decided not to create and maintain a public chat, such as a Slack, Discord, or living Forum. This means that contributors are currently not provided means to engage in discussions or create active conversations with the developers.

If you wish to contact the developers of the MSP Challenge Simulation Platform, please use the following methods:

Mail

Please see our contact page for the most common contact methods: Contact us - MSP Challenge Community. We attempt to keep up to date with our inbox, however please provide us some leeway in responding to any mails you send us

Issue Tracker

Please report any issues you encounter via the Github Issues Tracker. We will periodically check the issues, and determine whether we can incorporate these into our internal bug-fixing protocol.

Multiple labels are available as part of the issues tracker, please use the correct labels to tag your issue so the team can properly review the issues.


Support

The MSP Challenge is being developed by a core team, part of the Academy of Games and Media at the Breda University of Applied sciences. Because of this, we do not have the resources to develop and offer an infrastructure of support for contributions. While we allow our community to fork, and extend on the MSP Challenge, we can not guarantee that we will be able to answer any issues posted as part of the MSP Challenge repo, or integrate any extensions developed by community members.

Technical Questions

Due to the limitations in time available from the development team, we cannot promise any technical support related to the software placed on the public GitHub repository. Feel free to create issues with information requests on technical difficulties so either our community members, or developers, can answer them if they have time to do so.

Issue Rules

When submitting new issues, please consider the following rules to keep the process smooth and functional

- Please refrain from creating duplicate issues, as this will only slow-down our communication efforts. If you encounter a similar issue to other users, please comment on that issue to let us know that you encountered it as well, including additional information where necessary. This counts for any bugs that have been discovered, as well as desired features or enhancements to the platform.

Bug Reporting

If you encounter a bug, please use the Github Issues List to report on the bug, answering the following questions within any bug report you create

- What version are you using?

- Is the bug on the Server, Client, Simulations, or Build?

- What operating system, and hardware do you use?

- What did you do to encounter the bug?

- What did you expect would happen instead?

- What happened instead? Describe the exact details of the bug.

Feature or Enhancement Reporting

If you are missing a highly relevant feature in the MSP Challenge Simulation Platform, then other might have a similar need. If there is no existing issue regarding this feature or enhancement, feel free to add it to the issue list in Github. Many of our features and enhancements have been determined by user feedback, and evaluations on existing sessions.


Integration into the public release

Due to the limited resources available to the MSP Challenge development team, we do not guarantee the integration of any contributions made to the MSP Challenge Simulation Platform into the public release.

After you have successfully expanded on your own fork of the MSP Challenge Simulation Platform, you can create a pull requests. This will notify the MSP Challenge team of external contributions, and allow the team to checkout the files for integration into the publicly released platform. These pull requests require a detailed description of the changes so that the team can properly review the provided changes.

May the team be able to implement public contributions, then the following steps will be part of the integration process:

1. Pull Request

A pull request is created by the contributor, including the altered files, and a clear description of the added or altered functionality.

2. Design Review

A member of the MSP Challenge team will review the design of the contribution, based on the added description.

3. Code Review

A member of the MSP Challenge team will review the code of the contribution, both to determine whether it complies to the code responsibilities, and whether the expansion can be integrated within the available time.

4. Integration

The contribution is integrated via the development branch of the MSP Challenge Simulation Platform, to allow for internal testing of the contribution.

5. Publication

If all above steps have been successful, the contribution can become part of the public release.


For more information on creating pull requests, please visit the documentation page by GitHub - About pull requests / GitHub Docs


Latest Release

For information on the latest public release, please see the Download page and the Release notes pages on the wiki.