Gradle plugin for adds support for integrating Carthage dependencies into a KMM project

Overview

carthage-gradle-plugin

Wire logo

This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected].

You can find the published source code at github.com/wireapp/wire.

For licensing information, see the attached LICENSE file and the list of third-party licenses at wire.com/legal/licenses/.

No license is granted to the Wire trademark and its associated logos, all of which will continue to be owned exclusively by Wire Swiss GmbH. Any use of the Wire trademark and/or its associated logos is expressly prohibited without the express prior written consent of Wire Swiss GmbH.

Description

Adds support for integrating Carthage dependencies into a KMM project.

Usage

  1. Install the Carthage build tool.
  2. Create a Cartfile with the desired dependencies in the project root.
  3. Add a carthage entry for your target in the gradle file, for example:
ios() {
   carthage {
      dependency("AFNetworking")
   }
}

  1. The dependency will be exposed as carthage.AFNetworking by default.

Publishing to wire-maven

To publish the plugin for internal consumption (e.g. in kalium), checkout wire-maven side by side with this repository:

.
├─ carthage-gradle-pluging/
├─ wire-maven/

then:

  • create a new branch in wire-maven with pattern chore/carthage-gradle-plugin/vX.Y.Z
  • run the publish task in carthage-gradle-plugin to generate the plugin's .jar
  • commit with message following the pattern chore: add carthage-gradle-plugin vX.Y.Z
  • create a pull request in wire-maven

Once the resulting pull request is merged in wire-maven a new version will be avalable for consumption.

