Skip to content

Latest commit

 

History

History
52 lines (34 loc) · 3.52 KB

CONTRIBUTING.md

File metadata and controls

52 lines (34 loc) · 3.52 KB

Overview

Thank you for your interest in contributing to our project! It's people like you that make the open source community such a great community! 😊

We welcome any type of contribution, not only code. You can help and

  • analyze issues: take a look at the open issues. Even if you can't write code, commenting on them, showing that you care about a given issue matters. It helps us triage them.
  • report an issue: do not hesitate to file a new issue. The more details you can give the better
  • provide feedback: is the README insufficient or the API documentation unclear? Let us know!

Submitting code and pull request handling

All contributions are handled via Pull Requests (PRs). We are currently busy finalizing our open-source milestone release so your PR must target the main branch.

Quick checklist summary before submitting a PR:

  • 🔎 Make sure tests are added or updated to accommodate your changes. When possible, add tests to verify bug fixes and prevent future regressions.
  • 👌 Verify that tests pass and code is free of SwiftLint violations
  • 📖 Check that your commit message follows Conventional Commit standards and has a meaningful description of what it is about
  • 👍 Push it!

We reserve the right to close or to not process pull requests.

We recommend to run setupForCollaborators.sh in root directory once to install helpful tools. For example, the script will

  • install various git hooks
    • automatic formatting with SwiftFormat as part of pre-commit
    • to run a SwiftLint check automatically before pushing your sources to remote
    • to help creating a commit messages according to the Conventional Commits standards, just use git commit command
  • install Sourcery to generate UI components

If you choose to run the script please make sure your dev machine has

  • brew package manager for macOS
  • python 3.7+ (includes pip as package manager)
    • tip: you can use pyenv to manage and switch between multiple python versions
  • npm (with npx as package runner which is included with 5.2+)

Core component development

We are utilizing Sourcery to generate the same initialization pattern for core components across the board.

If you are interested in contributing to the development of core components, please follow this Guideline for more explanations in detail and an example of how to create a new component from the scratch.

Platform-specific Testing

For iOS you can leverage xcodebuild and scheme FioriSwiftUI-Package to run tests for all test target schemes. A convenient command is make test_ios.

For watchOS only FioriThemeManager is supported. To create and run the respective test scheme you can leverage command make test_watch.

Legal stuff

Developer Certificate of Origin (DCO)

Due to legal reasons, contributors will be asked to accept a DCO before they submit the first pull request to this projects, this happens in an automated fashion during the submission process. SAP uses the standard DCO text of the Linux Foundation.