日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[机器翻译]参与 Microsoft 开放源代码软件项目的方式

發(fā)布時(shí)間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [机器翻译]参与 Microsoft 开放源代码软件项目的方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面是一個(gè)事實(shí):Microsoft 托管在 GitHub,包括.NET 編譯器平臺,也稱為"Roslyn"具有多達(dá) 4 萬行代碼等一些相當(dāng)大的大約 2,000 開放源代碼軟件 (OSS) 存儲庫。很多開發(fā)人員的代碼將更改提交到數(shù)以百萬計(jì)的計(jì)算機(jī)運(yùn)行的項(xiàng)目可能會令人望而生畏。幸運(yùn)的是,無需專業(yè)的博士學(xué)位的編程語言和編譯器,使您標(biāo)記在 Microsoft OSS 項(xiàng)目上。有機(jī)會來推動的范圍很廣的難度和體驗(yàn),從初級用戶到方面的專家。

我收到了我開始在 2018 年 3 月中使用.NET Core 團(tuán)隊(duì)合作,添加一組新的 Api。我就能夠跳轉(zhuǎn)在板上,由于我在 Microsoft,特別是與項(xiàng)目經(jīng)理 Kathleen Dollard 的連接。在我真想知道,"難它會給人不是很好地連接 microsoft 參與此計(jì)劃?" 記住此問題,我決定進(jìn)行一些研究并找出。在本文中,我將探討推動業(yè)務(wù)的 Microsoft 操作系統(tǒng)和究竟是于新用戶若要獲取所涉及的主題。

入門:文檔和拉取請求評審

可能的最佳去處是文檔。如果你導(dǎo)航到任何.NET 文檔頁面 (例如,?bit.ly/2LAv7hA) 可以看到,沒有請求反饋,頁腳中所示的每個(gè)頁面的底部圖 1。

?
圖 1 提交的建議和文檔的更改

從此處你可以單擊"產(chǎn)品反饋,"提交新問題,或?yàn)g覽和搜索現(xiàn)有問題。更為可喜的是,第二個(gè)按鈕,直接轉(zhuǎn)到您的瀏覽,因此,可以創(chuàng)建一個(gè) GitHub 問題或?qū)Ш降降奈臋n源代碼本身的特定頁的 GitHub 問題列表 (如github.com/dotnet/docs) 直接解決該問題。記錄問題所需的工作比容易頻繁,只需更新文檔和提交拉取請求 (PR)。

我所直接接觸團(tuán)隊(duì)成員和它們強(qiáng)調(diào)所有提交都都?xì)g迎,即使拼寫和語法的更正。這些更改可能不會令人興奮,但它們會使成功的 API 和一個(gè)不成功之間的差異。

此外,文檔團(tuán)隊(duì)是最快響應(yīng)提出的問題和 Pr,分配給每個(gè)區(qū)域?qū)p微地址貢獻(xiàn)的人員之一。一個(gè)原因文檔編輯很簡單:它通常不需要您來克隆存儲庫提交更改。相反,您可以使用 GitHub 基于 Web 的編輯 UI,它能自動使用分叉并為您提交拉取請求。

PR 評審也是參與的重要方法。每個(gè)項(xiàng)目需要拉取請求反饋和 Microsoft 團(tuán)隊(duì)是感謝 PR 評審發(fā)布內(nèi)容。我知道我已經(jīng)非常感謝 — 和學(xué)習(xí)從 — 我已提交到.NET 的工作原理的評審。為我的最大經(jīng)驗(yàn)是時(shí)間的,我不能在跳轉(zhuǎn),并隨意或執(zhí)行其他操作之間薄片中做出了重要貢獻(xiàn)。在此級別的代碼需要經(jīng)過認(rèn)真的考慮,仔細(xì)地實(shí)現(xiàn)和重要的協(xié)作。最后,我很感謝拒絕的 Pr 和接受的 Pr。PR 評審是一個(gè)很好的步驟,并幫助解決開放源代碼開發(fā)。

第一次可接近問題

為準(zhǔn)備采取行動上多個(gè)文檔,Microsoft 提供了一些指導(dǎo)。使用"第一個(gè)問題"等描述符標(biāo)記,并且容易很適合不熟悉游戲開發(fā)人員的問題。Microsoft 甚至要求活動項(xiàng)目成員,為了避免快要結(jié)束的版本中,直到第一次可接近問題,因此將更容易問題提供的熟悉的開發(fā)人員保持到項(xiàng)目和降低復(fù)雜性欄的入門知識。此外,第一次可接近頻繁問題描述了如何查找問題的文檔鏈接,而不是新的開發(fā)人員在嘗試查找特定缺陷大海撈針 flailing 的是大型存儲庫。Roslyn 團(tuán)隊(duì),例如,一個(gè)很好的第一個(gè)問題必須包括:

  • 解決方法是很有必要的文件的鏈接

  • 測試需要轉(zhuǎn)到標(biāo)識

  • 開始使用 Roslyn 的設(shè)置說明

  • 常規(guī)發(fā)布內(nèi)容策略