Comments
  • chore: plublish to wire-maven

    chore: plublish to wire-maven


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    The publishing task is set to publish to ../local-maven which is inconvenient given that we want to temporarily publish to ../wire-maven/releases at wire-maven

    Solutions

    Change the publish uri to ../wire-maven/releases and correct the artifact's name


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by tmspzz 1
  • chore: add open source headers

    chore: add open source headers


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    Open source license headers are missing

    Solutions

    Add license headers

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by tmspzz 0
  • docs: update readme

    docs: update readme


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    The plugin should work for all Apple platforms

    Solutions

    Remove explicit restrictions to iOS


    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by tmspzz 0
  • chore: update ARTIFACT and rootProject.name

    chore: update ARTIFACT and rootProject.name


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    • Plugin name have the non-descriptive artifact name plugin
    • Project has the generic wire-gradle-plugin name

    Solutions

    Change artifact name to carthage-plugin Change project name to carthage-gradle-plugin

    Testing

    n/a


    PR Post Submission Checklist for internal contributors (Optional)

    • [ ] Wire's Github Workflow has automatically linked the PR to a JIRA issue

    PR Post Merge Checklist for internal contributors

    • [x] If any soft of configuration variable was introduced by this PR, it has been added to the relevant documents and the CI jobs have been updated.

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by typfel 0
  • chore: add GPL V3 License

    chore: add GPL V3 License


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [ ] contains a reference JIRA issue number like SQPIT-764
      • [ ] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    We need license before we make the repo public

    Solutions

    GPL V3

    Testing

    n/a


    PR Post Submission Checklist for internal contributors (Optional)

    • [ ] Wire's Github Workflow has automatically linked the PR to a JIRA issue

    PR Post Merge Checklist for internal contributors

    • [x] If any soft of configuration variable was introduced by this PR, it has been added to the relevant documents and the CI jobs have been updated.

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by typfel 0
  • feat: functioning Carthage plugin

    feat: functioning Carthage plugin


    PR Submission Checklist for internal contributors

    • The PR Title

      • [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
      • [x] contains a reference JIRA issue number like SQPIT-764
      • [x] answers the question: If merged, this PR will: ... ³
    • The PR Description

      • [x] is free of optional paragraphs and you have filled the relevant parts to the best of your ability

    What's new in this PR?

    Issues

    We want to import Carthage dependencies into our KMM project.

    Solutions

    Build a Carthage Gradle plugin which:

    • run Carthage
    • configures the cInterop
    • copies the frameworks into the binary.

    Testing


    PR Post Submission Checklist for internal contributors (Optional)

    • [x] Wire's Github Workflow has automatically linked the PR to a JIRA issue

    PR Post Merge Checklist for internal contributors

    • [x] If any soft of configuration variable was introduced by this PR, it has been added to the relevant documents and the CI jobs have been updated.

    References
    1. https://sparkbox.com/foundry/semantic_commit_messages
    2. https://github.com/wireapp/.github#usage
    3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
    opened by typfel 0
Owner
Wire Swiss GmbH
Wire open source secure messenger
Wire Swiss GmbH
Gradle Plugin to automatically upgrade your gradle project dependencies and send a GitHub pull request with the changes

Gradle Plugin to automatically upgrade your gradle project dependencies and send a GitHub pull request with the changes

Dipien 142 Dec 29, 2022
Graphfity is a Gradle Plugin which creates a dependency node diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module application

Graphfity creates a dependency nodes diagram graph about your internal modules dependencies, specially useful if you are developing a multi-module app

Iván Carrasco 27 Dec 20, 2022
A Gradle plugin that generates plugin.yml for Bukkit/BungeeCord/Nukkit plugins based on the Gradle project

plugin-yml is a simple Gradle plugin that generates the plugin.yml plugin description file for Bukkit plugins, bungee.yml for Bungee plugins or nukkit.yml for Nukkit plugins based on the Gradle project. Various properties are set automatically (e.g. project name, version or description) and additional properties can be added using a simple DSL.

Plexus 0 Apr 10, 2022
Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it

decomposer Gradle Plugin that allows you to decompile bytecode compiled with Jetpack Compose Compiler Plugin into Java and check it How to use Run bui

Takahiro Menju 56 Nov 18, 2022
Gradle plugin to ease Kotlin IR plugin development and usage in multimodule gradle projects

Gradle plugin to ease Kotlin IR plugin development and usage in multimodule gradle projects. Former: kotlin-ir-plugin-adapter-gradle

null 2 Mar 8, 2022
Gradle plugins for easy start into kotlin

Starter gradle plugins for kotlin The aim The aim of this project is to create a

MIPT-NPM 5 Mar 5, 2022
Grazel is a Gradle plugin to automate generation of valid Bazel files for a given Android/Kotlin/Java project.

Grazel Grazel stands for Gradle to Bazel. It is a Gradle plugin that enables you to migrate Android projects to Bazel build system in an incremental a

Grab 228 Jan 2, 2023
A Gradle plugin helps to proxy all the BuildConfig fields in the Android project.

Readme A Gradle plugin helps to proxy all the BuildConfig fields in the Android project. Background In android BuildConfig, We might have different co

Jack Chen 4 Oct 11, 2021
Gradle plugin for updating a project version catalog

Version catalog update plugin This plugin helps to keep the versions in a Gradle version catalog toml file up to date. The version updates are determi

Little Robots 307 Dec 26, 2022
Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.

CompleteKotlin Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms. What this plugin provides This zero-conf

Louis CAD 235 Jan 3, 2023
A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

A Gradle plugin that improves the experience when developing Android apps, especially system tools, that use hidden APIs.

Rikka apps 124 Dec 31, 2022
Gradle Plugin for Continuous Integration of AppSweep App Testing.

This Gradle plugin can be used to continuously integrate app scanning using AppSweep into your Android app build process

Guardsquare 28 Nov 13, 2022
Gradle plugin which validates the licenses of your dependency graph match what you expect

Gradle plugin which validates the licenses of your dependency graph match what you expect

Cash App 502 Dec 31, 2022
Artifactory is a gradle plugin to assist in developing Minecraft mods that can target different modloaders.

Artifactory Artifactory is a gradle plugin to assist in developing Minecraft mods that can target different modloaders. Currently, Fabric and Forge ar

Zach Kozar 3 Dec 29, 2021
A Gradle Plugin to determine which modules were affected by a set of files in a commit.

A Gradle Plugin to determine which modules were affected by a set of files in a commit. One use case for this plugin is for developers who would like to only run tests in modules which have changed in a given commit.

Dropbox 491 Dec 23, 2022
EasyVersion is a Gradle plugin that manage your app or library version.

EasyVersion EasyVersion is a Gradle plugin that manage your app or library version. Before Downloading Create easy_version.json in your root project d

Kosh Sergani 8 Nov 26, 2022
A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes.

Change Tracker Plugin A Gradle plugin to help analyse the dependency between modules and run tasks only on modules impacted by specific set of changes

Ismael Di Vita 110 Dec 19, 2022
Android Gradle Plugin -- Auto Check big image and compress image in building.

McImage I will continue to update, please rest assured to use 中文文档 Android优雅的打包时自动化获取全部res资源 McImage is a Non-invasive plugin for compress all res in

smallSohoSolo 1.1k Dec 28, 2022
Gradle plugin that generates a Swift Package Manager manifest and an XCFramework to distribute a Kotlin Multiplatform library for Apple platforms.

Multiplatform Swift Package This is a Gradle plugin for Kotlin Multiplatform projects that generates an XCFramework for your native Apple targets and

Georg Dresler 262 Jan 5, 2023