# Contributing to abap2xlsx

Welcome and thanks for taking the time to contribute, it's great to have you here!

This is a set of guidelines for contributing to abap2xlsx. Mostly guidelines, not hard and fast rules: try to apply your best judgment and, when necessary, feel free to propose changes to this document via pull requests.

## Table of Contents

1. [Important Resources](#important-resources)
    1. [Discussion Board](#discussion-board)
    1. [GitHub](#github)
    1. [Slack](#slack)
1. [How to submit changes](#how-to-submit-changes)
    1. [Review process](#review-process)
    1. [Keeping PR up to date](#keeping-pr-up-to-date)

## Important Resources

### Discussion Board

We use the [SAP Community Network](https://community.sap.com/) as our discussion board for general questions concerning the usage of the library. You can [search for all content containing abap2xlsx](https://community.sap.com/search/?ct=all&q=abap2xlxs) before you post a new question. You also can limit the search [using the tag: abap2xlsx](https://answers.sap.com/topics/abap2xlsx.html). Please use this link when you want to [post a new question](https://answers.sap.com/questions/ask.html?primaryTagId=833755570260738661924709785639136&topics=abap2xlsx&question=%5Babap2xlsx%5D%20) the tag *abap2xlsx* will be prefilled).

### GitHub

While the discussion board is meant for general how-to questions, if you have found a bug or simply wish to inquire about a new feature please file an issue on GitHub and provide as much relevant information as possible: a well-written bug report is truly helpful.

### Slack

We have the channel [#abap2xlsx](https://sapmentors.slack.com/archives/CGG0UHDMG) in the SAP Mentors & Friends Slack. You can get [yourself an invite here](https://sapmentors-slack-invite.cfapps.eu10.hana.ondemand.com/).

## How to submit changes

Changes are handled via the usual pull request mechanism; clear, short PRs for bugfixes are best because they're easy to review but sometimes, especially with new features, the changes are more substantial: in this case please provide an overview and pointers to the most relevant changes to be checked. If possible, a PR should not exist in a vacuum, rather it should address or even close an issue already filed. This way, the relevant context can be provided without cluttering the PR itself. Last but not least, there is a separate document dedicated to the [coding guidelines](./docs/contributing/coding-guidelines.md).

### Review process

With the possible exception of the original authors it is recommended that contributors go through the PR process, even when they have push access. A different contributor will then review the PR, provide feedback on possible reworks or even merge it directly if all is in order. It is also possible to review changes and have someone else merge them, of course.

### Keeping PR up to date

When the review process takes a long time, regardless of the reason, the changes proposed by the PR might fall behind the master branch. If the author of the PR has allowed it (default setting in GitHub), another contributor might come along and merge the master branch into the PR branch, thereby freshening it. When conflicts happen, however, the PR author should resolve them. By all means, if necessary ask for help in the conversation section of the PR. If a PR lies dormant for too long, an effort will be made to get in touch with the author, to ensure the request is still relevant.
