Changes

Jump to: navigation, search

DPS909 & OSD600 Winter 2017 - Lab 2

11,033 bytes added, 03:01, 16 September 2017
3. Contributing fixes to package.json files
* [[DPS909 & OSD600 Winter 2017 - Git Walkthrough 2 | Git Walkthrough #2 - Working Remote]]
==1. Install Intro to node.js, npm, npmjs.com==
We will be contributing to projects that use [https://nodejs.org/en/ node.js], its package manager [https://en.wikipedia.org/wiki/Npm_(software) npm], and the [https://www.npmjs.com/ npmjs module registry]. In order to complete this lab, you will need to should install node.json your home/dev computer, which you can [https://nodejs.org/en/download/ 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 <code>package.json</code> to specify metadata about a module. You can read a complete description of <code>package.json</code> at https://docs.npmjs.com/files/package.json.
A <code>package.json</code> file has to be valid JSON, and [https://docs.npmjs.com/getting-started/using-a-package.json#requirements 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:
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 <code>package.json</code> files. This could involve a number of things:
* correcting errors generated by http://package-json-validator.com/ for a <code>package.json</code> file
* adding missing optional fields to a <code>package.json</code> file, for example: <code>keywords</code> Before we can fix any issues with existing <code>package.json</code> 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 <code>keywords</code> 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:
* [https://www.npmjs.com/browse/star most starred packages on npmjs]* [https://www.npmjs.com/browse/depended most depended-upon packages on npmjs]* [https://www.google.ca/search?hl=en&as_q=&as_epq=inurl%3Apackage+json&as_oq=&as_eq=&as_nlo=&as_nhi=&lr=&cr=&as_qdr=all&as_sitesearch=github.com&as_occt=any&safe=images&as_filetype=pdf&as_rights=#hl=en&as_qdr=all&q=%22inurl:package.json%22+site:github.com+filetype:json list Google query of package.json files on github.com]
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.
{| class="wikitable"! #! NPMJS Module (URL)! Assigned (Github URL)! Pull Request (URL)! Blog Post (URL)|-| 1| [https://www.npmjs.com/package/request request]| [https://github.com/humphd humphd]| https://github.com/request/request/pull/2514| http://blog.humphd.org/howto-first-github-pr/|-| 2| [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| [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| [https://www.npmjs.com/package/inherits inherits]| [https://github.com/simon66 simon66]| https://github.com/isaacs/inherits/pull/29| http://sdealmeida.com/fixing-inherits-package-json-file/ |-| 5| [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| [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| [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| [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| [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| [https://www.npmjs.com/package/data-proxy data-proxy]| || |-| 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| [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| [https://www.npmjs.com/package/zone.js zone]| || |-| 14| [https://www.npmjs.com/package/concat-stream concat-stream]| [https://github.com/mkavidas mkavidas]| https://github.com/maxogden/concat-stream/pull/54| |-| 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| [https://www.npmjs.com/package/connector connector]| || |-| 17| [https://www.npmjs.com/package/Buffer buffer]| || |-| 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| [https://www.npmjs.com/package/json-loader json-loader]| || |-| 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| [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| [https://www.npmjs.com/package/browserify browserify]| || |-| 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| [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| [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| [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| [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| https://www.npmjs.com/package/swiper-fullscreen swiper-fullscreen|| | |-| 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| [https://www.npmjs.com/package/pouchdb-errors pouchdb-errors]|| | |-| 31| [https://www.npmjs.com/package/babel-runtime babel-runtime]|[https://github.com/sgupta7857 sgupta7857]| | |-| 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| [https://www.npmjs.com/package/semver semver]| [https://github.com/evantsyferov/ evanstyferov]| https://github.com/npm/node-semver/pull/184| |-| 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| [https://github.com/atom/atom Atom]| [https://github.com/Blackweda Blackweda]|| |-| 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| [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| [https://www.npmjs.com/package/bugsnag-js bugsnag-js]| tiago| | |-| 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| [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]|}
==Submission==
You will have completed your lab when you have done the following:
* Create a Pull Request to a project fixing some problem or omission in their <code>package.json</code> file
* Write a blog post about the process you took to complete this Pull Request, and about what happened next. Was it accepted? How long did it take? What did they say?
* Write about your feelings contributing to your first open source project. What went well? What was hard? What surprised you?
* 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 <code>package.json</code> 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 start '''end''' of week 3(it might take you a few days).
45
edits

Navigation menu