All Projects → shibapm → Komondor

shibapm / Komondor

Licence: mit
Git Hooks for Swift projects 🐩

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Komondor

Realityui
A Swift Package for creating familiar UI Elements and animations in a RealityKit rendered Augmented Reality or Virtual Reality scene.
Stars: ✭ 275 (-38.89%)
Mutual labels:  swift-package-manager
Static Review
✋ An extendible framework for version control hooks.
Stars: ✭ 330 (-26.67%)
Mutual labels:  git-hooks
Bluetoothconnector
Simple macOS CLI to connect/disconnect a Bluetooth device. Useful for AirPods or other Bluetooth headphones.
Stars: ✭ 388 (-13.78%)
Mutual labels:  swift-package-manager
Skeletonui
☠️ Elegant skeleton loading animation in SwiftUI and Combine
Stars: ✭ 275 (-38.89%)
Mutual labels:  swift-package-manager
Swiftweekly.github.io
A community-driven weekly newsletter about Swift.org
Stars: ✭ 305 (-32.22%)
Mutual labels:  swift-package-manager
Ice
❄️ A developer friendly package manager for Swift; 100% compatible with Swift Package Manager
Stars: ✭ 344 (-23.56%)
Mutual labels:  swift-package-manager
Roundcode
Custom rounded QR code with lots of customization.
Stars: ✭ 267 (-40.67%)
Mutual labels:  swift-package-manager
Awesome Git Hooks
😎 A collection of awesome Git Hooks
Stars: ✭ 407 (-9.56%)
Mutual labels:  git-hooks
Lightning
A Swift Multiplatform Single-threaded Non-blocking Web and Networking Framework
Stars: ✭ 312 (-30.67%)
Mutual labels:  swift-package-manager
Xcbeautify
A little beautifier tool for xcodebuild
Stars: ✭ 372 (-17.33%)
Mutual labels:  swift-package-manager
Stepperview
SwiftUI iOS component for Step Indications.
Stars: ✭ 281 (-37.56%)
Mutual labels:  swift-package-manager
Functionkit
A framework for functional types and operations designed to fit naturally into Swift.
Stars: ✭ 302 (-32.89%)
Mutual labels:  swift-package-manager
Grumphp
Submitting bugs and feature requests
Stars: ✭ 3,679 (+717.56%)
Mutual labels:  git-hooks
Swiftuix
Extensions and additions to the standard SwiftUI library.
Stars: ✭ 4,087 (+808.22%)
Mutual labels:  swift-package-manager
Siren
Siren checks a user's currently installed version of your iOS app against the version that is currently available in the App Store.
Stars: ✭ 3,892 (+764.89%)
Mutual labels:  swift-package-manager
Containercontroller
UI Component. This is a copy swipe-panel from app: Apple Maps, Stocks. Swift version
Stars: ✭ 273 (-39.33%)
Mutual labels:  swift-package-manager
Swift5 Module Template
An opinionated starting point for awesome, reusable Swift 5 modules
Stars: ✭ 331 (-26.44%)
Mutual labels:  swift-package-manager
Tweetextfield
Lightweight set of text fields with nice animation and functionality. 🚀 Inspired by https://uimovement.com/ui/2524/input-field-help/
Stars: ✭ 421 (-6.44%)
Mutual labels:  swift-package-manager
Swiftsunburstdiagram
SwiftUI library to easily render diagrams given a tree of objects. Similar to ring chart, sunburst chart, multilevel pie chart.
Stars: ✭ 400 (-11.11%)
Mutual labels:  swift-package-manager
Git Confirm
❓ Git hook to catch placeholders and temporary changes (TODO / @ignore) before you commit them.
Stars: ✭ 356 (-20.89%)
Mutual labels:  git-hooks

Komondor

Git Hook automation for Swift and Xcode projects. A port of Husky to Swift.

TL:DR

  1. Add or amend a Package.swift
  2. Add this dependency .package(url: "https://github.com/shibapm/Komondor.git", from: "1.0.0"),
  3. Run the install command: swift run komondor install
  4. Add a config section to your Package.swift

Then you'll get git-hooks consolidated and centralized so that everyone can work with the same tooling.

Why?

If you care about something, you should automate it.

Git Hooks like what Komondor provides gives you more surface area for per-project automation. Komondor provides an easily understood way to see how all the git automation touch-points in your project will come together. These hooks allow for much faster feedback during development and let different team-members to use different tools but still have the same bar of quality.

For example, adding SwiftFormat to your pre-commit hook means that no-one will ever need to discuss formatting in code review again. Perfect. It won't slow down your Xcode builds, because it lives outside of your project and you can verify it on CI if you'd like to be 100% that everyone conforms.

Another example, running tests before pushing - this means you don't have to come back 10-15m later once CI has told you that you have a failing test. This moves more validation to a point where you are still in-context.

An Example

This is from the repo you're looking at:

#if canImport(PackageConfig)
    import PackageConfig

    let config = PackageConfiguration([
        "komondor": [
            "pre-push": "swift test",
            "pre-commit": [
                "swift test",
                "swift run swiftformat .",
                "swift run swiftlint autocorrect --path Sources/",
                "git add .",
            ],
        ],
    ]).write()
#endif

See more about the config here.

Getting Set up

On a SwiftPM project On an Xcode Project

Deployment

Use swift run rocket [patch]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].