{"id":22066177,"url":"https://github.com/serchinastico/kin","last_synced_at":"2025-05-14T08:09:27.236Z","repository":{"id":41205850,"uuid":"54463011","full_name":"Serchinastico/Kin","owner":"Serchinastico","description":"Sane PBXProj files","archived":false,"fork":false,"pushed_at":"2025-05-08T16:42:19.000Z","size":4301,"stargazers_count":1042,"open_issues_count":5,"forks_count":35,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-05-10T04:01:48.368Z","etag":null,"topics":["antlr","ios","pbxproj","tool","xcode"],"latest_commit_sha":null,"homepage":"","language":"Python","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/Serchinastico.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2016-03-22T09:37:49.000Z","updated_at":"2025-05-08T16:42:20.000Z","dependencies_parsed_at":"2023-10-11T12:44:41.512Z","dependency_job_id":"83e2c0e1-bb79-40ea-8a99-a053f854f314","html_url":"https://github.com/Serchinastico/Kin","commit_stats":{"total_commits":147,"total_committers":14,"mean_commits":10.5,"dds":0.5170068027210885,"last_synced_commit":"60d0c32977d113462476a5afac4876f1fa96a71f"},"previous_names":["karumi/kin"],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serchinastico%2FKin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serchinastico%2FKin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serchinastico%2FKin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Serchinastico%2FKin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Serchinastico","download_url":"https://codeload.github.com/Serchinastico/Kin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101558,"owners_count":22014908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["antlr","ios","pbxproj","tool","xcode"],"created_at":"2024-11-30T19:26:26.815Z","updated_at":"2025-05-14T08:09:22.228Z","avatar_url":"https://github.com/Serchinastico.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![logo][logo]\n\n# KIN [![Build Status](https://github.com/Serchinastico/Kin/actions/workflows/python-publish.yml/badge.svg)](https://github.com/Serchinastico/Kin/releases)\n\nKin is a minimalistic tool to check whether your project.pbxproj file is correct.\n\n## What does it do?\n\nHave you ever found yourself undoing a merge due to a broken Xcode build? Then Kin is your tool. It will parse your project configuration file and detect errors.\n\n## How does it work?\n\nKin is just a syntax checker built with ANTLR 4 with a very thin layer to be usable from command line. On the fly syntax checking integration for text editors and IDEs is a work in progress (see the \"Text editor/IDE integration\" section below).\n\n## Usage\n\nInstall Kin with your favorite python package manager. If you don't have one you can use [pipx](https://pypa.github.io/pipx/).\n\nUsing `pipx`\n\n```\npipx install kin\n```\n\nUsing `easy_install`\n\n```\neasy_install kin\n```\n\nUsing Homebrew\n\n```\nbrew install kin\n```\n\nOnce installed, use Kin from your Xcode project directory. Kin will automatically detect where your project configuration is located and check whether it is correct.\n\n```\n$\u003e kin\nCORRECT\n```\n\nIf there is an error in your configuration file, Kin will return the offending line and a short description of the problem found.\n\n```\n$\u003e kin\nERROR: line 400:3 mismatched input ')' expecting 'inputPaths'\n```\n\nOptionally, you can provide the location of your project.pbxproj to Kin:\n\n```\n$\u003e kin myProject/myProject.xcodeproj/project.pbxproj\nCORRECT\n```\n\n## Text editor/IDE integration\n\nThe following text editor and IDE integration packages are available:\n\nEmacs\n\n- [flycheck-pbxproj](https://github.com/danielmartin/flycheck-pbxproj)\n\n## Do you want to contribute?\n\nFeel free to add any useful feature to Kin, we will be glad to improve it with your help.\n\nKin uses [ANTLR](https://www.antlr.org/) to build a parser for pbxproj files. ANLTR can be installed with the following command:\n\n```bash\nbrew install antlr\n```\n\nThere is a [Makefile](./Makefile) that defines commands to work with Kin locally.\n\n- `make compile` - Compiles the grammar into an ANTLR parser. Run it every time you make changes to the `PBXProj.g4` file.\n- `make install` - Installs a symlink of kin in your machine so that you can run it your local build.\n- `make test` - Runs all tests.\n- `make test_last` - It builds and installs kin and then runs it against the latest modified test file. This is usually your go-to command while working on kin.\n\nOnly the `PBXProj.g4` file needs to be committed, GitHub Actions will produce the compiled grammar files.\n\n## License\n\n    Copyright 2023 Serchinastico\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n[logo]: art/logo.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserchinastico%2Fkin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserchinastico%2Fkin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserchinastico%2Fkin/lists"}