{"id":31392822,"url":"https://github.com/tayloraswift/dollup","last_synced_at":"2026-04-22T03:00:45.799Z","repository":{"id":312472614,"uuid":"1047595869","full_name":"tayloraswift/dollup","owner":"tayloraswift","description":"taylor’s (not so) famous code formatter 🎀","archived":false,"fork":false,"pushed_at":"2026-04-11T04:21:42.000Z","size":246,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-11T06:13:57.364Z","etag":null,"topics":["autosync","formatter","swift"],"latest_commit_sha":null,"homepage":"https://github.com/ordo-one/dollup","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tayloraswift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["tayloraswift"]}},"created_at":"2025-08-30T19:14:42.000Z","updated_at":"2026-04-11T04:16:49.000Z","dependencies_parsed_at":"2026-03-12T05:37:55.674Z","dependency_job_id":"f57f5a3d-4ac1-4d5c-9a6f-c28c45718794","html_url":"https://github.com/tayloraswift/dollup","commit_stats":null,"previous_names":["tayloraswift/dollup"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/tayloraswift/dollup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fdollup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fdollup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fdollup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fdollup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tayloraswift","download_url":"https://codeload.github.com/tayloraswift/dollup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fdollup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32119065,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autosync","formatter","swift"],"created_at":"2025-09-29T04:44:04.520Z","updated_at":"2026-04-22T03:00:45.794Z","avatar_url":"https://github.com/tayloraswift.png","language":"Swift","funding_links":["https://github.com/sponsors/tayloraswift"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n🎀 \u0026nbsp; **dollup** \u0026nbsp; 🎀\n\na formally sound, risk-aware swift code formatter\n\n\u003c/div\u003e\n\n\n## Introduction\n\nDollup is a Swift formatter that emphasizes soundness of transformations and transparent risk management. It was created out of a recognition that many existing Swift formatters may subtly alter the semantics of reformatted Swift code, and often mix safe and unsafe transformations within the same formatting commands, which undermines developer confidence when formatting large tracts of code at scale.\n\nDollup takes a different approach. It makes an effort to segregate formatting passes by risk of semantic corruption, distinguishing between operations that can safely run continuously and automatically, moderate complexity rewrites that can be automated but need to be performed carefully in isolation and applied through pull requests, and higher level refactors that require manual review. This enables developers to make informed decisions about the level of human oversight needed when enforcing formatting styles at the organizational level.\n\n\u003c!-- DO NOT EDIT BELOW! AUTOSYNC CONTENT [STATUS TABLE] --\u003e\n| Platform | Status |\n| -------- | ------|\n| 🐧 Linux | [![Status](https://raw.githubusercontent.com/tayloraswift/dollup/refs/badges/ci/Tests/Linux/status.svg)](https://github.com/tayloraswift/dollup/actions/workflows/Tests.yml) |\n| 🍏 Darwin | [![Status](https://raw.githubusercontent.com/tayloraswift/dollup/refs/badges/ci/Tests/macOS/status.svg)](https://github.com/tayloraswift/dollup/actions/workflows/Tests.yml) |\n| 💝 Release | [![Status](https://raw.githubusercontent.com/tayloraswift/dollup/refs/badges/ci/SemanticRelease/_all/status.svg)](https://github.com/tayloraswift/dollup/actions/workflows/SemanticRelease.yml) |\n\u003c!-- DO NOT EDIT ABOVE! AUTOSYNC CONTENT [STATUS TABLE] --\u003e\n\n## Using prebuilt binaries\n\nDollup is easiest to use in precompiled form. The binaries are distributed from a parallel repo, [`ordo-one/dollup`](https://github.com/ordo-one/dollup).\n\n\u003c!-- DO NOT EDIT BELOW! AUTOSYNC CONTENT [ManifestDependency] --\u003e\n```swift\ndependencies: [\n    .package(url: \"https://github.com/ordo-one/dollup\", from: \"1.0.0\"),\n]\n```\n\u003c!-- DO NOT EDIT ABOVE! AUTOSYNC CONTENT [ManifestDependency] --\u003e\n\nAdding the binary package dependency will automatically make the plugin available.\n\n```bash\nswift package dollup --allow-writing-to-package-directory\n```\n\nSome people find it helpful to add formatting enforcement to their CI pipelines.\n\n```yaml\n-   name: 🎀 Format 🎀\n    run: |\n        swift package dollup --allow-writing-to-package-directory\n        git diff --exit-code\n```\n\nNote that prebuilt binaries are only available for select platforms.\n\n\u003c!-- DO NOT EDIT BELOW! AUTOSYNC CONTENT [Downloads] --\u003e\n| Platform | Architecture | Download |\n| -------- | ------------ | -------- |\n| 🍏 macOS | arm64 | [zip](https://download.rarestype.com/dollup/master/macOS-arm64/dollup.artifactbundle.zip) |\n| 🐧 Linux | arm64 | [zip](https://download.rarestype.com/dollup/master/Linux-aarch64/dollup.artifactbundle.zip) |\n| 🐧 Linux | x86_64 | [zip](https://download.rarestype.com/dollup/master/Linux-x86_64/dollup.artifactbundle.zip) |\n\u003c!-- DO NOT EDIT ABOVE! AUTOSYNC CONTENT [Downloads] --\u003e\n\n\n## Building from source\n\nTo build the `dollup` executable, you will need the Swift 6.2 (or newer) toolchain. Navigate to the project's root directory and run the following command:\n\n```bash\nswift build\n```\n\nThe compiled executable will be located in the `.build/debug` directory.\n\n## Usage\n\nMost users find the SwiftPM package plugin command to be simpler to use and sufficient for their formatting needs. Some users, typically those working on code generation systems, find it motivating to run `dollup` directly, as an executable.\n\nTo format a Swift file or all Swift files within a directory, run the `dollup` executable with the path to the file or directory as an argument, which will reformat the specified file in place.\n\n```bash\nswift run dollup [file-path]\n```\n\nWhen a directory is provided, `dollup` will recursively format all `.swift` files within it.\n\n\n## Configuration\n\nDollup is configured by creating a Swift executable that conforms to the `DollupConfiguration` protocol. This allows you to specify formatting options in a declarative way.\n\nHere's an example of a simple configuration file:\n\n```swift\nimport DollupConfig\nimport SystemPackage\n\n@main enum Main: DollupConfiguration {\n    public static func configure(file _: FilePath?, settings: inout DollupSettings) {\n        settings.check = true\n        settings.whitespace {\n            $0.width = 96\n            $0.braces = .egyptian\n\n            $0.indent.spaces = 4\n            $0.indent.ifConfig = false\n\n            $0.formatColonPadding = true\n            $0.keywordsOnSameLine = true\n        }\n    }\n\n    public static func filter(file: FilePath) -\u003e Bool {\n        true // run on all files\n    }\n    public static func report(file: FilePath) {\n        print(\"\u003e reformatted '\\(file)'\")\n    }\n}\n```\n\nThis configuration specifies that the code should be formatted with a maximum line width of 96 characters, Egyptian-style braces, and an indent width of 4 spaces. It also enables the integrity check, which ensures that the reformatted code is semantically equivalent to the original.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftayloraswift%2Fdollup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftayloraswift%2Fdollup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftayloraswift%2Fdollup/lists"}