Difference between revisions of "DPS909 & OSD600 Winter 2017 - Lab 2"

From CDOT Wiki
Jump to: navigation, search
(3. Contributing fixes to package.json files)
(3. Contributing fixes to package.json files)
 
(163 intermediate revisions by 32 users not shown)
Line 66: Line 66:
 
| 2
 
| 2
 
| [https://www.npmjs.com/package/gulp-util gulp-util]
 
| [https://www.npmjs.com/package/gulp-util gulp-util]
|  
+
| [https://github.com/MargarytaChepiga MargarytaChepiga]
|  
+
| https://github.com/gulpjs/gulp-util/pull/131
|
+
| https://mchepigablog.wordpress.com/2017/01/27/first-step-towards-the-open-source-community/
 
|-
 
|-
 
| 3
 
| 3
 
| [https://www.npmjs.com/package/dat-next dat-next]
 
| [https://www.npmjs.com/package/dat-next dat-next]
|  
+
| [https://github.com/edyedy123 Eduardo Sorozabal]
|
+
| https://github.com/joehand/dat-next/pull/110
|  
+
| https://edyedyschool.tumblr.com/post/156454760938/lab2
 
|-
 
|-
 
| 4
 
| 4
| [https://www.npmjs.com/package/jade jade]
+
| [https://www.npmjs.com/package/inherits inherits]
 
| [https://github.com/simon66 simon66]
 
| [https://github.com/simon66 simon66]
|  
+
| https://github.com/isaacs/inherits/pull/29
|
+
| http://sdealmeida.com/fixing-inherits-package-json-file/
 
|-
 
|-
 
| 5
 
| 5
 
| [https://www.npmjs.com/package/nodeunit nodeunit]
 
| [https://www.npmjs.com/package/nodeunit nodeunit]
|  
+
| [https://github.com/bbhagwandeen bbhagwandeen]
|  
+
| https://github.com/caolan/nodeunit/pull/336
|
+
| https://wordpress.com/post/bbhawgandeen.wordpress.com/32
 
|-
 
|-
 
| 6
 
| 6
|  
+
| [https://www.npmjs.com/package/mysql mysql]
|  
+
| [https://github.com/lkisac lkisac]
|
+
| https://github.com/mysqljs/mysql/pull/1630
|  
+
| https://lenisac.wordpress.com/2017/01/26/contributing-to-open-source-npm-package-mysql/
 
|-
 
|-
 
| 7
 
| 7
|  
+
| [https://www.npmjs.com/package/lodash lodash]
|
+
| [https://github.com/kramsamujh kramsamujh]
|  
+
| https://github.com/lodash/lodash/pull/2948
|  
+
| https://kramsamujh.wordpress.com/2017/01/24/osd600-lab-2-open-source-contribution/
 
|-
 
|-
 
| 8
 
| 8
|  
+
| [https://www.npmjs.com/package/glob glob]
|
+
| [https://github.com/raygervais/ rmgervais]
|  
+
| [https://github.com/isaacs/node-glob/pull/317 https://github.com/isaacs/node-glob/pull/317]
|  
+
| [http://raygervais.ca/open-source-contributions/ http://raygervais.ca/open-source-contributions/]
 
|-
 
|-
 
| 9
 
| 9
|  
+
| [https://www.npmjs.com/package/elasticsearch elasticsearch]
|  
+
| [https://github.com/Abykin abykin]
|
+
| [https://github.com/elastic/elasticsearch-js/pull/494 https://github.com/elastic/elasticsearch-js/pull/494]
|  
+
| [https://andreybykin.wordpress.com/2017/01/27/contributing-to-open-source-elasticsearch-project/ https://andreybykin.wordpress.com/2017/01/27/contributing-to-open-source-elasticsearch-project/]
 
|-
 
|-
 
| 10
 
| 10
|  
+
| [https://www.npmjs.com/package/data-proxy data-proxy]
 
|  
 
|  
 
|
 
|
Line 119: Line 119:
 
|-
 
|-
 
| 11
 
| 11
|  
+
| [https://www.npmjs.com/package/angular-ui-bootstrap bootsrap for angular]
|  
+
| [https://github.com/humphd humphd]
|
+
| https://github.com/angular-ui/bootstrap/pull/6418
 
|  
 
|  
 
|-
 
|-
 
| 12
 
| 12
|  
+
| [https://www.npmjs.com/package/angular-translate angular-translate]
|  
+
| [https://github.com/naperkovskiy inaperkovskiy]
|
+
| https://github.com/angular-translate/angular-translate/pull/1682
|  
+
| https://naperkovskiy.wordpress.com/2017/01/27/lab-2/
 
|-
 
|-
 
| 13
 
| 13
|  
+
| [https://www.npmjs.com/package/zone.js zone]
 
|  
 
|  
 
|
 
|
Line 137: Line 137:
 
|-
 
|-
 
| 14
 
| 14
|  
+
| [https://www.npmjs.com/package/concat-stream concat-stream]
|  
+
| [https://github.com/mkavidas mkavidas]
|
+
| https://github.com/maxogden/concat-stream/pull/54
 
|  
 
|  
 
|-
 
|-
 
| 15
 
| 15
|  
+
| [https://www.npmjs.com/package/customize-write-files Customize write files]
|  
+
| [https://github.com/twigz20 twigz20]
|
+
| https://github.com/bootprint/customize-write-files/pull/4
 +
| https://jgoguette.wordpress.com/2017/01/27/lab-2/
 
|  
 
|  
 
|-
 
|-
 
| 16
 
| 16
|  
+
| [https://www.npmjs.com/package/connector connector]
 
|  
 
|  
 
|
 
|
Line 155: Line 156:
 
|-
 
|-
 
| 17
 
| 17
|  
+
| [https://www.npmjs.com/package/Buffer buffer]
 
|  
 
|  
 
|
 
|
Line 161: Line 162:
 
|-
 
|-
 
| 18
 
| 18
|  
+
| [https://www.npmjs.com/package/morgan morgan]
|  
+
| [https://github.com/badrmodoukh badrmodoukh]
|
+
| https://github.com/expressjs/morgan/pull/133
|  
+
| https://badrmodoukh.wordpress.com/2017/01/25/dps909-lab-2-contributing-fixes-to-package-json-file/
 
|-
 
|-
 
| 19
 
| 19
|  
+
| [https://www.npmjs.com/package/json-loader json-loader]
 
|  
 
|  
 
|
 
|
Line 173: Line 174:
 
|-
 
|-
 
| 20
 
| 20
|  
+
| [https://github.com/facebookarchive/esprima esprima]
|  
+
| [https://github.com/Th30 Th30]
|
+
| https://github.com/facebookarchive/esprima/pull/119
|  
+
| https://theoduleblog.wordpress.com/2017/01/24/blog-post-2-first-contribution-lab-2/
 
|-
 
|-
 
| 21
 
| 21
|  
+
| [https://www.npmjs.com/package/webpack-dev-middleware webpack-dev-middleware]
|  
+
| [https://github.com/rkgupta21 rkgupta21]
|
+
| https://github.com/webpack/webpack-dev-middleware/pull/169
|  
+
| https://rahul3guptablog.wordpress.com/2017/01/25/blog-post-2/
 
|-
 
|-
 
| 22
 
| 22
|  
+
| [https://www.npmjs.com/package/browserify browserify]
 
|  
 
|  
 
|
 
|
Line 191: Line 192:
 
|-
 
|-
 
| 23
 
| 23
|  
+
| [https://www.npmjs.com/package/Angular2 Angular2]
|  
+
| [https://github.com/johnpapa johnpapa]
|
+
| https://github.com/johnpapa/vscode-angular2-snippets/pull/28
|  
+
| https://tonypark0403.wordpress.com/2017/01/24/about-angular-2-typescript-snippets/
 
|-
 
|-
 
| 24
 
| 24
|  
+
| [https://www.npmjs.com/package/restify restify]
|
+
| [https://github.com/timmoy timmoy]
|  
+
| https://github.com/restify/node-restify/pull/1272
|  
+
| https://timothymoy.wordpress.com/2017/01/26/osd600-lab-2-contributing-to-restify/
 
|-
 
|-
 
| 25
 
| 25
|
+
| [https://www.npmjs.com/package/browser-logos browser-logos]
|  
+
| [https://github.com/johnejames Jejames1]
|  
+
| https://github.com/alrra/browser-logos/pull/106#partial-pull-merging
|  
+
| https://johnjamesa70.wordpress.com/2017/01/23/osd-lab-2-my-first-open-source-contribution/
 
|-
 
|-
 
| 26
 
| 26
|
+
| [https://www.npmjs.com/package/supervisor Supervisor]
|  
+
| [https://github.com/cgsingh cgsingh]
|  
+
| https://github.com/petruisfan/node-supervisor/pull/204
|  
+
| https://cgsingh.wordpress.com/2017/01/24/lab-2-osd600-contribution-to-node-supervisor/
 
|-
 
|-
 
| 27
 
| 27
|  
+
| [https://www.npmjs.com/package/nodejs-dashboard nodejs-dashboard]
|
+
| [https://github.com/dangkhue27 dangkhue27]
|  
+
| https://github.com/FormidableLabs/nodejs-dashboard/pull/49
|  
+
| https://trandangkhue27.wordpress.com/2017/01/23/osd600-lab-2contributing-to-nodejs-dashboard/
 
|-
 
|-
 
| 28
 
| 28
|  
+
| https://www.npmjs.com/package/swiper-fullscreen swiper-fullscreen
 
|
 
|
 
|  
 
|  
Line 227: Line 228:
 
|-
 
|-
 
| 29
 
| 29
|  
+
| [https://www.npmjs.com/package/queried queried]
|
+
| [https://github.com/Blackweda Blackweda]
|  
+
| https://github.com/dfcreative/queried/pull/1
|  
+
| http://osd600osp.blogspot.ca/2017/01/contributing-to-packagejson-for-queried.html
 
|-
 
|-
 
| 30
 
| 30
|  
+
| [https://www.npmjs.com/package/pouchdb-errors pouchdb-errors]
 
|
 
|
 
|  
 
|  
Line 239: Line 240:
 
|-
 
|-
 
| 31
 
| 31
|  
+
| [https://www.npmjs.com/package/babel-runtime babel-runtime]
|
+
|[https://github.com/sgupta7857 sgupta7857]
 
|  
 
|  
 
|  
 
|  
 
|-
 
|-
 
| 32
 
| 32
|  
+
| [https://www.npmjs.com/package/@angular/compiler Angular - the compiler library]
|  
+
| [https://github.com/peiying16 peiying16]
|
+
| https://github.com/angular/angular/pull/14040
|  
+
| https://pyang16.wordpress.com/2017/01/25/i-added-keywords-for-angularjs/
 
|-
 
|-
 
| 33
 
| 33
|  
+
| [https://www.npmjs.com/package/semver semver]
|  
+
| [https://github.com/evantsyferov/ evanstyferov]
|
+
| https://github.com/npm/node-semver/pull/184
 
|  
 
|  
 
|-
 
|-
 
| 34
 
| 34
|  
+
| [https://github.com/flatiron/prompt prompt]
|  
+
| [https://github.com/Shank09/ npolugari]
|
+
| [https://github.com/flatiron/prompt/pull/172 https://github.com/flatiron/prompt/pull/172]
|  
+
| [https://npolugari.wordpress.com/2017/01/27/lab-2/ https://npolugari.wordpress.com/2017/01/27/lab-2/]
 
|-
 
|-
 
| 35
 
| 35
|  
+
| [https://github.com/atom/atom Atom]
|  
+
| [https://github.com/Blackweda Blackweda]
 
|
 
|
 
|  
 
|  
 
|-
 
|-
 
| 36
 
| 36
|  
+
| [https://www.npmjs.com/package/babylon babylon]
|
+
| [https://github.com/dsych dsych]
|  
+
| https://github.com/babel/babylon/pull/323
|  
+
| https://dsych.wordpress.com/2017/01/25/my-first-experience-with-open-source/
 
|-
 
|-
 
| 37
 
| 37
|  
+
| [https://www.npmjs.com/package/vinyl-fs vinyl-fs]
|
+
| [https://github.com/davidhuang1550 david]
|  
+
| [https://github.com/gulpjs/vinyl-fs/pull/219 Pull Request]
|  
+
| [https://dps909blog.wordpress.com/2017/01/24/vinyl-fs-contribution/ blog]
 
|-
 
|-
 
| 38
 
| 38
|  
+
| [https://www.npmjs.com/package/bugsnag-js bugsnag-js]
|
+
| tiago
 
|  
 
|  
 
|  
 
|  
 
|-
 
|-
 
| 39
 
| 39
|  
+
| [https://www.npmjs.com/package/jade jade]
|
+
| [https://github.com/mfainshtein4 Max]
|  
+
| [https://github.com/pugjs/pug/pull/2680 https://github.com/pugjs/pug/pull/2680]
|  
+
| https://mfainshtein4.wordpress.com/2017/01/25/lab2/
 
|-
 
|-
 
| 40
 
| 40
 +
| [https://github.com/gruntjs/grunt Grunt]
 +
| [https://github.com/omytryniuk omytryniuk]
 +
| https://github.com/gruntjs/grunt/pull/1577
 +
| [https://osd600mytryniuk.wordpress.com/2017/01/24/my-first-contribution-to-the-open-source-community/ My first contribution to the Open Source Community]
 +
|-
 +
| 41
 +
| [https://www.npmjs.com/package/bluebird bluebird]
 +
| [https://github.com/bkim49 John]
 +
| [https://github.com/petkaantonov/bluebird/pull/1329 https://github.com/petkaantonov/bluebird/pull/1329]
 +
| [http://pokim8989.blogspot.ca/2017/01/dps909-lab2.html My first contribution to the open source community]
 +
|-
 +
| 42
 +
| [https://www.npmjs.com/package/sqleye sqleye]
 
|  
 
|  
|
 
 
|  
 
|  
 
|  
 
|  
 +
|-
 +
| 43
 +
| [https://www.npmjs.com/package/sign-addon sign-addon]
 +
| [https://github.com/ZenanZha ZenanZha]
 +
| [https://github.com/mozilla/sign-addon/pull/242 https://github.com/mozilla/sign-addon/pull/242]
 +
| [http://zhazhazenan.blogspot.ca/2017/01/lab2-need-more-work.html Second Pull Request]
 +
|-
 +
| 44
 +
| [https://github.com/gulpjs/gulp gulp]
 +
| [https://github.com/Mordax Maya]
 +
| [https://github.com/gulpjs/gulp/pull/1894 https://github.com/gulpjs/gulp/pull/1894]
 +
| [https://mordax.github.io/open_source/2017/01/31/PullRequest.html Adventures in Pull Requesting]
 +
|-
 +
| 45
 +
| [https://www.npmjs.com/package/base64-js base64-js]
 +
| [https://github.com/ZenanZha ZenanZha]
 +
| [https://github.com/beatgammit/base64-js/pull/32 https://github.com/beatgammit/base64-js/pull/32]
 +
| [http://zhazhazenan.blogspot.ca/2017/01/lab2-my-first-pull-request.html My First Pull Request on github]
 +
|-
 +
| 46
 +
| [https://www.npmjs.com/package/url url]
 +
| [https://github.com/5earle 5earle]
 +
| [https://github.com/defunctzombie/node-url/pull/39 https://github.com/defunctzombie/node-url/pull/39]
 
|}
 
|}
  

Latest revision as of 03:01, 16 September 2017

Contributing to an Open Source Project on Github

In this lab you will contribute a fix to an open source project on Github. Successfully completing this lab will require you to have first worked through, and understood, this week's git walkthroughs. If you have not already done so, please setup git and Github as described in the following:

1. Intro to node.js, npm, npmjs.com

We will be contributing to projects that use node.js, its package manager npm, and the npmjs module registry. In order to complete this lab, you should install node.js on your home/dev computer, which you can download here.

We won't need to use node.js directly, but it's a good time to install it, since we'll be using it in subsequent labs and assignments.

2. Understanding package.json

Node.js uses a special file named package.json to specify metadata about a module. You can read a complete description of package.json at https://docs.npmjs.com/files/package.json.

A package.json file has to be valid JSON, and must include a few fields. However, many of the fields are optional. Let's look at some examples from popular node.js open source projects:

These package.json files have common elements, such as:

There are also some optional fields you can include, for example:

The metadata in package.json is used by the command-line tool npm as well as by the online registry https://www.npmjs.com/. Providing good data for these tools makes it easier for developers to find and use node modules.

3. Contributing fixes to package.json files

For our first contribution to an open source project, we're going to go looking for ways we can help existing node.js based projects do a better job with their package.json files. This could involve a number of things:

Before we can fix any issues with existing package.json files, we have to find some! Our first task is to locate 1 module with an issue per student. Please do not fix a bug until we have found a bug for everyone.

Here are some queries to get you started. Also look at the Dependencies and Dependents lists for any module you examine on npmjs. When you find a module that is missing keywords or has some other issue, add it below, making sure to copy the style I have begun on row 1. Also, be careful not to add duplicates:

To get you started, I've already found and fixed one, and also listed a couple of others I noticed in 5 minutes of searching on npmjs and Github.

# NPMJS Module (URL) Assigned (Github URL) Pull Request (URL) Blog Post (URL)
1 request humphd https://github.com/request/request/pull/2514 http://blog.humphd.org/howto-first-github-pr/
2 gulp-util MargarytaChepiga https://github.com/gulpjs/gulp-util/pull/131 https://mchepigablog.wordpress.com/2017/01/27/first-step-towards-the-open-source-community/
3 dat-next Eduardo Sorozabal https://github.com/joehand/dat-next/pull/110 https://edyedyschool.tumblr.com/post/156454760938/lab2
4 inherits simon66 https://github.com/isaacs/inherits/pull/29 http://sdealmeida.com/fixing-inherits-package-json-file/
5 nodeunit bbhagwandeen https://github.com/caolan/nodeunit/pull/336 https://wordpress.com/post/bbhawgandeen.wordpress.com/32
6 mysql lkisac https://github.com/mysqljs/mysql/pull/1630 https://lenisac.wordpress.com/2017/01/26/contributing-to-open-source-npm-package-mysql/
7 lodash kramsamujh https://github.com/lodash/lodash/pull/2948 https://kramsamujh.wordpress.com/2017/01/24/osd600-lab-2-open-source-contribution/
8 glob rmgervais https://github.com/isaacs/node-glob/pull/317 http://raygervais.ca/open-source-contributions/
9 elasticsearch abykin https://github.com/elastic/elasticsearch-js/pull/494 https://andreybykin.wordpress.com/2017/01/27/contributing-to-open-source-elasticsearch-project/
10 data-proxy
11 bootsrap for angular humphd https://github.com/angular-ui/bootstrap/pull/6418
12 angular-translate inaperkovskiy https://github.com/angular-translate/angular-translate/pull/1682 https://naperkovskiy.wordpress.com/2017/01/27/lab-2/
13 zone
14 concat-stream mkavidas https://github.com/maxogden/concat-stream/pull/54
15 Customize write files twigz20 https://github.com/bootprint/customize-write-files/pull/4 https://jgoguette.wordpress.com/2017/01/27/lab-2/
16 connector
17 buffer
18 morgan badrmodoukh https://github.com/expressjs/morgan/pull/133 https://badrmodoukh.wordpress.com/2017/01/25/dps909-lab-2-contributing-fixes-to-package-json-file/
19 json-loader
20 esprima Th30 https://github.com/facebookarchive/esprima/pull/119 https://theoduleblog.wordpress.com/2017/01/24/blog-post-2-first-contribution-lab-2/
21 webpack-dev-middleware rkgupta21 https://github.com/webpack/webpack-dev-middleware/pull/169 https://rahul3guptablog.wordpress.com/2017/01/25/blog-post-2/
22 browserify
23 Angular2 johnpapa https://github.com/johnpapa/vscode-angular2-snippets/pull/28 https://tonypark0403.wordpress.com/2017/01/24/about-angular-2-typescript-snippets/
24 restify timmoy https://github.com/restify/node-restify/pull/1272 https://timothymoy.wordpress.com/2017/01/26/osd600-lab-2-contributing-to-restify/
25 browser-logos Jejames1 https://github.com/alrra/browser-logos/pull/106#partial-pull-merging https://johnjamesa70.wordpress.com/2017/01/23/osd-lab-2-my-first-open-source-contribution/
26 Supervisor cgsingh https://github.com/petruisfan/node-supervisor/pull/204 https://cgsingh.wordpress.com/2017/01/24/lab-2-osd600-contribution-to-node-supervisor/
27 nodejs-dashboard dangkhue27 https://github.com/FormidableLabs/nodejs-dashboard/pull/49 https://trandangkhue27.wordpress.com/2017/01/23/osd600-lab-2contributing-to-nodejs-dashboard/
28 https://www.npmjs.com/package/swiper-fullscreen swiper-fullscreen
29 queried Blackweda https://github.com/dfcreative/queried/pull/1 http://osd600osp.blogspot.ca/2017/01/contributing-to-packagejson-for-queried.html
30 pouchdb-errors
31 babel-runtime sgupta7857
32 Angular - the compiler library peiying16 https://github.com/angular/angular/pull/14040 https://pyang16.wordpress.com/2017/01/25/i-added-keywords-for-angularjs/
33 semver evanstyferov https://github.com/npm/node-semver/pull/184
34 prompt npolugari https://github.com/flatiron/prompt/pull/172 https://npolugari.wordpress.com/2017/01/27/lab-2/
35 Atom Blackweda
36 babylon dsych https://github.com/babel/babylon/pull/323 https://dsych.wordpress.com/2017/01/25/my-first-experience-with-open-source/
37 vinyl-fs david Pull Request blog
38 bugsnag-js tiago
39 jade Max https://github.com/pugjs/pug/pull/2680 https://mfainshtein4.wordpress.com/2017/01/25/lab2/
40 Grunt omytryniuk https://github.com/gruntjs/grunt/pull/1577 My first contribution to the Open Source Community
41 bluebird John https://github.com/petkaantonov/bluebird/pull/1329 My first contribution to the open source community
42 sqleye
43 sign-addon ZenanZha https://github.com/mozilla/sign-addon/pull/242 Second Pull Request
44 gulp Maya https://github.com/gulpjs/gulp/pull/1894 Adventures in Pull Requesting
45 base64-js ZenanZha https://github.com/beatgammit/base64-js/pull/32 My First Pull Request on github
46 url 5earle https://github.com/defunctzombie/node-url/pull/39

Submission

You will have completed your lab when you have done the following:

  • Added a row above with the name of a node.js module that needs a fix, and your name. Make sure all students have a module to work on before you begin fixing yours. We'll work as a community to help triage existing modules.
  • Create a Pull Request to fix some problem or omission in the package.json file. I've documented a complete example in my blog, see http://blog.humphd.org/howto-first-github-pr/. Add the URL to your Pull Request to the table above.
  • Write a blog post about the process you took to complete this lab and the Pull Request. What happened next? Was it accepted? How long did it take? What did they say? What did you learn? Also write about your feelings contributing to your first open source project. What went well? What was hard? What surprised you?
  • Add the URL to your blog post in the table above beside your Pull Request URL

You should complete Lab 2 before the end of week 3 (it might take you a few days).