aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/misc/contribute.ngdoc
diff options
context:
space:
mode:
authorBrian Ford2013-10-31 13:09:35 -0700
committerBrian Ford2013-11-04 10:35:21 -0800
commitde2cced192405f352c0cefccd3e7726aef56dae0 (patch)
tree0451356d193d25e2ff87ea26ac4e13cadd4106c1 /docs/content/misc/contribute.ngdoc
parent84166029ec503d174c57e47cfcc963331125385e (diff)
downloadangular.js-de2cced192405f352c0cefccd3e7726aef56dae0.tar.bz2
docs(guide/contribute): remove redundancy and link to CONTRIBUTING.md
Diffstat (limited to 'docs/content/misc/contribute.ngdoc')
-rw-r--r--docs/content/misc/contribute.ngdoc278
1 files changed, 78 insertions, 200 deletions
diff --git a/docs/content/misc/contribute.ngdoc b/docs/content/misc/contribute.ngdoc
index 7cae67c3..04ebb410 100644
--- a/docs/content/misc/contribute.ngdoc
+++ b/docs/content/misc/contribute.ngdoc
@@ -1,157 +1,94 @@
@ngdoc overview
-@name Contributing
+@name Develop
@description
+# Building and Testing AngularJS
-* <a href="#H1_1">License</a>
-* <a href="#H1_2">Contributing to Source Code</a>
-* <a href="#H1_3">Applying Code Standards</a>
-* <a href="#H1_4">Checking Out and Building `Angular`</a>
-* <a href="#H1_5">Submitting Your Changes</a>
+This document describes how to set up your development environment to build and test AngularJS, and
+explains the basic mechanics of using `git`, `node`, `npm`, `grunt`, and `bower`.
+See the [contributing guidelines](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md)
+for how to contribute your own code to AngularJS.
-<a name="H1_1"></a>
-# License
-AngularJS is an open source project licensed under the {@link
-http://github.com/angular/angular.js/blob/master/LICENSE MIT license}. Your contributions are
-always welcome. When working with AngularJS code base, please follow the guidelines provided on
-this page.
+1. <a href="#developing-angularjs_installing-dependencies">Installing Dependencies</a>
+2. <a href="#developing-angularjs_forking-angular-on-github">Forking Angular on Github</a>
+3. <a href="#developing-angularjs_building-angularjs">Building AngularJS</a>
+4. <a href="#developing-angularjs_running-a-local-development-web-server">Running a Local Development Web Server</a>
+5. <a href="#developing-angularjs_running-the-unit-test-suite">Running the Unit Test Suite</a>
+6. <a href="#developing-angularjs_running-the-end-to-end-test-suite">Running the End-to-end Test Suite</a>
+## Installing Dependencies
-<a name="H1_2"></a>
-# Contributing to Source Code
-
-We'd love for you to contribute to our source code and to make AngularJS even better than it is
-today! Here are the guidelines we'd like you to follow:
-
-* Major changes that you intend to contribute to the project should be discussed first on our {@link
-https://groups.google.com/forum/?hl=en#!forum/angular mailing list} so that we can better
-coordinate our efforts, prevent duplication of work, and help you to craft the change so that it
-is successfully accepted upstream.
-
-* Small changes and bug fixes can be crafted and submitted to Github as a <a href="#H1_5">pull
-request</a>.
-
-
-
-<a name="H1_3"></a>
-# Applying Code Standards
-
-To ensure consistency throughout the source code, keep these rules in mind as you are working:
-
-* All features or bug fixes must be tested by one or more <a href="#unit-tests">specs</a>.
-
-* All public API methods must be documented with ngdoc, an extended version of jsdoc (we added
-support for markdown and templating via `@ngdoc` tag). To see how we document our APIs, please
-check out the existing ngdocs.
-
-* With the exceptions listed below, we follow the rules contained in {@link
-http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml Google's JavaScript Style
-Guide}:
-
- * Do not use namespaces: Instead, we wrap the entire `angular` code base in an anonymous closure
-and export our API explicitly rather than implicitly.
-
- * Wrap all code at 100 characters.
-
- * Instead of complex inheritance hierarchies, we prefer simple objects. We use prototypical
-inheritance only when absolutely necessary.
-
- * We love functions and closures and, whenever possible, prefer them over objects.
-
- * To write concise code that can be better minified, internally we use aliases that map to the
-external API. See our existing code to see what we mean.
-
- * We don't go crazy with type annotations for private internal APIs unless it's an internal API
-that is used throughout AngularJS. The best guidance is to do what makes the most sense.
-
-
-<a name="H1_4"></a>
-# Checking Out and Building Angular
-
-The AngularJS source code is hosted at {@link http://github.com Github}, which we also use to
-accept code contributions. The AngularJS repository can be found at **<https://github.com/angular/angular.js>**.
-
-Several steps are needed to check out and build AngularJS:
-
-
-## Installation Dependencies
-
-Before you can build AngularJS, you must install or configure the following dependencies on your
+Before you can build AngularJS, you must install and configure the following dependencies on your
machine:
-* Git: The {@link http://help.github.com/mac-git-installation Github Guide to Installing Git} is
-quite a good source for information on Git.
+* {@link http://git-scm.com/ Git}: The {@link http://help.github.com/mac-git-installation Github Guide to
+Installing Git} is a good source of information.
* {@link http://nodejs.org Node.js}: We use Node to generate the documentation, run a
-development web server, run tests, and generate a build. Depending on your system, you can install Node either from source or as a
+development web server, run tests, and generate distributable files. Depending on your system, you can install Node either from source or as a
pre-packaged bundle.
-* {@link http://www.java.com Java}: JavaScript is minified using
+* {@link http://www.java.com Java}: We minify JavaScript using our
{@link https://developers.google.com/closure/ Closure Tools} jar. Make sure you have Java (version 6 or higher) installed
and included in your {@link http://docs.oracle.com/javase/tutorial/essential/environment/paths.html PATH} variable.
- Once installed, you'll also need several npms (node packages), which you can install once you checked out a local copy
- of the Angular repository (see below) with:
-
- * `cd angular.js`
- * `npm install`
- * `bower install`
-
* {@link http://gruntjs.com Grunt}: We use Grunt as our build system. Install the grunt command-line tool globally with:
- * `sudo npm install -g grunt-cli`
+ ```shell
+ npm install -g grunt-cli
+ ```
-* {@link http://bower.io/ Bower}: Bower is used to manage packages for the docs. Install the bower tool globally with:
+* {@link http://bower.io/ Bower}: We use Bower to manage client-side packages for the docs. Install the `bower` command-line tool globally with:
- * `sudo npm install -g bower`
+ ```shell
+ npm install -g bower
+ ```
-## Creating a Github Account and Forking Angular
+## Forking Angular on Github
To create a Github account, follow the instructions {@link https://github.com/signup/free here}.
Afterwards, go ahead and {@link http://help.github.com/forking fork} the {@link
-https://github.com/angular/angular.js main angular repository}.
+https://github.com/angular/angular.js main AngularJS repository}.
## Building AngularJS
-To build AngularJS, you check out the source code and use Grunt to generate the non-minified and
+To build AngularJS, you clone the source code repository and use Grunt to generate the non-minified and
minified AngularJS files:
-1. To clone your Github repository, run:
-
- git clone git@github.com:<github username>/angular.js.git
+```shell
+# Clone your Github repository:
+git clone git@github.com:<github username>/angular.js.git
-2. To go to the AngularJS directory, run:
+# Go to the AngularJS directory:
+cd angular.js
- cd angular.js
+# Add the main AngularJS repository as an upstream remote to your repository:
+git remote add upstream https://github.com/angular/angular.js.git
-3. To add the main AngularJS repository as an upstream remote to your repository, run:
+# Install node.js dependencies:
+npm install
- git remote add upstream https://github.com/angular/angular.js.git
+# Install bower components:
+bower install
-4. To add node.js dependencies
+# Build AngularJS:
+grunt package
+```
- npm install
-5. To add docs components
-
- bower install
-
-6. To build AngularJS, run:
-
- grunt package
-
-NOTE: If you're using Windows you must run your command line with administrative privileges (right click, run as
+<div class="alert alert-warning">
+**Note:** If you're using Windows you must run your command line with administrative privileges (right click, run as
Administrator).
-
+</div>
The build output can be located under the `build` directory. It consists of the following files and
directories:
-* `angular-<version>.zip` — This is the complete zip file, which contains all of the release build
+* `angular-<version>.zip` — The complete zip file, containing all of the release build
artifacts.
* `angular.js` — The non-minified `angular` script.
@@ -167,34 +104,37 @@ artifacts.
* `docs/docs-scenario.html` — The End2End test runner for the documentation application.
-<a name="webserver"></a>
## Running a Local Development Web Server
To debug code and run end-to-end tests, it is often useful to have a local HTTP server. For this purpose, we have
made available a local web server based on Node.js.
1. To start the web server, run:
-
- grunt webserver
-
-2. To access the local server, go to this website:
-
- http://localhost:8000/
-
+ ```shell
+ grunt webserver
+ ```
+
+2. To access the local server, enter the following URL into your web browser:
+ ```
+ http://localhost:8000/
+ ```
By default, it serves the contents of the AngularJS project directory.
-<a name="unit-tests"></a>
## Running the Unit Test Suite
-Our unit and integration tests are written with Jasmine and executed with Karma. To run all of the
+We write unit and integration tests with Jasmine and execute them with Karma. To run all of the
tests once on Chrome run:
- grunt test:unit
+```shell
+grunt test:unit
+```
To run the tests on other browsers (Chrome, ChromeCanary, Firefox, Opera and Safari are pre-configured) use:
- grunt test:unit --browsers Opera,Firefox
+```shell
+grunt test:unit --browsers Opera,Firefox
+```
Note there should be _no spaces between browsers_. `Opera, Firefox` is INVALID.
@@ -203,96 +143,34 @@ change. To execute tests in this mode run:
1. To start the Karma server, capture Chrome browser and run unit tests, run:
- grunt autotest:jqlite
+ ```shell
+ grunt autotest
+ ```
-2. To capture more browsers, open this url in the desired browser (url might be different if you have multiple instance
- of Karma running, read Karma's console output for the correct url):
+2. To capture more browsers, open this URL in the desired browser (URL might be different if you have multiple instance
+ of Karma running, read Karma's console output for the correct URL):
- http://localhost:9876/
+ ```shell
+ http://localhost:9876/
+ ```
3. To re-run tests just change any source or test file.
To learn more about all of the preconfigured Grunt tasks run:
- grunt --help
-
-
-## Running the end-to-end Test Suite
-
-To run the E2E test suite:
-
-1. Start the local web server if it's not running already.
-
- grunt webserver
-
-2. In a browser, go to:
-
- http://localhost:8000/build/docs/docs-scenario.html
-
- or in terminal run:
-
- grunt test:end2end
-
-For convenience you can also simply run:
-
- grunt test:e2e
-
-This will start the webserver for you and run the tests.
-
-
-
-<a name="H1_5"></a>
-# Submitting Your Changes
-
-To create and submit a change:
-
-1. <a name="CLA"></a>
- Please sign our Contributor License Agreement (CLA) before sending pull requests. For any code changes to be
- accepted, the CLA must be signed. It's a quick process, we promise!
-
- For individuals we have a [simple click-through form](http://code.google.com/legal/individual-cla-v1.0.html). For
- corporations we'll need you to
- [print, sign and one of scan+email, fax or mail the form](http://code.google.com/legal/corporate-cla-v1.0.html).
-
-
-2. Create and checkout a new branch off the master branch for your changes:
-
- git checkout -b my-fix-branch master
-
-3. Create your patch, make sure to have plenty of tests (that pass).
-
-4. Commit your changes and create a descriptive commit message (the commit message is used to generate release notes,
- please check out our
- [commit message conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#)
- and our commit message presubmit hook `validate-commit-msg.js`):
-
- git commit -a
-
-5. Push your branch to Github:
-
- git push origin my-fix-branch
-
-6. In Github, send a pull request to `angular:master`.
-
-
-7. When the patch is reviewed and merged, delete your branch and pull yours — and other — changes
-from the main (upstream) repository:
-
- 1. To delete the branch in Github, run:
-
- git push origin :my-fix-branch
-
- 2. To check out the master branch, run:
+```shell
+grunt --help
+```
- git checkout master
- 3. To delete a local branch, run:
+## Running the End-to-end Test Suite
- git branch -D my-fix-branch
+Simply run:
- 4. To update your master with the latest upstream version, run:
+```shell
+grunt test:e2e
+```
- git pull --ff upstream master
+This will start the webserver and run the tests.
-That's it! Thank you for your contribution!