傾向于選擇來自新用戶的貢獻(xiàn)承諾可以擴(kuò)展到如何接受 Pr。對于標(biāo)記為"良好第一個(gè)問題"的 Pr,Microsoft 不提供首選項(xiàng)設(shè)置為新的參與者,Pr 接受通過來自現(xiàn)有 contributors (參與者)。更重要的是,Microsoft 職員標(biāo)記為"良好第一個(gè)問題"的問題將直接回答問題的人員而言,若要解決此問題。該位獲得詳細(xì)可以是指導(dǎo)的在參與的第一個(gè)階段中重要。

很明顯,Microsoft 轉(zhuǎn)去獲取第一次參與者參與。Roslyn,例如,是一個(gè)復(fù)雜、 4 萬行代碼庫不是重點(diǎn)所在。通過具有吸引力的新參與者,Microsoft 的 OSS 工作使外部開發(fā)人員組成的活躍社區(qū)。

定期撰寫

接受在第一個(gè)拉取請求后,可能要執(zhí)行更復(fù)雜的問題和功能。有"想要幫助"和"最,無法用于 grabs"等來表示問題可能是很好的目標(biāo)為社區(qū)的問題標(biāo)記 — 盡管不一定適用于第一個(gè)計(jì)時(shí)器。(請參閱最多為 grabs.net來瀏覽項(xiàng)目和相應(yīng)問題的列表標(biāo)記此類與第一次可接近或想要的幫助。) 標(biāo)記為使用這些標(biāo)記可能的問題涉及更多的工作或更深層次的項(xiàng)目不是可以提供主體;但是,它們是定義完善,并且不需要與項(xiàng)目團(tuán)隊(duì)的廣泛協(xié)作。但是,還有您最好按照定義工作流:

  • 應(yīng)與團(tuán)隊(duì)和路線圖,以避免被拒絕的時(shí)間范圍內(nèi)討論了超過 bug 修補(bǔ)程序級別的發(fā)布內(nèi)容

  • 發(fā)布內(nèi)容應(yīng)該是針對主 — 不是針對一個(gè)實(shí)驗(yàn)性功能分支

  • Pr 必須與主分支的提示輕松合并

  • Contributors (參與者) 應(yīng)確保登錄參與者許可協(xié)議 (請參閱cla2.dotnetfoundation.org)

如所料 Git 具有豐富經(jīng)驗(yàn)的開發(fā)人員,務(wù)必在本地分叉 (克隆到您的計(jì)算機(jī)) 中工作,并提交 PR 通過要考慮的代碼當(dāng)然,您可以創(chuàng)建本地,一個(gè)分支但提交 PR 時(shí)您將會提交到 master。

有少量的編程和工作流指南,需要注意。首先,是要考慮的編碼樣式。盡管可找到 C# 編寫代碼處的樣式bit.ly/2woQv3u,常規(guī)摘要是為了遵循標(biāo)準(zhǔn)的現(xiàn)有文件。即使現(xiàn)有文件不同于有案可稽的標(biāo)準(zhǔn),這是,則返回 true。這意味著要編碼整個(gè)文件 (或添加為其已存在沒有優(yōu)先順序在文件中的項(xiàng)),直到該準(zhǔn)則是簡單 — 遵循該文件的其余部分的示例。即使沒有優(yōu)先級,但是,沒有僅有 16 位項(xiàng) C# 編碼樣式文檔中列出這些都特別令人驚訝。這些項(xiàng)包括:

  • 在自己的行上的大括號

  • 每空格縮進(jìn) (而不是選項(xiàng)卡)

  • 常量局部變量和字段的內(nèi)部私有字段和 PascalCasing _camelCase

  • 避免這種情況。除非要求

  • 始終指定可見性 (即,使用專用即使該成員的默認(rèn)值為專用)

  • 避免多個(gè)空行分解代碼

  • 分配的類型明顯時(shí)只能使用 var (請參閱itl.tc/UsingVar),除了 Roslyn 項(xiàng)目,其中使用 var 無處不在

  • 指定在類型聲明頂部的字段

