Skip to content

Latest commit

 

History

History
144 lines (108 loc) · 6.63 KB

CONTRIBUTING.md

File metadata and controls

144 lines (108 loc) · 6.63 KB

Introduction

Thank you for considering contributing to Empirica. We are grateful for any help you are willing to contribute, even minor.

Keep an open mind! Improving documentation, bug triaging, or writing tutorials are all examples of helpful contributions that mean less work for you.

Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.

In the root repository (https://github.com/empiricaly/meteor-empirica-core), we are looking for changes to the core of Empirica. For any changes to experiements, please check out the various experiements' respective repositories.

Ground Rules

All members of our community are expected to follow our Code of Conduct. Please make sure you are welcoming and friendly in all of our spaces.

Responsibilities

  • Your code was formatted by Prettier. All code MUST be formatted using Prettier.
  • Ensure cross-platform compatibility for every change that's accepted. Windows, Mac, Linux (at least for development).
  • Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback before commiting to a large change.
  • Keep features as small as possible, preferably one new feature per Pull Request.
  • Be welcoming to newcomers and encourage diverse new contributors from all backgrounds (See code of conduct above).
  • Ensure that code goes through the following checklist:
    • Is this change useful to me, or something that I think will benefit others greatly?
    • Check for overlap with other PRs.
    • Think carefully about the long-term implications of the change. How will it affect existing projects that are dependent on this? How will it affect my projects? If this is complicated, do I really want to maintain it forever? Is there any way it could be implemented as a separate package, for better modularity and flexibility?
    • If it does too much, ask for it to be broken up into smaller PRs.
    • Is it consistent?
    • Review the changes carefully, line by line. Make sure you understand every single part of every line. Learn whatever you do not know yet.
    • Take the time to get things right. PRs almost always require additional improvements to meet the bar for quality. Be very strict about quality. This usually takes several commits on top of the original PR.

Your First Contribution

Unsure where to begin contributing to Empririca? You can start by looking through these beginner and help-wanted issues (there might not be any issues marked with the following tags at all point in time):

  • Beginner issues - issues which should only require a few lines of code, and a test or two.
  • Help wanted issues - issues which should be a bit more involved than beginner issues.

Working on your first Pull Request? Here are a couple of friendly tutorials on how to make your first contribution: http://makeapullrequest.com/ and http://www.firsttimersonly.com/. You can also learn how from this free series, How to Contribute to an Open Source Project on GitHub.

Getting started

The general process is:

  1. Create your own fork of the code

  2. Do the changes in your fork

  3. If you like the change and think the project could use it:

    • Be sure you have followed the code style for the project.
    • Note the Code of Conduct.
    • Send a pull request.

How to report a bug

Security issue

If you find a security vulnerability, do NOT open an issue. Email hello@empirica.ly instead.

General issue

When filing an issue, make sure to answer these five questions:

  1. What version of Empirica are you using? (Which tag or commit did fork Empirica from)
  2. What operating system and processor architecture are you using?
  3. What did you do?
  4. What did you expect to see?
  5. What did you see instead?

How to suggest a feature or enhancement

The Empirica philosophy is to provide small, robust framework for running multiplayer interactive experiments and games in the browser. It was created to make it easy to develop and iterate on sophisticated designs in a statistically sound manner, and offers a unique combination of power, flexibility, and speed.

The core of Empirica should offer a powerful feature set, without making the development of new experiments a hassle for the expeirment designer. It's important we hide the complexities of Empririca's core and keep a clean, simple and predicatable API for the experiment deveopers.

If you find yourself wishing for a feature that doesn't exist in Empririca, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that Empririca has today have been added because our users saw the need. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work. Make sure your idea is not already formulated (even slightly differently) in another issue before creating a new one.

Code review process

The core team looks at Pull Requests on a regular basis. After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.