Contributing to DiffKt
Contributing to DiffKt
We welcome and greatly value all kinds of contributions to DiffKt. You can contribute in several ways:
- Opening issues
- Contributing to the library code base
- Contributing examples
- Adding documentation
For contributions to ShapeKt, please visit the shapekt
repository here.
Operating System Support
Currently DiffKt build is supported on macOS as well as Ubuntu. Help is needed to support building on Windows.
Issues
If you encounter any issues, feel free to report it using GitHub issues. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue.
Pull Requests
Please follow these practices when proposing code changes and creating pull requests.
- Fork the repo and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- If you haven't already, complete the Contributor License Agreement ("CLA").
Deployment
To deploy DiffKt to the Central Repository:
Create a Sontatype JIRA account at
issues.sontatype.org
File an issue to get rights to push to
com.facebook
Install GnuPG and generate GPG keys
- On MacOS it is recommended to use Homebrew:
brew install gnupg
- Generate a key pair, provide a passphrase when prompted:
gpg --gen-key
- List the key pairs and note the last 8 characters of the 40-character key ID string:
gpg --list-keys
- Move into the .gnugpg directory:
cd ./.gnugpg
- Export the secret key:
gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/
- Send the public key to the Ubuntu server, replace the
XXXXXXXXX
placeholder with the key ID or last 8 characters of the key ID:gpg --send-keys --keyserver keyserver.ubuntu.com XXXXXXXXX
- On MacOS it is recommended to use Homebrew:
In your personal .gradle directory outside the project (often in directory like /Users/thomasnield/.gradle/) create a gradle.properties file and add the following contents to it. Be sure to provide the following information and change the signing.secretKeyRingFile file to your securing.gpg file path.
repositoryUsername=[your Sonatype JIRA username]
repositoryPassword=[your Sonatype JIRA password]
signing.keyId=[last 8 characters of the key ID]
signing.password=[your passphrase for the key]
signing.secretKeyRingFile=/Users/thomasnield/.gnupg/secring.gpg
- In the diffkt/kotlin/api/build.gradle.kts script, change the release version.
pom {
...
version = "X.X.X"
...
}
- In the diffkt/kotlin/api directory run the publish command:
./gradlew clean publish
- Upon success, log into Staged Repositories with your Sonatype JIRA account, select the artifact you just uploaded, close it, wait a few minutes for it to process, refresh, and then click "Release."
- Within an hour the artifact release should be visible in the repository.
Contributor License Agreement ("CLA")
In order to accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Meta’s open source projects.
Complete your CLA here: https://code.facebook.com/cla
License
By contributing to DiffKt, you agree that your contributions will be licensed as described in the LICENSE file in the root directory of this source tree.