How to contribute


Section under construction

EnergyScope is an open-source, documented, and collaborative energy system model. We welcome new members to join our community on Slack – it’s the perfect place to connect with fellow enthusiasts and contributors. (join our Slack ). Before you dive into contributing, it’s essential to familiarize yourself with our project. You can find our repository on GitHub: (y)our repository. Explore the codebase, documentation, and ongoing discussions to get a sense of our community and the goals of the project.

Our philosophy and guidelines for contributing are outlined in detail on the page_how_to_contribute_guidelines. It’s crucial to align your contributions with our vision, so take a moment to understand our values and expectations. If you’re new to GitHub or want a step-by-step guide on making contributions, check out our Contributions. We’ve provided tutorials specifically tailored for non-GitHub experts, making it easy for anyone to get involved. Remember, every contribution, big or small, makes a difference. Whether you’re fixing a bug, improving documentation, or suggesting new features, your efforts contribute to the success of the community.


This section explains how the material generated by the community is handled. There are three types of material:

  • Repositories: codes and algorithms

  • Documentations: the current file (and all version adapted to other extensions)

  • Communication: a platform to quick chat with other users/developers.

In the following, we detail the roles, structure and rules to respect to join the community. Without directly contributing, everyone is welcome to clone the repository and develop it under the Apache 2.0 License.


The EnergyScope project has several repositories (i.e. different models) listed on the EnergyScope project. See How to cite for the list and who is the administrator.

People involved

  • Administrator: Responsible for ensuring repository rules are respected. Has most rights and manages user permissions.

  • Developers: Contribute new features on separate branches, participate in peer reviews, and contribute to the main and development branches.

  • Users: Contribute by forking the code (see Contributions).

Repository structure

The repository consists of three types of branches:

  • Master branch: Contains a stable and interoperable version of the code.

  • Development branch: Holds advanced features that have been peer-reviewed.

  • Other branches: Used by administrators and developers to start developments and collaborate.


You are currently reading it! The documentation is aimed to gather all the knoweldge that the community builds. Indeed, the documentation is in the repository and thus could be modified by all the users. Feel free to modify the rst files in the docs folder. If you are not familiar with the tools, you can look at how getting started with Sphinx.


Our community is active, and you can join using the following link (Slack): Click on me to join the Slack community !!!

In the Slack community, you’ll find several channels categorized as:

  • welcome to the community: your entry point where you can say hi and introduce yourself

  • general: where administrators share information

  • other channels: they exist to discuss specific topics

Feel free to contact one of the administrators if you have any questions. You can also just drop a message on the welcome to the community where some members might be more reactive.


Everyone can contribute to the development by:

  1. Forking the repository

  2. Developing the code as you wish!

  3. Creating a pull request

  4. Get accepted by the maintenance team.

Pull Requests

If you’re comfortable with GitHub’s pull request system and want to contribute code changes, follow these steps:

  1. Forking the repository

  2. Develop the code as you wish!

  3. Create a pull request

  4. Get accepted by the maintenance team.

Remember to adhere to the guidelines outlined in the repository to ensure your pull request is accepted.

Reporting Issues

If forking and pull requests seem too advanced or you just want to report issues, follow these steps:

Issues can be reported on the repository. This is the place to:

  • Flag usage difficulties (errors, inconsistencies, etc.) using the Issues feature.

  • Propose new features or improvements.

  • Discuss ideas or ask questions related to the EnergyScope project.

To report an issue: 1. Navigate to the Issues section of the repository. 2. Click on the green “New Issue” button. 3. Choose the appropriate issue template (if available) or provide details about the problem or suggestion. 4. Submit the issue.

Make sure to check existing issues to avoid duplicates and provide as much detail as possible to help the community understand and address your concern effectively.

Remember, your contributions, whether through code, documentation, or issue reporting, play a vital role in the development and improvement of EnergyScope.