コミュニティガイドライン


Swift.org のコミュニティは、世界最高の汎用プログラミング言語を作るという独創的な目標を持っています。私たちは共同で、オープンに言語を開発し、参加したいと思う人からの投稿を得ます。このガイドライン文書では、Swift コミュニティをどのように編成して、Swift に素晴らしい新機能を追加し、より多くのプラットフォームでより多くの開発者が利用できるようにするかについて説明します。


コミュニケーション


Swift 言語はオープンで開発されており、言語やコミュニティのプロセスに関するすべての技術的または管理上の話題は、正しい公開メーリングリストに導かれるべきです。公開の会話が推奨され、Swift 言語の活発な開発者は関連するメーリングリストを見る必要があります。


コミュニティの構造


Swift プログラミング言語を進化させ、その進化についての一貫性のある明確な見方をするには強力なリーダーシップが必要です。リーダーシップはコミュニティから取られ、より広範な投稿者とユーザーのグループと緊密に連携します。コミュニティ内の役割は以下のとおりです。


また、コミュニティ、文化、および 行動規範 の問題を解決するための 行動規範ワーキンググループ もあります。最も重要なのは、Swift を使用しているすべての人が、拡張されたコミュニティの大切なメンバーであることです。


プロジェクトリーダー


Apple Inc. はプロジェクトリーダーであり、プロジェクトの仲裁者として働いています。プロジェクトのリーダーはリーダーシップの役割に上位の約束を行ない、それらのリーダーは世界中の投稿者の Swift コミュニティのから来ています。コミュニティのリーダーとコード提供者は協力して Swift を継続的に改善し、その言語は関係するすべての人の良い仕事によって進歩します。


Ted Kremenek (kremenek@apple.com) は Apple の代表取締役であり、プロジェクトリーダーの声として活動しています。


コアチーム


コアチームは、これらの提案の承認者の役割を果たす大きなコミュニティからの 言語進化の提案 を繰り返し検討し、支援します。チームメンバーは、可能な限り最良の汎用プログラミング言語を作成するという目標に沿って、Swift を一貫した方向に推進するのに役立ちます。


コアチームのメンバーは、技術的な専門知識とコミュニティへの実証された投稿に基づいて、プロジェクトリーダーによって任命されます。現在のコアチームメンバーは以下のとおりです。


プロジェクトの立ち上げ時に、チームは Apple 内の Swift の起源のために Apple の従業員で構成されています。時間の経過とともに、コミュニティの関与と投稿の記録に基づいて、より多様な背景の優れたコミュニティメンバーが任命されます。


コードオーナー


コードオーナーとは、Swift プロジェクトの特定の領域に割り当てられた個人で、コードの品質がその主な責任です。umbrella Swift プロジェクトは、Swift 標準ライブラリ、LLDB デバッガの拡張機能、および Swift パッケージマネージャなどの多数のサブプロジェクトで構成されています。各サブプロジェクトにはコードオーナーが割り当てられます。その後、コードオーナーは、すべての投稿をレビューし、コミュニティからフィードバックを収集し、承認されたパッチを製品に追加します。


誰でもコードの一部を見直すことができ、私たちは関心のあるすべての人からのコードレビューを歓迎します。コードレビューの手順は、中央のグローバルなポリシーによって決定されるものではありません。代わりに、プロセスは各コードオーナーによって定義されます。


アクティブであり、価値あることを示すコミュニティメンバーは、メーリングリストへの公開メールを介してコードオーナーになることができ、また、他のメンバーが指名することもできます。仲間の投稿者が同意する場合は、プロジェクトリーダーが予定し、コードオーナーファイルに新しいオーナーの名前を追加します。地位は完全に任意であり、いつでも辞任することができます。


現在のコードオーナーのリストは、親の Swift ソースツリーのルートにあるファイル CODE_OWNERS.txt にあります。また、メーリングリストを管理しているので、すべてのコードオーナーに 電子メールを送信 することができます。