通常情況下,您會發(fā)現(xiàn).editorconfig (請參閱editorconfig.org) 為每個(gè)目錄,強(qiáng)制執(zhí)行這些標(biāo)準(zhǔn)設(shè)置文件。請務(wù)必使用該文件以確保您遵循的準(zhǔn)則并避免阻止 PR。

對于那些在 Visual Basic 中編寫代碼,請按照精神和 C# 指南的目的。

盡管不在列表中所述,單元測試是質(zhì)量的生成所需級別的關(guān)鍵。

設(shè)計(jì)幫助

某些存儲庫,如語言、 CoreFX 和 Dotnet CLI 需要明顯更高級別的經(jīng)驗(yàn)和專業(yè)知識,并在這種情況下,使用不同的進(jìn)程。使用這些庫的入口點(diǎn)是在討論級別而不是代碼級別。直接提交到這些庫使用的新功能或語言關(guān)鍵字的代碼 PR 不太可能成功。

設(shè)計(jì)過程通常可見時(shí),它不是 free-for-all。事實(shí)上,甚至不使用征求建議書啟動這些存儲庫的提交。(簽出的 C# 語言征求建議書文件夾在bit.ly/2BVUbjf為仔細(xì)查看當(dāng)前正在考慮的主要功能。) 相反,如果你想要推薦一種功能,您首先提交問題并標(biāo)記與"討論"標(biāo)簽。如果討論項(xiàng)目達(dá)到一定程度的一致性,以便進(jìn)一步評估應(yīng)被視為,它們被選取在語言設(shè)計(jì)會議,這樣又知悉的進(jìn)一步討論、 試驗(yàn)和脫機(jī)設(shè)計(jì)工作。征求建議書本身 — 不會被終結(jié)的功能,然后提出語言設(shè)計(jì)團(tuán)隊(duì)的成員。

盡管過程用于打開反饋,并非每個(gè)人都可以只需進(jìn)行更改,但他們選擇。分發(fā)數(shù)量,以及更改的影響是太好不嚴(yán)格控制 (非常類似于 Linus Torvalds 具有與 Linux 一起的控件)。最后,該項(xiàng)目是仍開放源代碼。如果您希望能夠自由地更改需要的地方的任何方式中的代碼,只需將存儲庫分叉,并開始。

這種方法是進(jìn)行協(xié)作處理代碼實(shí)現(xiàn)開始前的重要方法。即使這樣,可能會變化很長一段是一個(gè)單獨(dú)的分支中,而它們進(jìn)行編程 (并反復(fù)重新進(jìn)行編程) 和計(jì)算。社區(qū)中決定什么某事物的形狀將會至關(guān)重要。打開要討論的問題,注釋,并提供使用現(xiàn)有的征求建議書的反饋提供給團(tuán)隊(duì)的直接訪問。

你將注意到,導(dǎo)致可運(yùn)行的域范圍從簡單到極其困難。將方法或類添加到 API,例如,是一回事,但添加新的語言關(guān)鍵字完全是其他內(nèi)容。

提交 PR 后發(fā)生的情況

在 2018 年 4 月 Roslyn 團(tuán)隊(duì)意識到他們具有對處理所有具有已提交的 Pr 方面滯后。與 Pr 后發(fā)生的所有更改,很可能,其中一些將不再相關(guān)。若要解決此問題,Microsoft 單步執(zhí)行和分配給每個(gè)項(xiàng)目的人員。這是為了響應(yīng)所有未來的 Pr 以確保將放入的工作是更有可能會成功。向該工作,他們落實(shí)到位,Pr 的以下分類:

  • 項(xiàng)目主管已審批:已批準(zhǔn)的 Pr 是從分配的同學(xué)或教練項(xiàng)目團(tuán)隊(duì)提高成功被采用的機(jī)會,幫助將拉取請求合并到基本代碼。教練可確保社區(qū)成員已同時(shí)參與,這將執(zhí)行 contributors (參與者) 在三個(gè)工作日內(nèi)如果由于任何原因拒絕拉取請求。

  • 掛起的討論:有時(shí)非常重要的問題突然出現(xiàn) — 單元測試是缺少、 目的不明確,或代碼無法顯著滿足這些指導(dǎo)原則。在這些情況下,項(xiàng)目領(lǐng)導(dǎo)會引發(fā)與社區(qū)參與者,確定應(yīng)該做什么的問題。潛能,參與者可以在兩周內(nèi)執(zhí)行后續(xù)操作。此外,在該分組中的 Pr 需要及時(shí)了解代碼基在此期間。

  • 已拒絕:拉取請求不符合的項(xiàng)目愿景、 涉及巨大的風(fēng)險(xiǎn)或不能成功解決優(yōu)先級。在這種情況下該潛在顧客將拒絕該 PR,清楚地確定問題。雖然可以重新提交拉取請求,它將需要進(jìn)行重大更改或重新編寫。

總結(jié)

有時(shí),您可以觀察中的行為會打開源代碼項(xiàng)目組成的遠(yuǎn)低于體面而主動的標(biāo)準(zhǔn)。這可能包括原始、 某事或反復(fù)失敗偵聽對立視圖的參與者。它還包括無法接受 Microsoft OSS 項(xiàng)目最終仲裁器作為 Microsoft 的角色、 重復(fù)垃圾郵件存儲庫或否則會中斷協(xié)作過程的參與者。任何人都不能遵循常規(guī) civility 的規(guī)則將發(fā)現(xiàn)自己阻止從存儲庫 (并且返回下具有相同偽行為不會使您任何進(jìn)一步)。Microsoft 致力于為所有,使參與積極的體驗(yàn)和強(qiáng)制行為準(zhǔn)則是上述承諾量的核心。

我鼓勵您查看 Microsoft 開放源代碼行為準(zhǔn)則處bit.ly/2wmAYlB。此外可以查看在其關(guān)聯(lián)的常見問題解答bit.ly/2NwNNRa。

在我的經(jīng)驗(yàn),如何方法對 Microsoft OSS 進(jìn)行更改取決于很大程度上生成想更改您關(guān)注的內(nèi)容。我希望大多數(shù)人將對,從而促進(jìn)是有缺陷或缺少的功能的窗體中的問題。最初,觸發(fā)器可能缺陷或文檔,并希望修復(fù)其他讀取器中的問題?;蛘?#xff0c;也許你正在努力 Xamarin 代碼庫中并發(fā)現(xiàn)您希望重寫的方法不虛擬的因此提交 PR 以使其此類。

有些人將需要在更大的挑戰(zhàn)。使用.NET Core,我都已通過這一事實(shí) (仍然) 沒有一個(gè)可以輕松地接受命令行自變量并將他們解析到從中我可以訪問我的程序中的值的強(qiáng)類型對象的命令行分析器已 astounded。這是提示我開始與 Microsoft 的 Jon Sequeira (Dotnet CLI 為編寫的命令行分析器) 人員協(xié)作來構(gòu)建此類分析器此得。唉,代碼仍然不太穩(wěn)定并對我們進(jìn)行項(xiàng)目太休閑我們參與開放源代碼。但愿不會太長之前此項(xiàng)目是我們?yōu)楣_,因此也可以受益于參與度的 OSS 社區(qū)可以打開。在此期間,如果您有很長時(shí)間才能將專用和對我們的分析器項(xiàng)目感興趣,將一封電子郵件發(fā)送給 Kathleen 或與我們可以推斷出獲取涉及一種方式。并且,是的我只是引入了另一種方式參與 — 自發(fā)之前代碼是公共的。


