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!
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 macOSpython
3.7+ (includespip
as package manager)- tip: you can use pyenv to manage and switch between multiple python versions
npm
(withnpx
as package runner which is included with 5.2+)
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.
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
.
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.