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
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
数値で見る Microsoft MVP 〜Spec Kit と GitHub Copilot Agent で作るデータ可視化ダッシュボード〜
yutakaosada
0
180
VPCセキュリティ対応の最新事情
nagisa53
2
350
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
0
350
Amazon Bedrock Managed Knowledge BaseDive Deep
ren8k
0
280
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
120
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
200
LLMリーダーボードアップデートに向けたAgentic Math_SWEのトレースについて
nejumi
0
160
1台から試せる!Edge IoTを使った位置情報の活用設計【SORACOM Discovery 2026】
soracom
PRO
0
110
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
1
240
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
360
plamo-3-translateの開発
pfn
PRO
0
210
検索技術知識0のエンジニアが広告検索システムを内製化して運用するまで
lycorptech_jp
PRO
0
170
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
350
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
450
30 Presentation Tips
portentint
PRO
1
360
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
200
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
sira's awesome portfolio website redesign presentation
elsirapls
0
310
Context Engineering - Making Every Token Count
addyosmani
9
1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
GitHub's CSS Performance
jonrohan
1033
470k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
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ͷ୳͠ํʹؔ͢Δࣗͷࣦഊஊ͔ΒͰ͢😅
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