These reports track the Pub ecosystem's migration from CocoaPods to Swift Package Manager.
This data was generated on 2024-10-06 using pub insights: https://github.com/loic-sharma/pub_insights
- 10,900 packages contain a
.podspec
file. - 444 packages contain a
.modulemap
file. - 42 packages contain a
Package.swift
file.
This contains the latest packages with at least one package archive entry that match these conditions:
- The entry is not in the
example
top-level directory - The entry is not in a
.framework
or.xcframework
directory - The entry has the
Package.swift
file name,.podspec
file extension, or.modulemap
file extension
DuckDB query...
.mode jsonlines
.output reports/packages_with_ios_dependencies_raw.jsonl
SELECT
lower_id,
identity,
name AS file
FROM 'entries/**/*.json'
WHERE
name NOT LIKE 'example/%' AND (
name LIKE '%Package.swift' OR
name LIKE '%.podspec' OR
name LIKE '%.modulemap'
)
;
.mode jsonlines
.output reports/latest_packages_with_ios_dependencies.jsonl
WITH
latest_identities AS (
SELECT identity
FROM 'tables/package_versions.json'
WHERE is_latest = true
),
latest_packages AS (
SELECT
ANY_VALUE(lower_id) AS lower_id,
identity,
ARRAY_AGG(file) AS files,
FROM 'reports/packages_with_ios_dependencies_raw.jsonl'
WHERE
identity IN (SELECT * FROM latest_identities) AND
file NOT LIKE 'example/%' AND
file NOT LIKE '%.framework/%.modulemap' AND
file NOT LIKE '%.xcframework/%.modulemap'
GROUP BY identity
)
SELECT
p.identity,
p.files::JSON AS files,
s.popularity_score,
s.like_count,
s.granted_points,
FROM latest_packages p
LEFT JOIN 'tables/package_scores.json' s
ON p.lower_id = s.lower_id
ORDER BY
s.popularity_score DESC,
p.identity ASC
;
Packages with .podspec
:
SELECT COUNT(DISTINCT lower_id)
FROM 'reports/packages_with_ios_dependencies_raw.jsonl'
WHERE file LIKE '%.podspec';