Changes

Jump to: navigation, search

DPS909 & OSD600 Winter 2019

5,353 bytes added, 09:18, 3 April 2019
Week 12
** [[OSD & DPS909 Winter 2019 Release 0.3|Release 0.3]] due Fri, Mar 29
** [[OSD & DPS909 Winter 2019 Release 0.4|Release 0.4]] due Fri, Apr 12
 
* Starting a new Open Source Project
** The problem: https://github.com/humphd/nohost/issues/6
** [https://www.npmjs.com/package/mime-db mime-db]
** [https://www.npmjs.com/package/mime-types mime-types]
* Open Source Case Study: Redis
* [http://antirez.com/news/124 Writing Code Comments] based on [https://github.com/antirez/redis/tree/32e0d2376fe91e76be04bb62825af5d95737b13e 32e0d237 commit]
* His [https://www.youtube.com/channel/UCDDG9vOcmgwlslJJpCWjqOg YouTube channel] has more video discussions of the code in Redis
 
== Week 10 ==
 
* Starting a new Open Source Project: [https://github.com/humphd/browser-mime browser-mime]
** The problem: https://github.com/humphd/nohost/issues/6
** [https://www.npmjs.com/package/mime-db mime-db]
** [https://www.npmjs.com/package/mime-types mime-types]
** Discussion
*** [https://twitter.com/jalbertbowdenii/status/1106224172781457411 talk to the community]
*** https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming
*** [https://gist.github.com/humphd/a4458bc2895844c6cb756ae5e3074f66 research data]
*** [https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS CORS and Data URIs (we need a small server for same-origin analysis)]
*** [https://pptr.dev/ Puppeteer for automation]
*** How to modify [https://github.com/jshttp/mime-types/blob/master/index.js mime-types code] to use our new db? [https://www.atlassian.com/blog/git/git-submodules-workflows-tips Git Submodule] vs [https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree Git Subtree]
**** <code>git submodule add https://github.com/jshttp/mime-types.git</code> to create and <code>git submodule update --remote</code> to update
**** <code>git subtree add --prefix mime-types https://github.com/jshttp/mime-types.git master --squash</code> to create and <code>git subtree pull --prefix mime-types https://github.com/jshttp/mime-types.git master --squash</code>
 
* [https://humphd.github.io/pretty-effective/ Case Study - Prettier]
** Web site: https://prettier.io/
** Twitter: https://twitter.com/PrettierCode
** GitHub: https://github.com/prettier/prettier
** [https://www.youtube.com/watch?v=hkfBvpEfWdA James Long introducing Prettier (video)]
** [https://www.youtube.com/watch?v=3p6XR2VeHRw Visualization of Prettier Development (video)]
 
* Using linting and pretty-printing tools in projects
** [https://prettier.io/docs/en/install.html Installing Prettier]
** [https://eslint.org/ eslint]
 
* Work on your Release 0.3
 
== Week 11 ==
 
* Complete your 0.3 and begin/continue 0.4
 
* Continuous Integration (CI)
** Lots of free-for-open-source CI services: [https://travis-ci.com/ TravisCI], [https://azure.microsoft.com/en-ca/services/devops/pipelines/ Azure Pipelines], [https://circleci.com/ CircleCI], [https://www.appveyor.com/ AppVeyor], [https://jenkins.io/ Jenkins]
 
* Automating build, test, and deploy steps with Travis CI
** https://docs.travis-ci.com/
** https://docs.travis-ci.com/user/for-beginners/
 
* Travis uses YAML for configuration
** YAML Ain't Markup Language (YAML)
** https://en.wikipedia.org/wiki/YAML
** Usually uses the .yml extension
** https://learnxinyminutes.com/docs/yaml/
 
* Stages of a Travis CI Build
** [https://docs.travis-ci.com/user/job-lifecycle/#the-job-lifecycle Stages of Build Lifecycle]
** Adding OS-level dependencies https://docs.travis-ci.com/user/installing-dependencies/
 
* Running Tests per Commit/PR
** https://docs.travis-ci.com/user/languages/javascript-with-nodejs/
** Assumes you want to `npm install` and run `npm test`
** Therefore, you need a working install and test process via `package.json`
 
* Deployment options:
** GitHub and gh-pages
*** https://pages.github.com/
*** https://help.github.com/categories/github-pages-basics/
*** Enable HTTPS https://help.github.com/articles/securing-your-github-pages-site-with-https/
*** Custom 404 page https://help.github.com/articles/creating-a-custom-404-page-for-your-github-pages-site/
*** https://docs.travis-ci.com/user/deployment/pages/
*** https://docs.travis-ci.com/user/status-images/
** [https://docs.travis-ci.com/user/deployment/cargo/ Deploy Rust crates to Cargo]
** [https://docs.travis-ci.com/user/deployment/releases/ Deploy binary releases to GitHub Releases]
** [https://docs.travis-ci.com/user/deployment/heroku/ Deploy web apps to Heroku]
** [https://docs.travis-ci.com/user/deployment/npm/ Deploy node modules to npm]
** [https://docs.travis-ci.com/user/deployment/pypi/ Deploy python packages to PyPi]
 
* Some example .travis.yml files in OSS projects
** https://github.com/filerjs/filer/blob/master/.travis.yml
** https://github.com/devtools-html/debugger.html/blob/master/.travis.yml
** https://github.com/datalocale/dataviz-finances-gironde/blob/master/.travis.yml
 
* [https://github.com/humphd/learn-travis Walkthrough: setting up Travis for a node.js app]
 
== Week 12 ==
 
* Discussion of open source maintenance, maintainers, and our expectations of "free" software
 
* BDFL
** Linux: https://www.linuxjournal.com/content/25-years-later-interview-linus-torvalds
** Python: https://lwn.net/Articles/759654/, https://www.theregister.co.uk/2018/07/13/python_creator_guido_van_rossum_quits/
** Node modules: https://www.npmjs.com/package/request, https://github.com/request/request/issues/3142
 
** event-stream hack
*** https://twitter.com/garybernhardt/status/1067111872225136640
*** https://github.com/dominictarr/event-stream/issues/116
*** https://schneid.io/blog/event-stream-vulnerability-explained/ Hack explained
*** https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
*** https://blog.tidelift.com/event-stream-100-million-downloads-unmaintained-hacked.-now-can-we-pay-the-maintainers
 
** Emerging models
** https://opencollective.com/, e.g., https://opencollective.com/babel
** https://tidelift.com/
** https://www.patreon.com/, e.g., https://www.patreon.com/henryzhu, https://www.patreon.com/sindresorhus
** LTS for Node Modules - https://medium.com/@nodejs/call-to-action-accelerating-node-js-growth-e4862bee2919
*** https://github.com/nodejs/package-maintenance

Navigation menu