Swift の成功には、強く関わっているコードオーナーよりも重要なものはありません。私たちは皆、彼らに尊敬、感謝、そして私たちが提供できる助けを何でも捧げます。


ライセンス


Swift のライセンス は、Runtime Library Exception (実行時ライブラリ例外) を持つ Apache 2.0 ライセンス に基づいており、Swift を使用してあなた独自のバイナリをビルドして配布する際に、帰属要件を削除します。Apache 2.0 ライセンスは、Swift の幅広い使用を可能にし、多くの潜在的な貢献者 (投稿者) によって既によく理解されているために選ばれました。


著作権は投稿の著者、または個人が所属する会社または組織によって保持されます。著作権者のリストは、Swift.org の CONTRIBUTORS.txt ファイルとリポジトリのルートで管理されています。


Runtime Library Exception (実行時ライブラリ例外)


Runtime Library Exception (実行時ライブラリ例外) により、Swift コンパイラのエンドユーザーは、完成したバイナリアプリケーション、ゲーム、またはサービスで Swift の使用の原因と考える必要がない事が明確になります。Swift 言語のエンドユーザーは、優れたソフトウェアを作成する事に制限はないと感じるはずです。この例外の全文は以下のとおりです。


例外として、このソフトウェアを使用してソースコードをコンパイルした場合、
このソフトウェアの一部は結果としてバイナリ製品に組み込まれ、
そのような製品を帰属させずに再配布することができます。
それ以外の場合は、ライセンスのセクション 4(a)、4(b)、および 4(d) で要求されます。


この例外は、LICENSE.txt ファイルの一番下にもあります。


ソースコードの著作権とライセンス


Swift.org でホストされているすべてのソースファイルには、ファイルの先頭に、ライセンスと著作権が適用されることを宣言するコメントのブロックが含まれていなければなりません。このテキストは、たとえば コードの投稿 セクションで定義されているように、より大きなヘッダーの一部である場合があります。ヘッダー形式にかかわらず、ライセンスおよび著作権部分の文言は、適切な年数を適用して、以下のようにコピーされていなければなりません。


//このソースファイルは Swift.org オープンソースプロジェクトの一部です
//
// Copyright(c)2014 - 2017 Apple Inc.と Swift プロジェクトの著者達
// Apache License v2.0 の下でライセンスされ、実行時ライブラリ例外を伴う
//
//ライセンス情報については http://swift.org/LICENSE.txt を参照の事
// Swift プロジェクトの著者一覧は http://swift.org/CONTRIBUTORS.txt を参照の事


各投稿者は、プロジェクトのルートにある CONTRIBUTORS.txt ファイルに自分の名前を追加し、連絡先情報を維持する責任があります。あなたが会社の傘下で投稿している場合は、会社の情報を追加してください。また、追加の著作権者として自分自身を記載しないでください。


投稿


Swift.org サイトは Swift プログラミング言語に興味のある方を誰でも歓迎します。コミュニティのメンバーは、バグのファイリングとスクリーニング、コードレビューの補助、オープンな会話への参加、そしてもちろんコード投稿によって Swift プロジェクトの大きな助けとなるでしょう。


入門


言語自体に直接貢献する前に、自分のプロジェクトでの Swift の使用に慣れ親しむことを強くお勧めします。わかりやすい Swift 4.0 入門 ガイドとステップバイステップの手順をまとめて紹介しています。


コードの貢献 (投稿)


Swift.org は、主にコミュニティからの投稿を歓迎するために存在します。最も単純なケースでは、1 回限りのパッチは誰からでも歓迎します。しかし、定期的な投稿者は、プロジェクト内で質の高い文化を創造するのに役立つプロセスを採用することが期待されています。


寄稿者は、最初にこのサイトの 投稿 セクションのコンテンツを一通り読んでください。このコンテンツには、主な Swift コードベースにあなたのコードを添わせるるためのリクエストの作成を含む、パッチの提供時に従うプロセスに関する詳細な手順が含まれています。


さまざまな Swift プロジェクトのバグは、bugs.swift.org の公開バグ追跡システムで管理されています。誰でもバグを報告することができ、また、バグを閲覧して見つけたバグが既に解決されているかどうかを確認することもできます。


