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
2
1.5k
Swift Package Mangerのバグを直した話
k-kohey
September 26, 2023
Tweet
Share
More Decks by k-kohey
See All by k-kohey
ゲームボーイアドバンスでSwiftを動かそう
k_koheyi
0
1.1k
swift-async-algorithms...? へえ…面白そうじゃん…?
k_koheyi
3
1.6k
[社内勉強会]Parchment-swiftの実装説明
k_koheyi
0
130
[社内勉強会]Combineの説明
k_koheyi
0
36
あるインスタンスの取る値が 何パターンあるか数えてみるンゴ!
k_koheyi
1
170
Tuistを用いた Xcode Project管理の紹介
k_koheyi
0
210
SwiftでわかるSOLID原則 iOSDC 2020
k_koheyi
3
2.8k
Visitorパターン
k_koheyi
0
190
Application Design 勉強会23-25章
k_koheyi
0
77
Other Decks in Technology
See All in Technology
白金鉱業Meetup_Vol.19_PoCはデモで語れ!顧客の本音とインサイトを引き出すソリューション構築
brainpadpr
2
500
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
1
120
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
220
Witchcraft for Memory
pocke
1
110
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
190
フィンテック養成勉強会#54
finengine
0
120
rubygem開発で鍛える設計力
joker1007
1
140
Welcome to the LLM Club
koic
0
140
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
2
270
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
130
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
3
410
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
180
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Facilitating Awesome Meetings
lara
54
6.4k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Six Lessons from altMBA
skipperchong
28
3.8k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
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ͷ୳͠ํʹؔ͢Δࣗͷࣦഊஊ͔ΒͰ͢😅
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