هدف از این بخش، آشنایی شما با فرآیند مشارکت در توسعهی پروژههای متنباز (open source) و یادگیری روند حل issue و ایجاد PR (pull request) است. به طور خلاصه در این تمرین، کافیست اعضای هر گروه تعدادی سوال در سایت Stackoverflow پاسخ دهند و تعدادی issue در Github انجام دهند و لینک آنها در یک فایل txt به همراه شماره دانشجویی اعضای گروه قرار دهند و در کوئرا آپلود کنند. مجموع تعداد این ۲ مورد، ۹ تا باید باشد.
- فعالیت مورد نظر:
- پیدا کردن و حل تعدادی issue تکنیکال در ریپازیتوریهای عمومی مختلف در Github
- ایجاد pull request متناظر برای هر ایشو حل شده
- الزامات:
- هر گروه باید در هر یک از موضوعهای backend، frontend و زیرساخت حداقل ۳ ایشو حل کند.
- ایشوهایی مانند اضافه کردن documentation یا پاسخ به سوالات کاربران پذیرفته نیست.
- لازم نیست pull request لزوما merge شود.
- منابع:
-
آشنایی با کلیات open source contributing در Github:
-
نحوهٔ ایجاد pull request برای یک ایشو:
-
- در ﻣﺮﺣﻠﻪ اول ﺷﻤﺎ ﺑﺎﯾﺪ ﺑﺎ جستوجو در GitHub و ﯾﺎ ﺳﺎﯾﺮ ﻣﺨﺎزن ﮐﺪﻫﺎی ﻣﺘﻦﺑﺎز اﻗﺪام ﺑﻪ اﻧﺘﺨﺎب issueهای ﻣﻨﺎﺳﺐ کنید.
- ﺣﻞ issue ﻣﯽﺗﻮاﻧﺪ ﺑﻪ ﺻﻮرت ﻓﺮدی و ﯾﺎ در ﮔﺮوهﻫﺎی ﺣﺪاﮐﺜﺮ ﺳﻪ ﻧﻔﺮه اﻧﺠﺎم ﺷﻮد.
- توجه کنید که لزومی ندارد PRهای شما حتماً merge شوند تا نمرهی آنها را بگیرید، اما در صورت merge شدن PRها با کد اصلی پروژهی هدف، ممکن است که نمرهی اضافهتری دریافت کنید!
- در issueهایی که به حل آنها میپردازید، حتماً باید کد بزنید و پاسخدادن به issueهایی که در آنها سوالی مطرح شده یا اصلاح مستندات پروژه (مانند اصلاح README) هدف این بخش نیست.
- بعضی از repository ها (مانند javascript-mini-projects) مجموعهای گردآوریشده از پروژههای کوچکتر هستند که بیشتر به عنوان مثال استفاده میشوند و هر پروژهی کوچک، مستقل از پروژههای دیگر است. حل issue و ایجاد pr در این repository ها هم مجاز نیست.
این لیست شامل تعدادی مخزن پیشنهادی برای حل issue است؛ لزومی ندارد حتماً issueهایتان را از بین مخازن زیر انتخاب کنید و مجاز هستید که از هر منبع دیگری به حل issue بپردازید.
- https://github.com/browserify/browserify
- https://github.com/headjs/headjs/
- https://github.com/dalekjs/dalek
- https://github.com/angular/protractor/
- https://github.com/DevExpress/testcafe/
- https://github.com/avajs/ava
- https://github.com/Automattic/expect.js
- https://github.com/gotwarlost/istanbul
- https://github.com/assaf/zombie
- https://github.com/laurentj/slimerjs/
- https://github.com/karma-runner/karma
- https://github.com/theintern/intern
- https://github.com/puppeteer/puppeteer
- https://github.com/getgauge/taiko
- https://github.com/preactjs/preact
- https://github.com/NativeScript/NativeScript
- https://github.com/walmartlabs/thorax
- https://github.com/marionettejs/backbone.marionette
- https://github.com/artf/grapesjs
- https://github.com/twitter/hogan.js
- https://github.com/handlebars-lang/handlebars.js
- https://github.com/marko-js/marko
- https://github.com/chartjs/Chart.js
- https://github.com/paperjs/paper.js
- https://github.com/fabricjs/fabric.js
- https://github.com/NUKnightLab/TimelineJS3
- https://github.com/handsontable/handsontable
- https://github.com/frappe/datatable
- https://github.com/parallax/jsPDF
- https://github.com/lodash/lodash
- https://github.com/andrewplummer/Sugar
- https://github.com/selfrefactor/rambda
- https://github.com/adamwdraper/Numeral-js
- https://github.com/marcuswestin/store.js
- https://github.com/davidmerfield/randomColor
- https://github.com/DmitryBaranovskiy/raphael
- https://github.com/visjs/vis-network
- https://github.com/processing-js/processing-js
- https://github.com/gwatts/jquery.sparkline
- https://github.com/visionmedia/page.js
- https://github.com/nolimits4web/swiper
- https://github.com/hammerjs/hammer.js
- https://github.com/gridsome/gridsome
- https://github.com/jamesallardice/Placeholders.js
- https://github.com/fullcalendar/fullcalendar
- https://github.com/dataarts/dat.gui
- https://github.com/sourcegraph/conc
- https://github.com/stretchr/testify
- https://github.com/kubernetes/client-go
- https://github.com/opencontainers/image-spec
- https://github.com/containerd/containerd
- https://github.com/redis/go-redis
- https://github.com/aquasecurity/trivy-operator
- https://github.com/go-playground/validator
- https://github.com/spf13/cobra
- https://github.com/casbin/casbin
- https://github.com/influxdata/telegraf
- https://github.com/pingcap/tidb
- https://github.com/opencost/opencost
- https://github.com/kubesphere/kubesphere
- https://github.com/hashicorp/consul
- https://github.com/go-co-op/gocron
- فعالیت مورد نظر:
- پیدا کردن و پاسخ دادن به حداقل ۳ سوال کاربران در سایت Stackoverflow.
- هر سوال باید مربوط به یکی از موضوعات backend، frontend یا زیرساخت باشد (از هر موضوع یک سوال). سوال انتخاب شده باید برچسب (tag) مربوط به موارد تدریس شده در درس را داشته باشد.
- الزامات:
- پاسخها باید اصیل و نوشته شده توسط خود شما باشند.
- منابع:
- آشنایی با نحوهٔ پاسخدهی مناسب در Stackoverflow:
- تمرین به صورت گروهی و در گروههای ۳ نفره انجام میشود.
- پاسخها باید به صورت لینک ارائه شوند و کافیست همهی لینکها را در یک فایل txt قرار دهید و در کوئرا آپلود کنید. این فایل کافیست شامل لینکهای مربوطه باشد و برای هر لینک نام عضوی از تیم که مسئول پاسخ دادن یا pull request است، آورده شده باشد.
- توجه کنید، در مجموع ۹ تا فعالیت باید انجام شود و از هر کدوم از انوع تسکها، ۳ تا باید انجام دهید.