# Governance

The `message_ix` team welcomes contributions of any kind from anyone!
If you are looking to understand how the team operates and how we decide what to do with your contributions, please read on.

Decisions in the `message_ix` framework are made following good scientific practice, that is, only after careful discussion and review from at least another colleague.
Depending on the size of the impact the decision will likely have, different scales of decision making are employed.
For small decisions, the decision may be handled by the [maintainers](#maintainers), while for larger decisions, discussion in the [weekly team meetings](#weekly-team-meetings) may be required.

## Maintainers

At the moment, `message_ix` is maintained by @khaeru and @glatterf42.
This mostly means that they are most active in responding to issues and discussions and perform the housekeeping work as it arises.
However, given the size of the `message_ix` framework, it is all but impossible to be truly familiar with every aspect of it.
For this reason, incoming questions may also be answered by various [specialists within our team](#specialists).

## Specialists

The `message_ix` framework covers many topics already and can be expanded to cover many more and coupled to various other scientific software.
Examples of this include the modules for water, buildings, material, and transport, or land-use emulators such as [MAgPIE](https://www.pik-potsdam.de/en/institute/departments/activities/land-use-modelling/magpie).
For all these topics, individual specialists within our team collaborate with one another.
We encourage everyone to use [trunk-based development](https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development) and [GitHub projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects) to develop their individual version of our code, while maintaining compatibility with other version.
We then encourage everyone to frequenly bring their changes to our code back to our `main` development branch. 

## Weekly Team Meetings

Every Thursday, the `message_ix` core developer team meets to discuss current developments.
This includes discussing proposed changes to the core formulation or new feature ideas in detail.

Once a month, this meeting is extended to invite everyone at IIASA with an interest in `message_ix`.
These meetings serve the purpose of giving a high-level overview as well as receiving feedback from people who do not join the other meetings. 
