advanced radiative transfer in dusty systems
Contributing

Introduction

Thank you for reading this page and for considering a contribution to the open source SKIRT project. There are various valuable ways of contributing, such as:

The names of past and current contributors can be found here:

An overview of the project infrastructure is presented here:

The technical contribution mechanisms and workflows are discussed here:

Developer information, including (usually stricly enforced) coding style guidelines, can be found in the developer guides for each of the project components:

Contributor's hall of fame

The following people have contributed to the SKIRT project effort by developing code, writing documentation, and/or by extensively using the code and offering feedback. They are listed in alphabetical order on last name.

  • Maarten Baes
  • Christopher Barber
  • Christoph Behrens
  • Killian Braun
  • Peter Camps
  • Marjorie Decleir
  • Gert De Geyter
  • Ilse De Looze
  • Jacopo Fritz
  • Tom Hendrix
  • Alexander Mosenkov
  • Christian Peest
  • Waad Saftly
  • Marko Stalevski
  • James Trayford
  • Dries Van De Putte
  • Sebastiaan Vandewoude
  • Sam Verstocken
  • S√©bastien Viaene

If we inadvertently failed to list someone, please let us know.

Core team

The current members of the core SKIRT team are:

GitHub repositories

The SKIRT project repositories are hosted as part of the GitHub SKIRT organization. Next to the SKIRT and PTS source code, the source text for the web site is also placed in a repository, allowing contributions to the documentation through a workflow similar to that for source code. The following table lists the repositories in the SKIRT organization to which new contributions should be directed.

Repository Description
SKIRT9 SKIRT 9 C++ source code
PTS9 Python Toolkit for SKIRT 9
Web9 SKIRT and PTS guides plus project-wide pages

Reference documentation is embedded in the source code as special comment blocks in Doxygen format, and is thus automatically contained in a GitHub repository as a part of the development cycle. All other documentation (installation & user guide, tutorials, etc.) is authored as a set of text files in Doxygen format (i.e. special comment blocks without actual source code). These Doxygen source files, together with any referenced images and the relevant Doxygen configuration files, are contained in a separate public repository as indicated in the table above.

Web site

All documentation related to versions 8 and 9 of the SKIRT project is published on the web site www.skirt.ugent.be, which is hosted on the Ghent University web server. Each repository in the GitHub SKIRT organization includes a makeHTML.sh procedure that drives Doxygen to locally build HTML pages from the comment blocks embedded in the source code or text files in the repository. This procedure converts LaTeX formulas to images, performing a full LaTeX syntax check along the way. As a result, this procedure enables contributors to verify changes in the documentation before initiating a pull request (assuming Doxygen is installed on their system).

To allow combining the documentation from the various repositories into a single web site, the Web9 repository also contains a stageWebsite.sh procedure to locally build the complete web site from a local copy of all relevant repositories (SKIRT8, SKIRT9, PTS, PTS9, Web8, Web9). This procedure uses MATHJAX to render LaTeX formulas, which avoids the many images created by an explicit conversion, and leads to a much more pleasing formula presentation. While any contributor can stage the web site, assuming they have a local copy of all relevant repositories, only a core team member can actually publish the web site because it requires write access rights to the web server.

Data

Because of size limitations on the Ghent University web server and in GitHub repositories, data files needed by the code and/or linked from the web site are handled separately and are hosted on the Ghent University science faculty data server. Examples of extra data files include:

These data files are prepared and published by a core team member. There is at this point no automated workflow for other contributors to participate in this effort, although many of the procedures are available as part of PTS. For example, contributors can locally prepare and use new SKIRT 9 stored table resource files by adjusting or extending the appropriate PTS functions.

GitHub teams

The GitHub SKIRT organization currently offers three access levels:

Any GitHub user Because the repositories are public, any GitHub user has read access and can post an issue or send a pull request
Contributor team members Members of this team have access to the SKIRT Contributor team page so that they can participate in project-wide discussions and receive SKIRT-related broadcast notifications
Core team members The core SKIRT team members have push access rights to the repositories and are responsible for managing issues and pull requests (e.g., closing issues or merging pull requests)

Users with a specific interest in SKIRT are encouraged to become a member of the Contributor team. Notifications about important events (e.g., a new major feature becoming available, or an upcoming SKIRT user group meeting) will be broadcast to contributors through the GitHub Contributor team page. The team page also facilitates discussions that are not directly related to a particular technical issue. For example, there could be discussions about a given SKIRT use case or about an upcoming conference in a related field.

To become a member of the SKIRT Contributor team, contact one of the core SKIRT team members:

For more information on GitHub team discussions, refer to GitHub help.

GitHub issues

Usage questions, bug reports and feature requests are managed through the issues system offered by GitHub for each of the repositories listed in section GitHub repositories above. Anyone can post an issue, and anyone can respond. Users are encouraged to participate also by adding relevant information to issues posted by other users. Example contributions in this area include:

The Core team is responsible for following up on and eventually closing issues as needed.

To post an issue:

For more information on GitHub issues, refer to GitHub help.

GitHub pull requests

The repositories in the SKIRT organization use the GitHub fork and pull workflow model. Anyone can fork a repository, push changes to their personal fork, and initiate a pull request. The changes can be pulled into the original repository by a Core team member, possibly after discussion and/or being adjusted in one or more iterations.

To get started with contributing to one of the SKIRT project repositories:

To initiate a pull request:

For more information on this workflow, refer to the following GitHub help topics: