kin

Sane PBXProj files

https://github.com/serchinastico/kin

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.1%) to scientific vocabulary

Keywords

antlr ios pbxproj tool xcode
Last synced: 6 months ago · JSON representation

Repository

Sane PBXProj files

Basic Info
  • Host: GitHub
  • Owner: Serchinastico
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 4.1 MB
Statistics
  • Stars: 1,057
  • Watchers: 14
  • Forks: 35
  • Open Issues: 5
  • Releases: 30
Topics
antlr ios pbxproj tool xcode
Created almost 10 years ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md

logo

KIN Build Status

Kin is a minimalistic tool to check whether your project.pbxproj file is correct.

What does it do?

Have 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.

How does it work?

Kin 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).

Usage

Install Kin with your favorite python package manager. If you don't have one you can use pipx.

Using pipx

pipx install kin

Using easy_install

easy_install kin

Using Homebrew

brew install kin

Once installed, use Kin from your Xcode project directory. Kin will automatically detect where your project configuration is located and check whether it is correct.

$> kin CORRECT

If there is an error in your configuration file, Kin will return the offending line and a short description of the problem found.

$> kin ERROR: line 400:3 mismatched input ')' expecting 'inputPaths'

Optionally, you can provide the location of your project.pbxproj to Kin:

$> kin myProject/myProject.xcodeproj/project.pbxproj CORRECT

Text editor/IDE integration

The following text editor and IDE integration packages are available:

Emacs

Do you want to contribute?

Feel free to add any useful feature to Kin, we will be glad to improve it with your help.

Kin uses ANTLR to build a parser for pbxproj files. ANLTR can be installed with the following command:

bash brew install antlr

There is a Makefile that defines commands to work with Kin locally.

  • make compile - Compiles the grammar into an ANTLR parser. Run it every time you make changes to the PBXProj.g4 file.
  • make install - Installs a symlink of kin in your machine so that you can run it your local build.
  • make test - Runs all tests.
  • 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.

Only the PBXProj.g4 file needs to be committed, GitHub Actions will produce the compiled grammar files.

License

Copyright 2023 Serchinastico

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Owner

  • Name: Sergio Gutiérrez
  • Login: Serchinastico
  • Kind: user
  • Location: Madrid

I do things

GitHub Events

Total
  • Create event: 8
  • Release event: 3
  • Issues event: 4
  • Watch event: 39
  • Delete event: 4
  • Issue comment event: 8
  • Push event: 12
  • Pull request event: 7
  • Fork event: 3
Last Year
  • Create event: 8
  • Release event: 3
  • Issues event: 4
  • Watch event: 39
  • Delete event: 4
  • Issue comment event: 8
  • Push event: 12
  • Pull request event: 7
  • Fork event: 3

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 197
  • Total Committers: 12
  • Avg Commits per committer: 16.417
  • Development Distribution Score (DDS): 0.553
Past Year
  • Commits: 12
  • Committers: 3
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.333
Top Committers
Name Email Commits
Dave Nicolson d****n@g****m 88
Serchinastico g****b@s****m 47
Kin grammar bot a****s 26
Sergio Gutierrez s****o@g****m 14
Sergio Gutiérrez s****o@g****m 8
Davide Mendolia d****e@g****m 7
Branch Vincent b****t@g****m 2
zzj 2****h 1
ReadmeCritic f****t@g****m 1
Pedro Vicente Gómez Sánchez p****s 1
Daniel Martín m****9@y****s 1
Alexey Nikitin 3****d 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 46
  • Total pull requests: 73
  • Average time to close issues: 10 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 24
  • Total pull request authors: 9
  • Average comments per issue: 1.85
  • Average comments per pull request: 0.19
  • Merged pull requests: 70
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 4
  • Average time to close issues: 5 days
  • Average time to close pull requests: about 5 hours
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 3.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Serchinastico (14)
  • dnicolson (8)
  • pedrovgs (2)
  • jomnius (2)
  • ayushgoel (1)
  • ignacioespinoso (1)
  • mc7h (1)
  • ezoushen (1)
  • korhancgebologlu (1)
  • davideme (1)
  • danielmartin (1)
  • aiKrice (1)
  • timath98 (1)
  • jmccance (1)
  • philosopherdog (1)
Pull Request Authors
  • dnicolson (60)
  • Serchinastico (23)
  • branchvincent (2)
  • bscothern (2)
  • NewGlad (1)
  • idiomaticrefactoring (1)
  • danielmartin (1)
  • davideme (1)
  • ReadmeCritic (1)
Top Labels
Issue Labels
bug (14) enhancement (10) help wanted (4) question (1)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 2
  • Total downloads:
    • homebrew 50 last-month
    • pypi 139 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 35
  • Total maintainers: 1
pypi.org: kin

A simple project.pbxproj verifier

  • Versions: 28
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 139 Last month
Rankings
Stargazers count: 2.1%
Forks count: 6.8%
Average: 7.4%
Dependent repos count: 7.5%
Dependent packages count: 10.0%
Downloads: 10.6%
Maintainers (1)
Last synced: 6 months ago
formulae.brew.sh: kin

Sane PBXProj files

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 50 Last month
Rankings
Dependent packages count: 19.3%
Average: 40.9%
Downloads: 46.5%
Dependent repos count: 56.9%
Last synced: 6 months ago

Dependencies

setup.py pypi
  • antlr4-python3-runtime ==4.9.2
  • argparse ==1.4.0
.github/workflows/commit-grammar.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v2 composite
.github/workflows/python-package.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact master composite
  • actions/setup-java v1 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact master composite
.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v2 composite