Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swift Package Mangerのバグを直した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
k-kohey
September 26, 2023
Technology
1.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift Package Mangerのバグを直した話
k-kohey
September 26, 2023
More Decks by k-kohey
See All by k-kohey
ゲームボーイアドバンスでSwiftを動かそう
k_koheyi
0
1.5k
swift-async-algorithms...? へえ…面白そうじゃん…?
k_koheyi
3
1.8k
[社内勉強会]Parchment-swiftの実装説明
k_koheyi
0
210
[社内勉強会]Combineの説明
k_koheyi
0
62
あるインスタンスの取る値が 何パターンあるか数えてみるンゴ!
k_koheyi
1
210
Tuistを用いた Xcode Project管理の紹介
k_koheyi
0
280
SwiftでわかるSOLID原則 iOSDC 2020
k_koheyi
3
3.1k
Other Decks in Technology
See All in Technology
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
130
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
140
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
400
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
3
990
Webとヘルスデータ
yukukotani
1
200
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
120
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
エンタープライズInnerSourceと開発者ポータル
nogikazuma
1
110
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
110
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
160
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
0
120
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
For a Future-Friendly Web
brad_frost
183
10k
Docker and Python
trallard
47
4.2k
Writing Fast Ruby
sferik
630
63k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Tell your own story through comics
letsgokoyo
1
1.1k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
From π to Pie charts
rasagy
0
360
Transcript
4XJGU1BDLBHF.BOHFS ͷόάΛͨ͠ ू·Ε4XJGU͖ʂ4XJGUѪձWPM!%F/" גࣜձࣾϦΫϧʔτ LLPIFZ
ಥવͰ͕͢ 4XJGU1BDLBHF.BOBHFSͬͯ·͔͢ʁ🙋🙋
͜ͷ-5Ͱ͢ࣄʛഎܠ • 4XJGU1BDLBHF.BOBHFSΛͬͯ$ݴޠͷ5BSHFUΛ࡞Δ͜ͱ͕Ͱ͖Δ • 5BSHFUʹιʔεϑΝΠϧ͚ͩͰͳ͘ϔομʔϑΝΠϧؚΉ͜ͱ͕Ͱ͖Δ • $ݴޠͷ5BSHFUιʔεϑΝΠϧ͕̍ͭҎ্ؚ·Εͳ͍ͱ࡞Εͳ͍ όά͕͋ͬͨʢ˞ʣ • ιʔεϑΝΠϧؚ͕·Εͳ͍ͱΤϥʔΛग़ྗ͢Δ
• ݪཧతʹϔομʔϑΝΠϧͷΈͰΑ͍ͣ ʢ˞ʣhttps://github.com/apple/swift-package-manager/issues/4806
͜ͷ-5Ͱ͢ࣄʛഎܠ ͦͷͨΊϔομʔϑΝΠϧ͔͠ඞཁͳ͍5BSHFUͰۭͷ࣮Λ ιʔεϑΝΠϧͱͯ͠Ճ͢ΔϫʔΫΞϥϯυ͕ੜ https://github.com/apple/swift-numerics/blob/main/Sources/_NumericsShims/_NumericsShims.c (意訳) - このファイルは NumericShims モジュールを ビルドするためだけに存在する
- このファイルがないと swiftpm は何もビルド しない
͜ͷ-5Ͱ͢ࣄʛഎܠ ͨ͠🎉
4XJGU1BDLBHF.BOBHFSίϯτϦϏϡʔτॳ৺ऀ ͕ίϯτϦϏϡʔτͨ͠ମݧΛجʹ ಉ͘͡ॳ৺ऀ͕ίϯτϦϏϡʔτ͢Δࡍͷॿ͚ʹͳΔΑ͏ʹ ݟΛڞ༗ɾൃද͍ͨ͠ͱࢥ͍·͢ʂ
͜ͷ-5Ͱ͢ࣄʛΞδΣϯμ ҎԼͷ߲ʹԊͬͯ͠·͢ • ։ൃ͢Δલ४උ • मਖ਼͢Δ • 13Λ࡞Δ • ײ
։ൃ͢Δલ४උʛJTTVFΛݟ͚ͭΔ • JTTVFͨ͘͞Μ͋Δ • ݅ͷJTTVF͕PQFO͞Ε͍ͯΔʢ࣌ʣ • HPPEpSTUJTTVFϥϕϧͰϑΟϧλ͢ΔͱͷJTTVFΛݟ͚͍ͭ͢ https://github.com/apple/swift-package- manager/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
։ൃ͢Δલ४උʛJTTVFΛબ͢Δ JTTVFΛબ͢Δ্ͰҎԼͷ֬ೝΛ͢Δͱྑͦ͞͏ͩͬͨ • طʹ'JYࡁΈͷJTTVFͰͳ͍͔ • JTTVF͕PQFOͰɺ࣮ॏෳ͢Δ༰ͷJTTVF͕ଘࡏ͠ɺͦͷJTTVF͕طʹमਖ਼͞Ε͍ͯΔͱ͍͏ έʔε͕͋Δ • Ί΅͍͠ΩʔϫʔυͰݕࡧ͠ɺࣅͨΑ͏ͳJTTVF͕ͳ͍͔֬ೝ͢Δͱྑ͍ •
طʹJTTVFʹணख͍ͯ͠Δਓ͕͍ͳ͍͔ • ΞαΠϯ͕ܾ·ͬͯΔΑ͏ʹݟ͑ͯɺ͍ؒQFOEJOHʹͳ͍ͬͯΔͷ͋Δʹҙ • मਖ਼ํʹؔͯ͠ • ϝϯςφʔͷํ͕Օॴमਖ਼ํʹؔͯ͠ΞυόΠε͍ͯ͠ΔJTTVFΛࢄݟͨͨ͠Ίɺฉ͍ͨΒ ڭ͑ͯ͘Εͦ͏ͳงғؾ͕͋ͬͨ
։ൃ͢Δલ४උ ʛڥߏங ڥߏங9DPEF͕͑Δڥͩͱ؆୯ʹߦ͑Δʢ˞ʣ 9DPEFΛΠϯετʔϧ IUUQTHJUIVCDPNBQQMFTXJGUQBDLBHFNBOBHFSΛ DMPOF͢Δ ϧʔτσΟϨΫτϦʹଘࡏ͢Δ1BDLBHFTXJGUΛ։͘
ҙͷ4DIFNFΛબ͠Ϗϧυ͢Δ ςετΛ࣮ߦ͢Δ߹4XJGU1.1BDLBHFΛબ ʢ˞ʣhttps://github.com/apple/swift-package-manager/blob/main/CONTRIBUTING.md#using-xcode-easiest
मਖ਼͢ΔʛΞτϥΠϯ ࣗͷमਖ਼ΛྫʹͱΔͱҎԼͷΑ͏ͳաఔͰमਖ਼Λߦͬͨ ग़ྗ͔ΒՕॴΛಛఆ ՕॴʹςετίʔυΛՃ ςετ͕௨ΔΑ͏ʹίʔυΛमਖ਼
मਖ਼͢Δʛग़ྗ͔ΒՕॴΛಛఆ मਖ਼ͷରͱͳΔ)FBEFSϑΝΠϧͷΈΛؚΜͩ5BSHFUΛ࡞Ζ͏ ͱ͢ΔͱɺҎԼͷΑ͏ͳग़ྗ͕ಘΒΕΔࣄ͕Θ͔͍ͬͯͨ • [warning]: Source files for target Bar
should be located under 'Sources/Bar', or a custom sources path can be set with the 'path' property in Package.swift • [error]: target 'Bar' referenced in product 'Bar' is empty
मਖ਼͢Δʛग़ྗ͔ΒՕॴΛಛఆ ग़ྗΛجʹϓϩδΣΫτͰݕࡧΛ͔͚ΔͱɺΤϥʔΛग़ྗ͍ͯ͠ΔՕॴɺ ͭ·ΓՕॴΛѲ͢Δ͜ͱ͕Ͱ͖ͨ
ᶃΤϥʔ࣌ͷग़ྗΛߦ͏ ͕ؔ໌ ᶄ্هͷؔUBSHFU͕OJMͷͱ͖ʹ ݺΕΔ͜ͱ͕໌ ᶅUBSHFUΛ࡞ΔࡍʹOJMΛฦ͍ͯ͠Δ Օॴ͕໌
मਖ਼͢ΔʛՕॴʹςετίʔυΛՃ • Օॴ͕໌ͨ͠ͷͰɺςετίʔυΛՃͯ͠σόοά͢Δ४උΛߦ ͳͬͨ • 4XJGU1BDLBHF.BOBHFSΛϏϧυͯ͠ɺੜ͞Εͨ$-*πʔϧΛͬͯσ όοά͢Δํ๏͋Δ͕໘ͳͷͰۃྗආ͚ͨ • 13࡞Δલʹ࠷ऴ֬ೝͱͯ͜͠ͷํ๏Λͬͯσόοάͨ͠ •
4XJGU1BDLBHF.BOBHFSΛTXJGUCVJME͢ΔͱCVJMEʹTXJGUQBDLBHFTXJGUCVJMEίϚϯυ͕ੜ͞ΕΔ(※) (※)https://github.com/apple/swift-package-manager/blob/main/CONTRIBUTING.md#local-development
मਖ਼͢ΔʛՕॴʹςετίʔυΛՃ • ଞͷςετέʔεΛਅࣅͯ͠ όά͕ൃੜ͢Δঢ়گΛ࠶ݱͨ͠ ςετέʔεΛՃ • ͪΖΜςετέʔεࣦഊ͢ Δ͕ɺҙਤ͍ͯͨ͠Τϥʔग़ྗ ΛಘΒΕͯ҆৺ͨ͠ •
͋ͱɺ͜ͷςετέʔε͕ޭ ͢ΔΑ͏ʹमਖ਼͢Ε͍͍
मਖ਼͢Δʛςετ͕௨ΔΑ͏ʹίʔυΛमਖ਼ • 5BSHFUΛ࡞͢Δࡍʹ5BSHFUΛOJMʹ͢Δ͔அ͍ͯ͠Δ͕ɺ ͦͷஅʹϔομʔͷ༗ແ͕ߟྀ͞Εͯͳ͔ͬͨ • TPVSDFTSFTPVDFT͕ۭͰϔομʔ͕͋ΕUBSHFU͕OJMʹͳΒͳ͍Α ͏ʹͨ͠
मਖ਼͢Δʛςετ͕௨ΔΑ͏ʹίʔυΛमਖ਼ • 5BSHFUΛ࡞͢Δࡍʹ5BSHFUΛOJMʹ͢Δ͔அ͍ͯ͠Δ͕ɺ ͦͷஅʹϔομʔͷ༗ແ͕ߟྀ͞Εͯͳ͔ͬͨ • TPVSDFTSFTPVDFT͕ۭͰϔομʔ͕͋ΕUBSHFU͕OJMʹͳΒͳ͍Α ͏ʹͨ͠ ςετޭ🎉
͋ͱ13Λ࡞Δ͚ͩʂ
13Λ࡞ΔʛίϯτϦϏϡʔτΨΠυʹै͏ https://github.com/apple/swift-package-manager/blob/main/CONTRIBUTING.md#creating-pull- requests
13Λ࡞ΔʛίϯτϦϏϡʔτΨΠυʹै͏ https://github.com/apple/swift-package-manager/blob/main/CONTRIBUTING.md#creating-pull- requests apple/swift-format じゃないんだ😯
13Λ࡞ΔʛϨϏϡʔΛड͚Δ すんなりマージしてくれた
ײ • ීஈར༻͍ͯ͠ΔπʔϧʹίϯτϦϏϡʔτ͢Δ͜ͱͰɺ ΤϯδχΞϞνϕ্͕͕ͬͨ • ࠓճͷमਖ਼؆୯ͳϑϥά੍ޚͷϛεΛਖ਼͢ͷ͕ͩͬͨɺͦͷΑ͏ͳ όά͕4XJGU1BDLBHF.BOBHFSʹ͋Δͷ͕ڻ͍ͨ • ௐࢠʹͷͬͯଞͷJTTVF͕ͨ͠ɺ13Λग़ͨ͋͠ͱʹطʹमਖ਼ࡁΈͷ JTTVFͩͬͨࣄ͕໌͠൵͘͠ͳͬͨ
• ઌड़ͨ͠JTTVFͷ୳͠ํʹؔ͢Δࣗͷࣦഊஊ͔ΒͰ͢😅
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