新しい機能の提案


Swift 言語の新しい機能や方向性は、良いアイデアを持つ人からなら誰からでも来ることができます。最高に可能な解決策を得るためには、パブリックフォーラムでのアイデアに対するオープンな議論と反復が不可欠です。各 Swift のバージョンは明確に定義されている必要があり、その結果、サポートされているすべてのプラットフォームで、そのリリースでソース互換性がある "One True Swift" (一つの Swift) が作成されます。


このプロセスをサポートするために、Swift.org では、現在のリリースの高いレベル目標へのリンクを含む Swift Evolution Process (Swift の革命的プロセス) について詳述しています。これらの目標に役立つパッチに優先権が与えられ、コードレビューでの即時の注意を得る可能性が高くなります。


行動規範


真に偉大なコミュニティであるためには、Swift.org はさまざまな背景と幅広い経験を持って、あらゆる生き方の開発者を歓迎する必要があります。多様で親しみやすいコミュニティは、より素晴らしいアイデア、よりユニークな視点、より優れたコードを生み出します。私たちは Swift コミュニティで皆を歓迎するために努力します。


Swift.org は、私たちのメンバーの期待を明確にするため、contributor-covenant.org で定義された行動規範を採択しました。この文書は多くのオープンソースコミュニティで使用されており、われわれの価値観をうまく表現していると思います。全文を以下にコピーします:


投稿者行動規範 v1.3


このプロジェクトの貢献者 (投稿者) および管理者として、オープンで歓迎するコミュニティを育むことを目的として、問題報告、機能要求の投稿、文書の更新、リクエストまたはパッチの提出、およびその他の活動を通じて貢献するすべての人々を尊重することを約束します。


私たちは、経験、性別、性同一性表現、性的指向、身体障害、身体の大きさ、人種、民族、年齢、宗教、または国籍にかかわらず、このプロジェクトにすべての人にハラスメントフリーの体験で参加させることを約束します。


参加者による受け入れがたい行動の例としては:


プロジェクトの管理者は、この行動規範に則っていないコメント、コミット、コード、Wiki 編集、問題、その他の投稿を削除、編集、却下する権利、およびその責任があります。または不適切、脅迫的、攻撃的、または有害とみなす他の行為のために投稿者を一時的または永久に禁止します。


この行動規範を採択することにより、プロジェクト管理者は、このプロジェクトを管理するすべての側面にこれらの原則を公正かつ一貫して適用することを約束します。行動規範を遵守しない、または実施しないプロジェクト管理者は、プロジェクトチームから永久に削除される可能性があります。


この行動規範は、個人がプロジェクトまたはそのコミュニティを代表しているときに、プロジェクトスペース内とパブリックスペース内の両方に適用されます。


不正な行為、嫌がらせ行為、または容認できない行為の例は、プロジェクト管理者 (conduct@swift.org) に連絡して報告できます。すべての苦情は審査され、調査され、その状況に必要かつ適切とみなされる回答が得られます。管理者は、事件のレポーターに関して機密保持を義務づけられています。


このポリシーは、投稿者行動規範 バージョン1.3.0 から適応されています。


報告


コミュニティメンバーのワーキンググループは、全ての 報告された問題 にすばやく対処することに全力を傾けています。ワーキンググループのメンバーは、さまざまな背景と視点を持つ個人を優先して、プロジェクトリーダーが指名するボランティアです。メンバーシップは定期的に変化することが予想され、拡大または縮小する可能性があります。


注: このセクションは、今後のワーキンググループメンバーの名前で更新されます。


ある個別のメンバーではなく ワーキンググループに電子メール を送信することで懸念を報告することをお奨めします。ワーキンググループにボランティア参加したい場合は、ワーキンググループ にお問い合わせください。


メーリングリスト


コミュニティメンバー間のコミュニケーションの主要な方法は、メーリングリストによるものです。以下に示すように、それぞれ特定の目的を果たし、トラフィックの量が異なる多数のリストがあります。


