Plovr is not used anymore
+35
-67
@@ -1,14 +1,9 @@
|
|||||||
# Developer Guide
|
# Developer Guide
|
||||||
|
|
||||||
Thanks for your interest in contributing to OpenLayers 3 development. Our
|
Thanks for your interest in contributing to OpenLayers 3 development. Our preferred means of receiving contributions is through [pull requests](https://help.github.com/articles/using-pull-requests). Make sure
|
||||||
preferred means of receiving contributions is through [pull
|
that your pull request follows our [pull request guidelines](https://github.com/openlayers/ol3/wiki/Developer-Guide#pull-request-guidelines) before submitting it.
|
||||||
requests](https://help.github.com/articles/using-pull-requests). Make sure
|
|
||||||
that your pull request follows our [pull request
|
|
||||||
guidelines](https://github.com/openlayers/ol3/wiki/Developer-Guide#pull-request-guidelines)
|
|
||||||
before submitting it.
|
|
||||||
|
|
||||||
This page describes what you need to know to contribute code to ol3 as
|
This page describes what you need to know to contribute code to ol3 as a developer.
|
||||||
a developer.
|
|
||||||
|
|
||||||
## Contributor License Agreement
|
## Contributor License Agreement
|
||||||
|
|
||||||
@@ -88,21 +83,18 @@ example:
|
|||||||
The main build targets are `serve`, `lint`, `build`, `test`, and `check`. The
|
The main build targets are `serve`, `lint`, `build`, `test`, and `check`. The
|
||||||
latter is a meta-target that basically runs `lint`, `build`, and `test`.
|
latter is a meta-target that basically runs `lint`, `build`, and `test`.
|
||||||
|
|
||||||
The `serve` target starts the [Plovr](http://plovr.com/) web server. You'll
|
The `serve` target starts a node-based web server, which we will refer to as the *dev server*. You'll need to start that server for running the examples and the tests. More information on that further down.
|
||||||
need to start the Plovr server for running the examples and the tests. More
|
|
||||||
information on that further down.
|
|
||||||
|
|
||||||
Other targets include `apidoc` and `integration-test`. The latter is the target
|
Other targets include `apidoc` and `ci`. The latter is the target used on Travis CI. See ol3's [Travis configuration file](https://github.com/openlayers/ol3/blob/master/.travis.yml).
|
||||||
used on Travis CI. See ol3's [Travis configuration file](https://github.com/openlayers/ol3/blob/master/.travis.yml).
|
|
||||||
|
|
||||||
## Running the `check` target
|
## Running the `check` target
|
||||||
|
|
||||||
The `check` target is to be run before pushing code to GitHub and opening pull
|
The `check` target is to be run before pushing code to GitHub and opening pull
|
||||||
requests. Branches that don't pass `check` won't pass the integration tests,
|
requests. Branches that don't pass `check` won't pass the integration tests,
|
||||||
and have therefore no chance of being merged into `master`. The `check` target
|
and have therefore no chance of being merged into `master`. The `check` target
|
||||||
runs the tests, so it requires that the Plovr server run.
|
runs the tests, so it requires that the dev server run.
|
||||||
|
|
||||||
To start the Plovr web server use:
|
To start the dev server use:
|
||||||
|
|
||||||
$ ./build.py serve
|
$ ./build.py serve
|
||||||
|
|
||||||
@@ -110,78 +102,60 @@ To run the `check` target use:
|
|||||||
|
|
||||||
$ ./build.py check
|
$ ./build.py check
|
||||||
|
|
||||||
If you get this error
|
If you get this kind of error:
|
||||||
|
|
||||||
ReferenceError: Can't find variable: goog
|
$ ./build.py check
|
||||||
|
2014-07-05 22:39:16,310 test: ./node_modules/.bin/phantomjs test/mocha-phantomjs.js http://localhost:3000/test/index.html
|
||||||
|
Failed to load the page. Check the url: http://localhost:3000/test/index.html
|
||||||
|
2014-07-05 22:39:16,495 test: clean
|
||||||
|
2014-07-05 22:39:16,495 pake: test: Command '['./node_modules/.bin/phantomjs', 'test/mocha-phantomjs.js', 'http://localhost:3000/test/index.html']' returned non-zero exit status 1
|
||||||
|
|
||||||
file:///home/elemoine/public_html/openlayers/ol3/test/ol.html:67
|
it means that you don't have the dev server running.
|
||||||
Failed to start mocha: Init timeout
|
|
||||||
|
|
||||||
it means that you don't have the Plovr server running.
|
|
||||||
|
|
||||||
If you want to run the full suite of integration tests, see "Running the integration
|
If you want to run the full suite of integration tests, see "Running the integration
|
||||||
tests" below.
|
tests" below.
|
||||||
|
|
||||||
## Running examples
|
## Running examples
|
||||||
|
|
||||||
To run the examples you first need to start the Plovr web server:
|
To run the examples you first need to start the dev server:
|
||||||
|
|
||||||
$ ./build.py serve
|
$ ./build.py serve
|
||||||
|
|
||||||
Then, start a simple web server, for example:
|
Then, just point your browser <http://localhost:3000/examples> in your browser. For example <http://localhost:3000/examples/side-by-side.html>.
|
||||||
|
|
||||||
$ python -mSimpleHTTPServer
|
Run examples against the `ol.js` standalone build:
|
||||||
|
|
||||||
and explore the `examples/` directory, for example by opening
|
The examples can also be run against the `ol.js` standalone lib, just like the examples
|
||||||
<http://localhost:8000/examples/side-by-side.html>.
|
|
||||||
|
|
||||||
You can turn on compilation by appending `?mode=ADVANCED` to the URL, for example
|
|
||||||
<http://localhost:8000/examples/side-by-side.html?mode=ADVANCED>. (By default mode
|
|
||||||
is `RAW`.). If you don't want the social widgets append `?mode=RAW`.
|
|
||||||
|
|
||||||
Run examples without Plovr:
|
|
||||||
|
|
||||||
The examples can also be run against the `ol.js` standalone lib, without Plovr,
|
|
||||||
just like the examples
|
|
||||||
[hosted](http://openlayers.github.com/ol3/master/examples/) on GitHub. Start by
|
[hosted](http://openlayers.github.com/ol3/master/examples/) on GitHub. Start by
|
||||||
executing the `host-examples` build target:
|
executing the `host-examples` build target:
|
||||||
|
|
||||||
$ ./build.py host-examples
|
$ ./build.py host-examples
|
||||||
|
|
||||||
This target performs a number of things:
|
After running `host-examples` you can now open the examples index page in the browser, for example: <http://localhost/~elemoine/ol3/build/hosted/master/examples/>. (This assumes that the `hosted` directory is a web directory, served by Apache for example.)
|
||||||
|
|
||||||
1. Build `ol.js`, `ol-simple.js`, `ol-whitespace.js`, and `ol.css`,
|
|
||||||
1. Create the examples index page,
|
|
||||||
1. Extract the Closure Library from the Plovr JAR,
|
|
||||||
1. Copy everything to `build/hosted/<branch_name>/`, where `<branch_name>` is the name of the local checked out Git branch.
|
|
||||||
|
|
||||||
After running `host-examples` you can now open the examples index page in the browser, for example: <http://localhost:8000/build/hosted/master/examples/>.
|
|
||||||
|
|
||||||
To make an example use `ol-simple.js` or `ol-whitespace.js` instead of `ol.js`
|
To make an example use `ol-simple.js` or `ol-whitespace.js` instead of `ol.js`
|
||||||
append `?mode=simple` or `?mode=whitespace` to the example URL.
|
append `?mode=simple` or `?mode=whitespace` to the example URL.
|
||||||
|
|
||||||
Append `?mode=debug` or `?mode=raw` to make the example work in full debug mode. In
|
Append `?mode=debug` or `?mode=raw` to make the example work in full debug mode. In
|
||||||
full debug mode the OpenLayers and Closure scripts are loaded individually by
|
full debug mode the OpenLayers and Closure Library scripts are loaded individually by
|
||||||
the Closure Library's `base.js` script (which the example page loads and
|
the Closure Library's `base.js` script (which the example page loads and
|
||||||
executes before any other script).
|
executes before any other script).
|
||||||
|
|
||||||
## Running tests
|
## Running tests
|
||||||
|
|
||||||
Run the Plovr web server (see above), and either open the `test/ol.html` file
|
Run the dev server (see above), and either open the <http://localhost:3000/test/index.html> in the browser, or run `./build.py test` on the console (headless testing with PhantomJS).
|
||||||
in the browser (e.g. <http://localhost:8000/test/ol.html>), or run `./build.py
|
|
||||||
test` on the console (headless testing with PhantomJS, make sure to install it
|
|
||||||
first from http://phantomjs.org/download.html).
|
|
||||||
|
|
||||||
See also the test-specific [README](../blob/master/test/README.md).
|
See also the test-specific [README](../blob/master/test/README.md).
|
||||||
|
|
||||||
If you get this error
|
If you get this error
|
||||||
|
|
||||||
ReferenceError: Can't find variable: goog
|
$ ./build.py check
|
||||||
|
2014-07-05 22:39:16,310 test: ./node_modules/.bin/phantomjs test/mocha-phantomjs.js http://localhost:3000/test/index.html
|
||||||
|
Failed to load the page. Check the url: http://localhost:3000/test/index.html
|
||||||
|
2014-07-05 22:39:16,495 test: clean
|
||||||
|
2014-07-05 22:39:16,495 pake: test: Command '['./node_modules/.bin/phantomjs', 'test/mocha-phantomjs.js', 'http://localhost:3000/test/index.html']' returned non-zero exit status 1
|
||||||
|
|
||||||
file:///home/elemoine/public_html/openlayers/ol3/test/ol.html:67
|
it means that you don't have the dev server running.
|
||||||
Failed to start mocha: Init timeout
|
|
||||||
|
|
||||||
it means that you don't have the Plovr server running.
|
|
||||||
|
|
||||||
## Running the integration tests
|
## Running the integration tests
|
||||||
|
|
||||||
@@ -190,10 +164,10 @@ server](https://travis-ci.org/) will run a full suite of tests, including
|
|||||||
building all versions of the library and checking that all of the examples
|
building all versions of the library and checking that all of the examples
|
||||||
work. You will receive an email with the results, and the status will be
|
work. You will receive an email with the results, and the status will be
|
||||||
displayed in the pull request. If you want to run the integration tests
|
displayed in the pull request. If you want to run the integration tests
|
||||||
locally, then you'll need to make sure that Plovr is running if it isn't
|
locally, then you'll need to make sure that the dev server is running (`build.py serve`) if it isn't
|
||||||
already, and then start the tests:
|
already, and then start the tests:
|
||||||
|
|
||||||
$ ./build.py integration-test
|
$ ./build.py ci
|
||||||
|
|
||||||
Running the full suite of integration tests currently takes 5-10 minutes.
|
Running the full suite of integration tests currently takes 5-10 minutes.
|
||||||
|
|
||||||
@@ -216,22 +190,16 @@ should be set to `myexample`.
|
|||||||
|
|
||||||
You can use `simple.js` and `simple.html` as templates for new examples.
|
You can use `simple.js` and `simple.html` as templates for new examples.
|
||||||
|
|
||||||
`build.py serve` should be stopped and restarted for the
|
|
||||||
`loader.js?id=<example_name>` script tag to refer to a valid URL. `build.py
|
|
||||||
serve` triggers the `examples` target which creates a Plovr JSON file for each
|
|
||||||
example.
|
|
||||||
|
|
||||||
### Use of the `goog` namespace in examples
|
### Use of the `goog` namespace in examples
|
||||||
|
|
||||||
Short story: the OL3 examples should not use the `goog` namespace, except
|
Short story: the ol3 examples should not use the `goog` namespace, except
|
||||||
for `goog.require`.
|
for `goog.require`.
|
||||||
|
|
||||||
Longer story: we want that the OL3 examples work in multiple modes: with the
|
Longer story: we want that the ol3 examples work in multiple modes, with the
|
||||||
standalone lib (which has implications of the symbols and properties we
|
standalone lib (which has implications of the symbols and properties we
|
||||||
export), with Plovr in ADVANCED mode, and with Plovr in RAW (debug) mode.
|
export), and compiled together with the ol3 library.
|
||||||
|
|
||||||
Running the examples with Plovr makes it mandatory to declare dependencies with
|
Compiling the examples together with the library makes it mandatory do declare dependencies with `goog.require` statements.
|
||||||
`goog.require` statements.
|
|
||||||
|
|
||||||
## Pull request guidelines
|
## Pull request guidelines
|
||||||
|
|
||||||
@@ -299,9 +267,9 @@ style of the existing OpenLayers 3 code, which includes:
|
|||||||
|
|
||||||
The integration tests contain a number of automated checks to ensure that the
|
The integration tests contain a number of automated checks to ensure that the
|
||||||
code follows the OpenLayers 3 style and does not break tests or examples. You
|
code follows the OpenLayers 3 style and does not break tests or examples. You
|
||||||
can run the integration tests locally using the `integration-test` target:
|
can run the integration tests locally using the `ci` target:
|
||||||
|
|
||||||
$ ./build.py integration-test
|
$ ./build.py ci
|
||||||
|
|
||||||
|
|
||||||
### Address a single issue or add a single item of functionality
|
### Address a single issue or add a single item of functionality
|
||||||
|
|||||||
Reference in New Issue
Block a user