RIAPS Platform Information

Logo

RIAPS is a Resilient Middleware for Smart Grids. See riaps.isis.vanderbilt.edu for more information.

View My GitHub Profile

Contributing to RIAPS

The following is a set of guidelines for contributing to RIAPS whose code base is hosted in the RIAPS Organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

Table Of Contents

Code of Conduct

License and Developer Certificate of Origin

How Can I Contribute?

Styleguides

Project Governance

Roadmap

Please note we have a code of conduct, please follow it in all your interactions with the project.

Code of Conduct

This project and everyone participating in it is governed by the RIAPS Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to riaps+owner@lists.lfenergy.org.

License and Developer Certificate of Origin

RIAPS is an open source framework licensed under the Apache License, Version 2.0. By contributing to RIAPS, you accept and agree to the terms and conditions for your present and future contributions submitted to RIAPS.

The project also uses a mechanism known as a Developer Certificate of Origin (DCO) to manage the process of ensuring that we are legally allowed to distribute all the code and assets for the project. A DCO is a legally binding statement that asserts that you are the creator of your contribution, and that you wish to allow RIAPS to use your work.

Contributors sign-off that they adhere to these requirements by adding a Signed-off-by line to commit messages. All commits of all repositories of the RIAPS community have to be signed-off like this:

This is my commit message.

Signed-off-by: John Doe <john.doe@github.com>

You can write it manually but Git even has a -s command line option to append this automatically to your commit message:

$ git commit -s -m 'This is my commit message'

Note that a check will be performed during the integration, indicating whether or not commits in a Pull Request do not contain a valid Signed-off-by line.

The Signed-off-by line at the end of the commit message can be written automatically. You just have to configure the .gitconfig file with the following alias:

[alias]
    ci = commit -s

and instead of

$ git commit -m "This is my message"

you just have to write

$ git ci -m "This is my message"

Note that most IDEs can be configured to add a Signed-off-by line at the end of the commit message (Intellij IDEA and Eclipse IDE for example, do not hesitate to ask us).

How Can I Contribute?

Reporting Bugs and Suggesting Enhancements

Bugs and enhancement suggestions are tracked as GitHub issues. Create an issue and provide the following information by filling in the template.

Before creating bug reports or suggesting enhancement, please perform a cursory search to see if the problem has already been reported. If it has and the issue is still open, add a comment to the existing issue instead of opening a new one.

You can also contact the team directly to talk about your ideas at riaps@lists.lfenergy.org.

Note: If you find a Closed issue that seems like it is the same thing that you’re experiencing, open a new issue and include a link to the original issue in the body of your new one.

Contributing Code

Code Contribution is tracked as GitHub Pull Requests. Crafting a good pull request takes time and energy and we will help as much as we can, but be prepared to follow our iterative process. The iterative process has several goals:

Please follow these steps to have your contribution considered by the maintainers:

  1. Follow all instructions in the template
  2. Follow the styleguides
  3. After you submit your pull request, verify that all status checks are passing.
  4. Request a GitHub review by one of the core developers (e.g. @adubey14 @imadari @MMetelko)
  5. Follow their instructions or discuss about the requested changes. Please don’t take criticism personally, it is normal to iterate on this step several times.
  6. Repeat step 6 until the pull request is merged!

Continuous integration is setup to run on all branches automatically and will often report problems, so don’t worry about getting everything perfect on the first try. Until you add a reviewer, you can trigger as many builds as you want by amending your commits.

Tools for contributions

Continuous integration is setup automatically on all contributions. However, it’s faster to iterate locally to fix problems than waiting for the status checks to finish. There are many tools that can be used to do the verifications that are enforced by all status checks. The most simple and universal tool is maven, but IDE integrations can be used to get more immediate feedback. Most of the team uses Eclipse, but others IDEs can be used, for example Visual Studio Code.

Styleguides

Git Commit Messages

As usual, please start the commit message with a short line describing the commit, then leave a blank line, then give more context and explanations. You can use GitHub’s integrations, for example to link to existing issues. In general, pull requests with more than one commits will be squashed when merged in master.

Project Governance

Project Owner

RIAPS is part of the LF Energy Foundation, a project of The Linux Foundation that supports open source innovation projects within the energy and electricity sectors.

Committers

Committers are contributors who have made several valuable contributions to the project and are now relied upon to both write code directly to the repository and screen the contributions of others. In many cases they are programmers, but it is also possible that they contribute in a different role. Typically, a committer will focus on a specific aspect of the project, and will bring a level of expertise and understanding that earns them the respect of the community and the project owner.

Technical Steering Committee

The Technical Steering Committee (TSC) is composed of voting members elected by the active Committers as described in the project’s Technical Charter.

RIAPS TSC voting members are:

Some committers are specialized in some field: please refer to the maintainers table before submitting a pull request.

Contributors

Contributors include anyone in the technical community that contributes code, documentation, or other technical artifacts to the Project.

Anyone can become a contributor. There is no expectation of commitment to the project, no specific skill requirements and no selection process. To become a contributor, a community member simply has to perform one or more actions that are beneficial to the project.

Roadmap

Documentation