初心者や主に Swift 言語の使用に興味のある方は、まず General Interest (一般的な関心) リストに参加することを強くお勧めします。他のリストの大部分は、言語自体の日々の更新に焦点を当てています。


General Interest


swift-users - ユーザーが Swift や関連ツールに関するヘルプを得たり、質問をしたりするためのものです。このリストは、言語自体に対して行われている作業についての議論のためのものではありません。


Swift 開発


swift-dev - 開発者が Swift コンパイラ、低レベル実行時環境、標準ライブラリ、および SourceKit の実装について議論するため。


swift-corelibs-dev - 開発者が Swift コアライブラリの実装について議論するため。


swift-server-dev - 開発者が Server API ワークグループによって開発された新しいサーバー中心の機能の実装について議論するため。


swift-lldb-dev - 開発者が Swift REPL と Swift 固有の LLDB の実装を議論するため。


swift-build-dev - 開発者が Swift パッケージマネージャーと低レベルビルドシステム (llbuild) の実装について議論するため。


Swift の発展


swift-evolution-announce - Swift の発展の提案レビューと結果の発表。これは、量の少ない読み取り専用リストです。発展の提案に関する実際の議論は、swift-evolution のメーリングリストで行われます。


swift-evolution - 新しい言語機能、新しい標準ライブラリ API などを含む、Swift の発展についての議論のため。これは、アイデアが開発され、レビューされるオープンなフォーラムです。Swift の発展プロセスとどの提案が積極的に議論されているかについては、Swift evolution repository をご覧ください。


通知


これらの通知リストには、自動生成されたコンテンツが含まれています。コミットの実際の議論は、GitHub または対応する開発メーリングリストで行われるべきです。


swift-commits - 開発者が Swift コンパイラ、低レベル実行時環境、標準ライブラリ、または SourceKit、Swift のLLVM および Clang 分岐を含む、コード変更をコミットするときに行われるすべてのコミットメッセージを含みます。Swift 言語開発の最先端にいたい人にとっては便利です。このリストは非常に大量です。


swift-lldb-commits - 開発者がコード変更を Swift LLDB にコミットするときに行われるすべてのコミットメッセージを含みます。Swift LLDB 言語開発の最先端にいたい人にとっては便利です。このリストは非常に大量です。


swift-corelibs-commits - 開発者が Swift コアライブラリへのコード変更をコミットするときに行われるすべてのコミットメッセージを含みます。


swift-build-commits - 開発者が Swift パッケージマネージャーまたは低レベルビルドシステム (llbuild) へのコード変更をコミットするときに行われるすべてのコミットメッセージを含みます。





目次
Xcode 9 の新機能

