{"id":31527812,"url":"https://github.com/inseven/diligence","last_synced_at":"2026-04-20T23:04:28.629Z","repository":{"id":56728996,"uuid":"423659307","full_name":"inseven/diligence","owner":"inseven","description":"SwiftUI About Screens","archived":false,"fork":false,"pushed_at":"2026-03-23T17:41:02.000Z","size":1311,"stargazers_count":21,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-03T15:21:38.090Z","etag":null,"topics":["ios","macos","swift","swiftui"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inseven.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":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["jbmorley"]}},"created_at":"2021-11-02T00:37:24.000Z","updated_at":"2026-03-23T17:41:06.000Z","dependencies_parsed_at":"2024-01-03T19:31:18.456Z","dependency_job_id":"8c342438-7f1b-4217-a966-50253f0bb09c","html_url":"https://github.com/inseven/diligence","commit_stats":{"total_commits":89,"total_committers":2,"mean_commits":44.5,"dds":0.1797752808988764,"last_synced_commit":"781a47c9050c6cae7b5ff4458afdeb530c195072"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/inseven/diligence","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inseven%2Fdiligence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inseven%2Fdiligence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inseven%2Fdiligence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inseven%2Fdiligence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inseven","download_url":"https://codeload.github.com/inseven/diligence/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inseven%2Fdiligence/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32069442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T21:26:33.338Z","status":"ssl_error","status_checked_at":"2026-04-20T21:26:22.081Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ios","macos","swift","swiftui"],"created_at":"2025-10-03T22:47:06.558Z","updated_at":"2026-04-20T23:04:28.598Z","avatar_url":"https://github.com/inseven.png","language":"Swift","funding_links":["https://github.com/sponsors/jbmorley"],"categories":[],"sub_categories":[],"readme":"# Diligence\n\n[![build](https://github.com/inseven/diligence/actions/workflows/build.yaml/badge.svg)](https://github.com/inseven/diligence/actions/workflows/build.yaml)\n\nSwiftUI About Screens\n\n## Overview\n\nDiligence is a lightweight Swift package with a collection UI controls for building about screens for macOS and iOS apps.\n\n## Screenshots\n\n### iOS\n\n| Anytime                            | StatusPanel                                | OPL                        |\n| ---------------------------------- | ------------------------------------------ | -------------------------- |\n| ![anytime](images/anytime-iOS.png) | ![statuspanel](images/statuspanel-iOS.png) | ![opl](images/opl-iOS.png) |\n\n### macOS\n\u003cimg src=\"images/Fileaway-macOS.png\" width=\"712\" /\u003e\n\n## Build Numbers\n\nDiligence supports build numbers conforming to the following structure:\n\n```\nYYmmddHHMMxxxxxxxx\n```\n\n- `YY` -- two-digit year\n- `mm` -- month\n- `dd` -- day\n- `HH` -- hours (24h)\n- `MM` -- minutes\n- `xxxxxxxx` -- zero-padded integer representation of a 6-character commit SHA\n\nThese build numbers are guaranteed to be always incrementing and, as such, safe to be used for iOS and macOS apps while also encoding the build date and commit.\n\nIf Diligence detects a build number in this format, it will display this additional information in the about screen.\n\n#### Generating Build Numbers\n\nDiligence comes with a Swift command-line script that can be used to generate suitable build numbers. From the root Diligence directory, run the following command:\n\n```bash\nscripts/build-number.swift\n221021001716408432\n```\n\nThis can be injected into your project build by building from the command line and setting the `CURRENT_PROJECT_VERSION` environment variable. For example, the command line to archive a release build for the TinyBoard project is as follows:\n\n```bash\nBUILD_NUMBER=`diligence/scripts/build-number.swift`\nxcode_project \\\n    -scheme \"TinyBoard\" \\\n    -config Release \\\n    CURRENT_PROJECT_VERSION=$BUILD_NUMBER \\\n    archive\n```\n\n## Usage\n\n### iOS\n\n```swift\nAboutView {\n  Action(\"InSeven Limited\", url: URL(string: \"https://inseven.co.uk\")!)\n  Action(\"Privacy Policy\", url: URL(string: \"https://anytime.world/privacy-policy\")!)\n  Action(\"Support\", url: URL(address: \"support@anytime.world\", subject: \"Anytime Support\")!)\n} acknowledgements: {\n  Acknowledgements(\"Contributors\") {\n    Credit(\"Jason Morley\", url: URL(string: \"https://jbmorley.co.uk\"))\n    Credit(\"Pavlos Vinieratos\", url: URL(string: \"https://github.com/pvinis\"))\n    Credit(\"Sarah Barbour\")\n  }\n  Acknowledgements(\"Graphics\") {\n    Credit(\"Anna Wilk\")\n  }\n  Acknowledgements(\"Thanks\") {\n    Credit(\"Blake Merryman\")\n    Credit(\"Joanne Wong\")\n    Credit(\"Johannes Weiß\")\n    Credit(\"Lukas Fittl\")\n    Credit(\"Michael Dales\")\n    Credit(\"Michi Spevacek\")\n    Credit(\"Mike Rhodes\")\n    Credit(\"Sara Frederixon\")\n    Credit(\"Terrence Talbot\")\n    Credit(\"Tom Sutcliffe\")\n  }\n} licenses: {\n  License(\"Introspect\", author: \"Timber Software\", filename: \"introspect-license\")\n}\n```\n\n### macOS\n\n```swift\nimport SwiftUI\n\nimport Diligence\n\n@main\nstruct BookmarksApp: App {\n\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n        }\n\n        About {\n            Action(\"InSeven Limited\", url: URL(string: \"https://inseven.co.uk\")!)\n            Action(\"Support\", url: URL(address: \"support@inseven.co.uk\", subject: \"Bookmarks Support\")!)\n        } acknowledgements: {\n            Acknowledgements(\"Developers\") {\n                Credit(\"Jason Morley\", url: URL(string: \"https://jbmorley.co.uk\"))\n            }\n            Acknowledgements(\"Thanks\") {\n                Credit(\"Blake Merryman\")\n                Credit(\"Joanne Wong\")\n                Credit(\"Lukas Fittl\")\n                Credit(\"Pavlos Vinieratos\")\n                Credit(\"Sara Frederixon\")\n                Credit(\"Sarah Barbour\")\n                Credit(\"Terrence Talbot\")\n            }\n        } licenses: {\n            License(\"Binding+mappedToBool\", author: \"Joseph Duffy\", filename: \"Binding+mappedToBool\")\n            License(\"Diligence\", author: \"Jason Morley\", filename: \"Diligence\")\n            License(\"Interact\", author: \"Jason Morley\", filename: \"interact-license\")\n            License(\"Introspect\", author: \"Timber Software\", filename: \"Introspect\")\n            License(\"SQLite.swift\", author: \"Stephen Celis\", filename: \"SQLite-swift\")\n            License(\"TFHpple\", author: \"Topfunky Corporation\", filename: \"TFHpple\")\n        }\n\n    }\n}\n```\n\n### Caveats\n\nDiligence currently makes some assumptions that will be addressed in future updates:\n\n- Diligence expects to find an image asset named \"Icon\" in your application's main bundle containing your icon.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finseven%2Fdiligence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finseven%2Fdiligence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finseven%2Fdiligence/lists"}