A script to fetch packages via Github search and diff them against SPI

Overview

spi-package-importer

importer is a command line utility with three subcommands:

  • fetch package lists from Github via search and save them to JSON files
  • merge JSON files in package list format, writing a new file with unique packages
  • diff two JSON package list files to determine which packages are missing in our master list

The script run-all.sh demonstrates how these commands can be put together to compute a list of missing packages.

You might also like...
Utility to run the SPI-Server tests as a benchmark

spi-benchmark This package comprises a simple tool to run the SwiftPackageIndex-Server tests in a loop, logging the run times. The purpose is to colle

A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.
A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.

A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire. Summary This library provides an easy way to

An executable that can be called from a Run Script Build Phase that makes comments such as // TODO: or // SERIOUS: appear in Xcode's Issue Navigator giving them project-wide visibility.

XcodeIssueGenerator An executable that can be called from a Run Script Build Phase that makes comments such as // TODO: or // SERIOUS: appear in Xcode

Use Yelp API to fetch restuarants around a location and show them in a table view
Use Yelp API to fetch restuarants around a location and show them in a table view

Yelp Use Yelp API to fetch restuarants around a location and show them in a table view - Infinite scrolling, Prefetching, Image Caching. Design Patter

Xcode storyboards diff and merge tool.
Xcode storyboards diff and merge tool.

StoryboardMerge Storyboard diff and merge tool which: compares and merges two storyboard files, provides an automatic merge-facility, The storyboardin

Simple diff library in pure Swift

Diff Simple diffing library in pure Swift. Installing You can use Carthage or Swift Package Manager to install Diff. Usage Start by importing the pack

Dwifft is a small Swift library that tells you what the
Dwifft is a small Swift library that tells you what the "diff" is between two collections

Dwifft! In 10 seconds Dwifft is a small Swift library that tells you what the "diff" is between two collections, namely, the series of "edit operation

Diff - Simple diffing library in pure Swift

Diff Simple diffing library in pure Swift. Installing You can use Carthage or Swift Package Manager to install Diff. Usage Start by importing the pack

šŸŽ‰ WWDC 2021 Swift Student Challenge Winner šŸŽ‰ Dance Party allows users to record choreography and play against other users to try and match the key poses!
šŸŽ‰ WWDC 2021 Swift Student Challenge Winner šŸŽ‰ Dance Party allows users to record choreography and play against other users to try and match the key poses!

šŸ’ƒ Dance Party šŸ•ŗ šŸŽ WWDC 2021 Swift Student Challenge Winner šŸŽ‰ Installation Steps (Works on iPad Only) Clone or Download Unzip the .playgroundbook.z

WhiteAndFluffyTest - Scroll images and add them to your favourites via image page
WhiteAndFluffyTest - Scroll images and add them to your favourites via image page

Image service application Scroll images and add them to your favourites via imag

Github repo search with using mvvm-c and clean architecture and using combine swift

GitSearchWithMVVM-C-CleanArchitecture Github repo search with using mvvm-c and clean architecture and using combine swift. Content Overview How To Run

Github iOS Client  based on Github REST V3 API and GraphQL V4 API
Github iOS Client based on Github REST V3 API and GraphQL V4 API

ZLGithubClient Github iOS å®¢ęˆ·ē«Æ by Existorlive Objective-c 2.0 Swift 5 Cocoapods 1.9.1 iOS = 11.0 åŸŗäŗŽ Github REST V3 API 和 Github GraphQL V4 API 开发ēš„iOS客

Managing Pull Requests and Issues For GitHub & GitHub Enterprise

Trailer For maintained binaries and/or more info: Latest macOS version Latest iOS version Trailer CLI for Mac, Linux and Windows Trailer for Android N

A blog project where you can write your articles, upload photos, categorize them, and add them to your favorites

A blog project where you can write your articles, upload photos, categorize them, and add them to your favorites. The aim of the project is to learn the use of Core Data.

šŸ”’ Swift Obfuscator that protects iOS apps against reverse engineering attacks.
šŸ”’ Swift Obfuscator that protects iOS apps against reverse engineering attacks.

struct fjiovh4894bvic: XbuinvcxoDHFh3fjid { let VNfhnfn3219d: Vnahfi5n34djga func cxncjnx8fh83FDJSDd() - Lghbna2gf0gmh3d { return vPAOSNdcbif

A Quick macOS app that will check a website's sitemap.xml against a new domain
A Quick macOS app that will check a website's sitemap.xml against a new domain

Migrator Quick and dirty native macOS app that will check a website's sitemap.xml against a new domain. When you're developing your new website and wa

Wi-attack: Cross-technology Impersonation Attack against iBeacon Services

Wi-attack: Cross-technology Impersonation Attack against iBeacon Services

Brain training Rock, Paper, Scissors game where user must purposefully win or lose against computer
Brain training Rock, Paper, Scissors game where user must purposefully win or lose against computer

RockPaperScissors This is a Rock, Paper, Scissors game that includes an addition

eRouŔka (rouŔka = face mask in Czech) helps to fight against COVID-19

Read our FAQ: Czech, English eRouŔka (rouŔka = face mask in Czech) helps to fight against COVID-19. eRouŔka uses Bluetooth to scan the area around the

Comments
  • Potential issues

