Difference between revisions of "DPS909 & OSD600 Fall 2018"
(→Week 3) |
|||
Line 134: | Line 134: | ||
* [[DPS909/OSD600 Fall 2018 Lab 2|Lab 2]] | * [[DPS909/OSD600 Fall 2018 Lab 2|Lab 2]] | ||
+ | |||
+ | == Week 4 == | ||
+ | |||
+ | * Learning Licenses: MIT | ||
+ | ** [https://choosealicense.com/licenses/mit/ MIT License] | ||
+ | ** [https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html The MIT License, Line by Line] | ||
+ | ** One of the most widely used licenses in Open Source | ||
+ | ** Like the BSD License, nothing about patents (created before software was patentable in the US) | ||
+ | ** Example software projects licensed under the BSD License: | ||
+ | *** [https://expressjs.com/ ExpressJS] | ||
+ | *** [http://rubyonrails.org/ Ruby on Rails] | ||
+ | *** [https://angularjs.org/ AngularJS] | ||
+ | *** [https://atom.io/ Atom], [https://electron.atom.io/ Electron] | ||
+ | *** [http://getbootstrap.com/ Bootstrap] | ||
+ | *** [https://nodejs.org/ node.js] | ||
+ | *** [https://github.com/photonstorm/phaser Phaser] | ||
+ | *** [https://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] | ||
+ | *** [https://socket.io/ Socket.IO] | ||
+ | |||
+ | * More Git | ||
+ | ** [https://wiki.cdot.senecacollege.ca/wiki/DPS909_%26_OSD600_Fall_2017_-_Git_Walkthrough Git Walkthrough Part I] | ||
+ | ** [[DPS909 & OSD600 Winter 2017 - Git Walkthrough 2| Git Walkthrough Part II]] | ||
+ | ** Some basic git commands you should make sure you know how to use: | ||
+ | ***<code>git clone</code> - clone an existing repository (i.e., one you've forked on GitHub) | ||
+ | ***<code>git status</code> - check what's happening with your repo, working directory, branch info | ||
+ | ***<code>git add</code> - add a file, files, or folder(s) of file(s) | ||
+ | ***<code>git commit</code> - commit changes in the staging area | ||
+ | ***<code>git log</code> - look back at existing commits | ||
+ | ***<code>git diff</code> - look at the difference between what's in the working directory and staging area, or between two commits | ||
+ | ***<code>git rm</code> - remove a file | ||
+ | ***<code>git mv</code> - move or rename a file | ||
+ | ***<code>git reset</code> - update the staging area, and perhaps working directory, with files from another commit (e.g., HEAD) | ||
+ | ***<code>git checkout</code> - switch to a branch or commit, or create, or get files from a branch/commit |
Revision as of 14:49, 26 September 2018
Week 1
- Releases
- 4 releases, some with multiple bugs/PRs required
- Chance to work on real code, real projects
- Big learning curve, lots of time required
- Amazing chance to gain experience, network, build your skills and resume
- Discussion/Readings
- Copyright (Copyright in Canada video)
- IANAL
- Who created it, "owns" it.
- Set of exclusive rights granted to the work's creator
- "The right to copy," to produce or reproduce a work or substantial portion thereof
- Copyright is automatic when a work is created, you don't have to register it.
- Copyright in Canada
- Copyright Guide
- In a software project, there can be many copyright holders (e.g., many contributors), or all contributors may assign their copyright to the project (e.g., CLA, which we'll cover later)
- What is Open Source?
- Microsoft buys GitHub for 7.5 Billion - "We're all in on open source"
- Julia Evans, "How to teach yourself hard things"
- Copyright (Copyright in Canada video)
- First open technologies and projects we'll be using:
Week 2
- Release 0.1 Overview
- Due Friday Sept 28th
- node.js
- node fs module vs. filer
- synchronous vs. asynchronous functions in JavaScript
- node's callback function pattern vs. Promises
- Licenses
- Rights, privileges, responsibilities, etc. applicable to someone other than the work's creator
- "Terms and Conditions"
- These must be granted by a copyright holder
- No License
- What can you do with code you find that has no license?
- what can I, can't I do?
- Public Domain
- SQLite, which is now used by literally everybody, see http://www.sqlite.org/famous.html
- Unlicense
- BSD License
- Family of Licenses, including 2-Clause BSD, 3-Clause BSD (aka New BDS), 4-Clause BSD
- "Why you should use a BSD style license for your Open Source Project"
- BSD Licenses code is usually compatible with other open/closed code, when you want to mix them.
- Example software projects licensed under the BSD License:
- Summary:
- You need to retain the license and copyright notice
- You can use it commercially or non-commercially (privately)
- You can distribute it freely
- You can modify it freely
- Open Source and Code Reading
Week 3
- Readings/Resources
- Filing and Fixing a bug: a cookbook approach
- set up git and GitHub
- https://help.github.com/ has lots of great articles to help you. You can also view video guides or read the printed guides
- setup your username in git
- setup your email address in git
- specify which editor git should use, for example you can use vscode
- setup line endings (CRLF vs. LF) in git
- setup ssh keys for GitHub
- In GitHub, create a fork of the repo you want to work on
- On your computer, clone your forked repo
- On your computer, add a remote named "upstream" for the original repo (vs. your fork)
- On GitHub, find or create an Issue for the change you want to make
- On your computer, create and checkout a branch for your work, e.g., issue-1234 for Issue #1234
- On your computer, make code changes, test them, add, and commit on your branch. Repeat as necessary.
- On your computer, push your changes (commits) to your fork (origin)
- On GitHub, create a Pull Request for your changes to get sent to the upstream repo
- On your computer, fix any problems pointed out by your reviewer(s), add the file(s), commit, and push again to update your pull request
- set up git and GitHub
- Real world examples:
- Filing, Fixing a bug in Filer
- Adding a new Feature, Tests, and Docs to Filer - support node's new recursive fs.mkdir in Filer
Week 4
- Learning Licenses: MIT
- MIT License
- The MIT License, Line by Line
- One of the most widely used licenses in Open Source
- Like the BSD License, nothing about patents (created before software was patentable in the US)
- Example software projects licensed under the BSD License:
- More Git
- Git Walkthrough Part I
- Git Walkthrough Part II
- Some basic git commands you should make sure you know how to use:
git clone
- clone an existing repository (i.e., one you've forked on GitHub)git status
- check what's happening with your repo, working directory, branch infogit add
- add a file, files, or folder(s) of file(s)git commit
- commit changes in the staging areagit log
- look back at existing commitsgit diff
- look at the difference between what's in the working directory and staging area, or between two commitsgit rm
- remove a filegit mv
- move or rename a filegit reset
- update the staging area, and perhaps working directory, with files from another commit (e.g., HEAD)git checkout
- switch to a branch or commit, or create, or get files from a branch/commit