Skip to content

Commit

Permalink
Merge pull request #125 from neelabhg/fixes_and_updates
Browse files Browse the repository at this point in the history
Fixes and updates
  • Loading branch information
neelabhg committed Nov 12, 2015
2 parents 94ac5ff + 17d18c2 commit 5afabf0
Show file tree
Hide file tree
Showing 21 changed files with 214 additions and 139 deletions.
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[{bower.json,package.json,.travis.yml}]
indent_size = 2
3 changes: 2 additions & 1 deletion .jscsrc
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"preset": "crockford",
"requireMultipleVarDecl": null,
"disallowDanglingUnderscores": null
"disallowDanglingUnderscores": null,
"requireVarDeclFirst": null
}
7 changes: 5 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
sudo: false # this ensures our build is routed to Travis CI's new container-based infrastructure
language: node_js
node_js:
- "0.10"
cache:
directories:
- node_modules
- bower_components
before_install: npm install -g bower grunt-cli
notifications:
email: false
Expand Down
72 changes: 69 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ contribution process easy and effective for everyone involved. These are just gu
judgment and feel free to propose changes to this document in a pull request or issue.

## Using the issue tracker
The [issue tracker](https://github.com/twbs/bootstrap/issues) is the preferred channel for bug reports, feature
The [issue tracker](https://github.com/cs-education/sysbuild/issues) is the preferred channel for bug reports, feature
requests and [submitting pull requests](#pull-requests).

Bug reports are extremely helpful, and are encouraged! Information about your environment, such as your browser and
Expand All @@ -14,6 +14,44 @@ You can also post on the chat room or reach out to the project team directly if
[Community and Collaboration](README.md#community-and-collaboration) section in the README for directions.
It also contains details on the project team's workflow.

If you would like to work on this project, see the information below to get started.

## Project organization
This is the main repository for the project. Other repositories which are part of the project are:

* [cs-education/jor1k](https://github.com/cs-education/jor1k) - The virtual machine embedded into the browser

* [cs-education/sysassets](https://github.com/cs-education/sysassets) - Pre-compiled assets used in the project, such
as lecture videos, lessons, man pages, and the jor1k filesystem

We use [GitHub Pages](https://help.github.com/articles/what-are-github-pages) for hosting the application. The
repositories used for deployment are separate from this repository, to keep this repository small. You probably won't
be committing changes directly to these repositories, but instead use automated deployment scripts (see
[Deploying](#deploying) below). The following repositories are used for deployment:

* [cs-education/sys-staging](https://github.com/cs-education/sys-staging) - Staging deployment for the project, used
for testing before deploying to production

* [cs-education/sys](https://github.com/cs-education/sys) - Production deployment for the project

## Structure of this repository
```
sysbuild/
├── app/ Application source code
│ ├── images/ Images/pictures
│ ├── jor1k/ The jor1k project source copied by grunt during setup
│ ├── scripts/ Javascript files
│ └── styles/ SASS and CSS files
├── dist/ The distributable application output by the build process
├── bower_components/ Dependencies installed by Bower
├── node_modules/ Dependencies installed by npm
├── sys-gh-pages-config/ Config for the application deployed on production
└── test/ Tests
└── spec/
```

This project was scaffolded using the [Yeoman webapp generator](https://github.com/yeoman/generator-webapp).

## Development environment set up
1. [Set up Git](https://help.github.com/articles/set-up-git/) and install [Node.js](https://nodejs.org/).
Node's package manager ([npm](https://www.npmjs.org/)) comes bundled.
Expand Down Expand Up @@ -104,7 +142,7 @@ changes from the main (upstream) repository:
`git checkout master`

3. Delete the local branch:
`git branch -D my-fix-branch`
`git branch -D <topic-branch-name>`

4. Update your local `master` branch with the latest upstream version:
`git pull upstream master`
Expand Down Expand Up @@ -167,7 +205,25 @@ have a compelling reason for it.
* If your pull request contains a fix for a bug or implements a new feature, you can have the corresponding issue
[closed automatically](https://github.com/blog/1506-closing-issues-via-pull-requests) when the pull request is merged.

## Useful tools and tips for development
## Deploying
**NOTE**: You will need push access to the appropriate repository before you can deploy to an official URL. If you want
to deploy to your own repository or server, only perform the first (build) step and upload the contents of `dist/`
to your repository's `gh-pages` branch or to the web folder on your server.

1. Build the distributable project (output in the `dist/` folder):
`grunt build`

2. Deploy to [staging](https://cs-education.github.io/sys-staging/):
`grunt deploy:staging`

3. Test out the application in staging and ensure things work as expected. Once things look good, please announce in
the chat room that you are going to deploy to production.

4. Deploy to [production](https://cs-education.github.io/sys/):
`grunt deploy:prod`

## Development notes
### Useful commands
* Run `grunt serve` to start a local development server. It will automatically launch the default browser and navigate to
the local application. It will also watch files for changes - automatically running JSHint on changed JS files,
automatically compiling changed SASS files, etc. You do need to refresh the web page after making any changes
Expand All @@ -179,6 +235,16 @@ have a compelling reason for it.
* If you want to run the tests in a browser, run `grunt testserver` to start a local test server, then
navigate to `http://localhost:9001`.

### Travis CI configuration.
* [We cache](.travis.yml) Bower and npm dependencies to speed up builds. The caches can be accessed
[on the web](https://travis-ci.org/cs-education/sysbuild/caches), which gives us a means to
[delete the caches](http://docs.travis-ci.com/user/caching/#Clearing-Caches) in case they are spoiled
by storing bad data in one of the cached directories.

* You can [validate the .travis.yml file](http://docs.travis-ci.com/user/travis-lint/) before committing it to reduce
common build errors. Travis has a convenient [web-based tool](https://lint.travis-ci.org/) where you can paste the
contents of .travis.yml for validation.

## License
By contributing your code, you agree to license your contribution under the terms of the
[project's license](LICENSE.md).
4 changes: 2 additions & 2 deletions PEOPLE.md → CREDITS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ The project was initiated by Dr. Lawrence Angrave in 2014 and has been continuou
students and faculty at the [University of Illinois at Urbana-Champaign](http://illinois.edu/).

## Project Leaders
Dr. Lawrence Angrave [![GitHub][github]](http://github.com/angrave)
Dr. Lawrence Angrave [![GitHub][github]](https://github.com/angrave)
Neelabh Gupta [![GitHub][github]](https://github.com/neelabhg) [![Twitter][twitter]](https://twitter.com/neelabhg)

## University of Illinois Students and Researchers
Expand All @@ -29,7 +29,7 @@ Siddharth Seth [![GitHub][github]](https://github.com/siddharth-seth)
See the list of GitHub contributors for the [sysbuild](https://github.com/cs-education/sysbuild/graphs/contributors)
and [sysassets](https://github.com/cs-education/sysassets/graphs/contributors) repositories.

## Open source projects
# Open source projects
Amazing projects without which this project would not have been possible:

* The virtual machine embedded in the browser is forked from the [jor1k](https://github.com/s-macke/jor1k) project.
Expand Down
22 changes: 12 additions & 10 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
// use this if you want to recursively match all subfolders:
// 'test/spec/**/*.js'

var serveStatic = require('serve-static');

module.exports = function (grunt) {

// Load grunt tasks automatically
Expand Down Expand Up @@ -108,9 +110,10 @@ module.exports = function (grunt) {
options: {
middleware: function (connect) {
return [
connect.static('.tmp'),
connect().use('/bower_components', connect.static('./bower_components')),
connect.static(config.app)
serveStatic('.tmp'),
connect().use('/bower_components', serveStatic('./bower_components')),
serveStatic(config.app),
connect().use('/LICENSE.md', serveStatic('./LICENSE.md'))
];
},
livereload: false
Expand All @@ -122,10 +125,10 @@ module.exports = function (grunt) {
port: 9001,
middleware: function (connect) {
return [
connect.static('.tmp'),
connect.static('test'),
connect().use('/bower_components', connect.static('./bower_components')),
connect.static(config.app)
serveStatic('.tmp'),
serveStatic('test'),
connect().use('/bower_components', serveStatic('./bower_components')),
serveStatic(config.app)
];
}
}
Expand Down Expand Up @@ -250,7 +253,6 @@ module.exports = function (grunt) {
'<%= config.dist %>/scripts/{,*/}*.js',
'<%= config.dist %>/styles/{,*/}*.css',
'<%= config.dist %>/images/{,*/}*.*',
'<%= config.dist %>/styles/fonts/{,*/}*.*',
'<%= config.dist %>/*.{ico,png}'
]
}
Expand Down Expand Up @@ -345,7 +347,7 @@ module.exports = function (grunt) {
}, {
expand: true,
dot: true,
cwd: 'bower_components/videojs/dist/video-js/font/',
cwd: 'bower_components/videojs/dist/font/',
src: ['*.*'],
dest: '<%= config.dist %>/styles/font/'
}, {
Expand All @@ -371,7 +373,7 @@ module.exports = function (grunt) {
dot: true,
cwd: 'bower_components/jquery-notific8/dist/fonts/',
src: ['*.*'],
dest: '<%= config.dist %>/styles/font/'
dest: '<%= config.dist %>/styles/fonts/'
}]
},
styles: {
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2014-2015 Lawrence Angrave
Copyright &copy; 2014-2015 Lawrence Angrave
Version 0.0.2
All Rights Reserved.

Expand Down
65 changes: 6 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This is the main repository for the browser-based system programming learning en
Also known as the Linux-in-a-browser project, this tool is used in the [CS 241 (System Programming)](https://courses.engr.illinois.edu/cs241/) course
at the University.

View the project running live [here](http://cs-education.github.io/sys/).
View the project running live [here](https://cs-education.github.io/sys/).

## Bugs and feature requests
Use the [issue tracker](https://github.com/cs-education/sysbuild/issues) to submit bug reports and feature requests.
Expand All @@ -34,70 +34,17 @@ Please see the [issue guidelines](CONTRIBUTING.md#using-the-issue-tracker) for h
or other concerns.

## Contributing
Please read through our [contributing guidelines](CONTRIBUTING.md). Included are directions for opening issues, setting
up your development environment, opening pull requests, coding standards, and notes on development.

If you would like to work on this project, here is more information on what you need to know to get started.

### Project organization
This is the main repository for the project. Other repositories which are part of the project are:

* [cs-education/jor1k](https://github.com/cs-education/jor1k) - The virtual machine embedded into the browser

* [cs-education/sysassets](https://github.com/cs-education/sysassets) - Pre-compiled assets used in the project, such
as lecture videos, lessons, man pages, and the jor1k filesystem

We use [GitHub Pages](https://help.github.com/articles/what-are-github-pages) for hosting the application. The
repositories used for deployment are separate from this repository, to keep this repository small. You probably won't
be committing changes directly to these repositories, but instead use automated deployment scripts (see
[Deploying](#deploying) below). The following repositories are used for deployment:

* [cs-education/sys-staging](https://github.com/cs-education/sys-staging) - Staging deployment for the project, used
for testing before deploying to production

* [cs-education/sys](https://github.com/cs-education/sys) - Production deployment for the project

### Structure of this repository
```
sysbuild/
├── app/ Application source code
│ ├── images/ Images/pictures
│ ├── jor1k/ The jor1k project source copied by grunt during setup
│ ├── scripts/ Javascript files
│ └── styles/ SASS and CSS files
├── dist/ The distributable application output by the build process
├── bower_components/ Dependencies installed by Bower
├── node_modules/ Dependencies installed by npm
├── sys-gh-pages-config/ Config for the application deployed on production
└── test/ Tests
└── spec/
```

This project was scaffolded using the [Yeoman webapp generator](https://github.com/yeoman/generator-webapp).

### Deploying
**NOTE**: You will need push access to the appropriate repository before you can deploy to an official URL. If you want
to deploy to your own repository or server, only perform the first (build) step and upload the contents of `dist/`
to your repository's `gh-pages` branch or to the web folder on your server.

1. Build the distributable project (output in the `dist/` folder):
`grunt build`

2. Deploy to [staging](http://cs-education.github.io/sys-staging/):
`grunt deploy:staging`

3. Test out the application in staging and ensure things work as expected. Once things look good, please announce in
the chat room that you are going to deploy to production.

4. Deploy to [production](http://cs-education.github.io/sys/):
`grunt deploy:prod`
Please read through our [contributing guidelines](CONTRIBUTING.md). Included are guidelines for opening issues,
information about the organization of the project as well as this repository, directions for setting up your
development environment, opening pull requests, coding standards, notes on development, and directions for
deploying the application.

### Further documentation
See the [Wiki](https://github.com/cs-education/sysbuild/wiki) for information about the technology stack used,
project road maps, learning resources, and other information.

## Credits
See [PEOPLE.md](PEOPLE.md).
See [CREDITS.md](CREDITS.md).

## License
See [LICENSE.md](LICENSE.md) for copyright, license, attribution and other legal information.
Loading

0 comments on commit 5afabf0

Please sign in to comment.