    Potential issues

    So I started going through the list this morning and there are some problems with the output from this tool:

    1. The Package.swift file can be anywhere in the repo where for a valid package it must be in the root.
    2. It finds packages with no products which we reject as part of validation.
    3. It includes a lot of test/example/experimentation packages.

    I started going through manually and removing bad packages that failed with the validation script from it but thatā€™s no good as next time we run this theyā€™ll all come back.

    If we want to use this regularly then we should add more validation to this tool, or adapt the validation script to not stop validating after one package has failed.

    ā€”

    Then, the tricky one is number 3 on that list above. I think itā€™s best if we draw a parallel with some other package managers, letā€™s take npm and RubyGems as examples. Both require an explicit user action to publish packages. With npm itā€™s a npm publish and with RubyGems itā€™s gem push.

    This is my biggest issue with this kind of method of adding packages. Itā€™ll collect all sorts of things that people either didnā€™t intend to be packages that other people would use or are just not useful as packages because someone was just playing around.

    If we align on this point, then we should add more validation or rules to try and weed out this kind of package. I donā€™t think this additional validation should be on the main validation script as if someone was making an intentional decision to submit a package, no matter how bare-bones it was, we should let it in.

    Things I can think of for this kind of validation would be:

    1. No packages without a significant README should be allowed. If we take this one for example, it a < 50 char README. Maybe we donā€™t auto-add anything with a README less than 500 characters.
    2. That wouldnā€™t catch this package though. For that, we might try removing common words like ā€œExamplesā€, ā€œDemoā€, ā€œExperimentā€, etcā€¦ The obvious one thatā€™s going to be problematic here is ā€œTestā€.
    3. Finally, we could have a denylist so that once weā€™ve flagged a package to not be auto-discovered, it wonā€™t get found again.
    4. There may be moreā€¦
    opened by daveverwer 2
Owner
Swift Package Index
Swift Package Index
Pjmgmt - Pentest project management script

pjmgmt Managing pentest projects is a painful task, it often leads to files and

JxTx 0 Dec 31, 2021
Carthage cache for S3, Minio, Ceph, Google Storage, Artifactory and many others

Rome Rome is a tool that allows developers on Apple platforms to use: Amazon's S3 Minio Ceph other S3 compatible object stores or/and a local folder y

Tommaso Piazza 792 Jan 4, 2023
šŸš€ Create XCFrameworks with ease! A Command Line Tool to create XCFramework for multiple platforms at one shot! The better way to deal with XCFrameworks for iOS, Mac Catalyst, tvOS, macOS, and watchOS.

Surmagic ?? Create XCFramework with ease! A Command Line Tool to create XCFramework for multiple platforms at one shot! The better way to deal with XC

Muhammed Gurhan Yerlikaya 260 Dec 28, 2022
A curated list of awesome SwiftUI tutorials, libraries, videos and articles.

Awesome SwiftUI ??ļø A curated list of awesome SwiftUI tutorials, libraries, sessions and articles. Contributing Found a SwiftUI library or snippet tha

Chinsyo 607 Jan 3, 2023
Go Flashcards for iOS and WatchOS - Official repository

Go Flashcards for iOS and WatchOS Go Flashcards for iOS and WatchOS is an application that allows users to create stacks of flashcards and review them

Roy 60 Dec 8, 2022
A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file

Swift Framework Template A template for new Swift Framework. What's in the template? Deployment Targets - iOS 9.0 / Mac OS X 10.10 / tvOS 9.0 / watchO

Rahul Katariya 529 Jun 27, 2022
Add validations to your text fields, Group them together and navigate through them via keyboard's return button and accessory view.

TFManager Let's say you have multiple UITextFields to get data from users. You need to handle each field keyboard's return key and add an accessory vi

Hosein Abbaspour 16 Sep 29, 2022
Search jailbreak packages using the Tweakio API, Parcility API or Canister API straight from Cydia, Installer, Sileo and Zebra!

Tweakio Search packages globally directly from your favourite package manager! Works with Cydia, Installer, Zebra and Sileo! How does it work The twea

null 17 Jan 1, 2023
This repo shows how to setup and use GitHub Actions as a CI for Swift Packages

GACalc This repo shows how to setup and use GitHub Actions as a CI for Swift Packages. Available environments on GitHib List of the all available envi

Michał Tynior 0 Nov 3, 2021
This repo shows how to set up and use GitHub Actions as a CI for Swift Packages

SwiftPackageWithGithubActionsAsCI This repo shows how to set up and use GitHub Actions as a CI for Swift Packages. Available environments on GitHib Li

Michał Tynior 0 Nov 3, 2021