Mark Michaelis?是 IntelliTect 的創(chuàng)始人,擔(dān)任首席技術(shù)架構(gòu)師和培訓(xùn)師。他一直是 Microsoft MVP 在近二十,和 Microsoft 區(qū)域總監(jiān)自 2007 年以來。Michaelis 還是多個(gè) Microsoft 軟件設(shè)計(jì)評審團(tuán)隊(duì)(包括 C#、Microsoft Azure、SharePoint 和 Visual Studio ALM)的成員。他在開發(fā)人員會議上發(fā)表演講,并撰寫了大量書籍,包括最新"Essential C# 7.0 (第 6 版)"(itl.tc/EssentialCSharp)??赏ㄟ^他的 Facebook?facebook.com/Mark.Michaelis、博客?IntelliTect.com/Mark、Twitter?@markmichaelis?或電子郵件?mark@IntelliTect.com?與他取得聯(lián)系。

衷心感謝以下 Microsoft 技術(shù)專家的幫助進(jìn)行協(xié)作和對本文的審閱:Kevin Bost (IntelliTect)、 Kathleen Dollard、 Neal Gafter、 Sam Harwell、 Immo Landwerth、 Jared Parsons、 Jon Sequeira Bill Wagner,Maira Wenzel

原文地址: https://msdn.microsoft.com/zh-cn/magazine/mt830359


.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com

總結(jié)

以上是生活随笔為你收集整理的[机器翻译]参与 Microsoft 开放源代码软件项目的方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。