SwiftLogo
  • Swift について
  • 特徴
    安全
    Swift.org とオープンソース
    プロジェクト
    プラットフォームサポート
    アップルのプラットフォーム
    Linux
  • ブログ:Swift 4.0 リリース!
  • 言語の更新
    文字列
    コレクション
    アーカイブとシリアル化
    その他の言語の更新
    新しい互換モード
    Package Manager の更新
    文書化
  • プラットフォーム
  • Linux
    Apple(Xcode)
    ソース
  • Swift のローカルリファクタリング
  • リファクタリングの種類
    カーソルベースのリファクタリング
    レンジベースのリファクタリング
    診断
    テスト
    文脈上のリファクタリングテスト
    コード変換テスト
    Xcode との統合
    潜在的なローカルリファクタリングの考え方
  • Swift のダウンロード
  • リリース
    Swift 4.0
    Swift 3.1.1
    Swift 3.1
    Swift 3.0.2
    Swift 3.0.1
    Swift 3.0
    Swift 2.2.1
    Swift 2.2
    スナップショット
    基幹となる開発(マスター)
    古いスナップショット
    Swift 4.0 の開発
    古いスナップショット
    Swift 3.1 の開発
    古いスナップショット
    古いリリースの分岐
    ダウンロードを使用して
    インストール
    MacOS でのコード署名
    Linux
    必要
    サポートしているターゲットプラットフォーム
    インストール
    アクティブな署名鍵
  • Swift 4.0 入門
  • Swift のインストール
    Linux の場合
    REPL の使用
    パッケージマネージャの使用
    パッケージの作成
    実行可能ファイルの作成
    複数のソースファイルの操作
    LLDB デバッガの使用
  • 文書化
  • Swift プログラミング言語
    翻訳
    API 設計ガイドライン
  • API 設計ガイドライン
  • 目次
    基礎
    ネーミング
    明確な使用の促進
    流暢な使用を目指す
    用語をよく使う
    規約
    一般的規約
    パラメータ
    引数ラベル
    特別な命令
  • Swift 4 への移行
  • 移行前の準備
    Swift 移行アシスタント
    Swift 4 移行の変更の概要
    SDK の変更点
    注目すべき特別なケース
    新しい String
    デフォルトのパラメータ値は public です
    移行の後
    移行に関する既知の問題
    Carthage/CocoaPods プロジェクトの使用
    その他
  • Swift 3 への移行
  • 移行前の準備
    Swift 移行アシスタント
    Swift 3 移行変更の概要
    API 設計ガイドライン
    SDK
    Swift 標準ライブラリ
    言語
    移行後
    Carthage/CocoaPods プロジェクトの使用 既知の移行の問題
    Swift 標準ライブラリ
    SDK
    Swift 3 言語
    その他
  • ソースコード
  • コンパイラと標準ライブラリ
    Core Library
    パッケージマネージャ
    Xcode の Playground サポート
    クローンされたリポジトリ
  • コミュニティガイドライン
  • コミュニケーション
    コミュニティの構造
    プロジェクトリーダー
    コアチーム
    コードオーナー
    ライセンス
    Runtime Library Exception (実行時ライブラリ例外)
    ソースコードの著作権とライセンス
    投稿
    入門
    コードの貢献 (投稿)
    新しい機能の提案
    行動規範
    投稿者行動規範 v1.3
    報告
    メーリングリスト
    General Interest
    Swift 開発
    Swift の発展
    通知
  • 投稿
  • 質問に答える
    バグを報告する
    バグのトリアージ
    コードの投稿
    段階的な開発
    メッセージをコミットする
    変更の帰属
    コードテンプレート
    コードのレビュー
    テスト
    品質
    コミットアクセス
    外部ライブラリ依存関係の追加
    Swift 発展プロセスへの参加
    LLVM と Swift
    LLVM の変更はどこで行われますか?
    Swift と LLVM 開発者ポリシー
  • Swift の継続的インテグレーション
  • 構成
    ジョブの組織
    ジョブの構成
    使用法
    リクエストのテスト
  • Swift ソースの互換性
  • プロジェクトの現在のリスト
    プロジェクトの追加
    合格基準
    プロジェクトの追加
    プロジェクトの維持
    リクエストのテスト
    プロジェクトをビルドする
    フォーカスエリア
  • ABI の安定性
  • データレイアウト
    メタデータ型
    切り分け
    呼び出し規約
    実行時
    標準ライブラリ
  • サーバーAPIプロジェクト
  • フォーカスエリア
    移植性
    外部ライブラリの使用
    ワークグループ
    舵取りチーム
    ステークホルダー
    開発プロセス
    API の提案
    プロトタイプ化と開発
    リリースプロセス
    メーリングリスト
  • コンパイラと標準ライブラリ
  • コンパイラのアーキテクチャ
    標準ライブラリの設計
  • パッケージマネージャ
  • 概念の概要
    モジュール
    パッケージ
    製品
    依存関係
    例の使用法
    ライブラリパッケージの作成
    ビルド構成文の使用
    依存関係のインポート
    副依存関係の解決
    コミュニティの提案
  • Swift コアライブラリ
  • プロジェクトの状態
    Foundation
    libdispatch
    XCTest
  • REPL とデバッガ、プレイグラウンド
  • なぜ REPL とデバッガを組み合わせるのか?
    Xcode プレイグラウンドサポート












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)