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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

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

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

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

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

入門(mén):文檔和拉取請(qǐng)求評(píng)審

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

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

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

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

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

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

第一次可接近問(wèn)題

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

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

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

  • 開(kāi)始使用 Roslyn 的設(shè)置說(shuō)明

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

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

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

定期撰寫(xiě)

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

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

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

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

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

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

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

  • 在自己的行上的大括號(hào)

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

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

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

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

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

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

  • 指定在類(lèi)型聲明頂部的字段

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

對(duì)于那些在 Visual Basic 中編寫(xiě)代碼,請(qǐng)按照精神和 C# 指南的目的。

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

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

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

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

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


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

衷心感謝以下 Microsoft 技術(shù)專(zhuān)家的幫助進(jìn)行協(xié)作和對(duì)本文的審閱: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ū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com

總結(jié)

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

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