Changes

Jump to: navigation, search

DPS909 & OSD600 Fall 2017

3,458 bytes added, 14:14, 20 November 2017
no edit summary
* [[DPS909/OSD600 Fall 2017 Lab 6/7 | Lab 6/7]]
 
== Week 7 ==
 
* '''Changes to Semester'''
** Removal of Release 0.3 from Graded Work. You will only be expected to complete two releases instead of three: 0.1 and 0.2.
** Grading will now be as follows:
*** Release 0.1 - 35% (up from 25%)
*** Release 0.2 - 35% (up from 25%)
*** Blog - 15% (no change)
*** Labs - 15% (up from 10%)
** Due Dates
*** Release 0.1 due by Tues Nov 28
*** Release 0.2 and any outstanding Labs due by midnight Fri Jan 5th
** Revised Class schedule:
*** Tues Dec 19, final in-class session together
*** Thurs Dec 21, final on-line lab
*** Jan 2-5, no formal class time together. Complete outstanding labs, release work. I'll be available online only via Slack, Email, GitHub, etc.
 
* '''TODO'''
** Complete and Submit [[DPS909/OSD600_0.1_Release|0.1 Release]] by next Tues Nov 28th.
** Update [[DPS909 & OSD600 Fall 2017 Bug List]] with any new bugs you've done since we were apart
 
* Three Questions:
** '''What's a victory you've had already?''' Bug you fixed? Project you contributed to? Tech you mastered? Something you learned that used to be hard?
** '''What's something you're finding tricky?''' Something we should cover in class? Something you have to do for a bug, a tool that you don't fully understand, an issue with some process?
** '''What's an open source goal you have for yourself before the end of term?''' Project you want to contribute to? Technique you want to master? Community you want to join? Something you want to learn/accomplish?
 
* Continuous Integration (CI)
** Automate and Test everything
** Have bots integrate, verify, and test all parts of a project every time you make a change. For both large and small changes.
** Revert changes that "break the build"
** Produce "nightly" or "staging" style build artifacts the community can test against
** Automate deployment tasks per commit
** Make it less painful for a large community to work on the same code without sacrificing stability.
 
* Open Source CI
** Most projects use one of [https://travis-ci.com/ TravisCI], [https://circleci.com/ CircleCI], [https://www.appveyor.com/ AppVeyor], etc.
** Free for Open Source Projects
** Integrates with GitHub, build per commit or pull request, reports back to GitHub PRs.
** Used for Building, Testing, Linting, and Deployment
 
* TravisCI
** See [https://docs.travis-ci.com/user/getting-started/ Getting Started] and [https://docs.travis-ci.com/user/for-beginners/ Core Concepts]
** You need an automated setup, build, and test system for your project.
** Create an Account with TravisCI and Enable an Integration for your GitHub repo.
** TravisCI is configured for a project via a ''travis.yml'' file
** The ''travis.yml'' file tells TravisCI how to setup a virtual container to build/test your code, and which steps to use in order to determine if things are working
** Example 1: Thimble
*** https://github.com/mozilla/thimble.mozilla.org/blob/master/.travis.yml
*** https://github.com/mozilla/brackets/blob/master/.travis.yml
*** https://travis-ci.org/mozilla/thimble.mozilla.org
*** https://travis-ci.org/mozilla/brackets
*** https://bramble.mofostaging.net/en-US/
** Example 2: Activity Stream
*** https://github.com/mozilla/activity-stream/blob/master/.travis.yml
*** https://travis-ci.org/mozilla/activity-stream
** Example 3: Firefox JavaScript Debugger
*** https://github.com/devtools-html/debugger.html/blob/master/.travis.yml
*** https://travis-ci.org/devtools-html/debugger.html

Navigation menu