Bye Bye Makefile

This commit is contained in:
Bryan Housel
2016-10-25 01:15:29 -04:00
parent e83b2ea2be
commit a093f6a9b3
6 changed files with 42 additions and 73 deletions

View File

@@ -4,6 +4,3 @@ node_js:
- "5"
- "6"
sudo: false
before_script:
- make clean
- make

View File

@@ -17,7 +17,7 @@ Please [search for your issue before filing it: many bugs and improvements have
To report a bug:
* Write specifically what browser (type and version, like "Firefox 43.0"), OS,
* Write specifically what browser (type and version, like "Firefox 49.0"), OS,
and browser extensions you have installed
* Write steps to replicate the error: when did it happen? What did you expect to happen?
What happened instead?
@@ -99,8 +99,9 @@ to iD, only display them in the interface through the `t()` function.
Then, add the new string to `data/core.yaml`. The translation system, Transifex,
will automatically detect the change.
Use `make` to build the translations with the local changes.
`make translate` can be used to pull the latest translations from Transifex.
Use `npm run build` to build the translations with the local changes.
`npm run translations` can be used to pull the latest translations from Transifex.
## Contributing Documentation
@@ -161,23 +162,19 @@ Just like HTML and JavaScript, 4 space soft tabs always.
```
We write vanilla CSS with no preprocessing step. Since iD targets modern browsers,
feel free to use newer features wisely.
(Chrome, Firefox, Safair, Opera, IE11, and Edge) feel free to use newer features wisely.
## Tests
Test your code and make sure it passes.
First ensure you have a `phantomjs` binary, version 2.0 or later, available on your `$PATH`. On a Mac,
you can install this via homebrew with `brew install phantomjs`. Then:
1. Go to the directory where you have checked out `iD`
2. run `npm install`
3. run `make`
4. run `npm test` to see whether your tests pass or fail.
3. run `npm test` to see whether your tests pass or fail.
## Building / Installing
You can build a concatenated and minified version of iD with the command `make && npm run build-min`.
You can rebuild iD completely with the command `npm run all`.
iD will be built to the `dist` directory. This directory is self-contained; you can copy it
into the public directory of your webserver to deploy iD.
@@ -197,13 +194,12 @@ In your local copy, make a branch for this change:
git checkout -b make-red
Make your changes to source files. By source files we mean the files in `js/`.
the `iD.js` and `iD.min.js` files in this project are autogenerated - don't edit
them.
Make your changes to source files under `modules/`.
The `iD.js` and `iD.min.js` files in this project are autogenerated - don't edit them.
So let's say you've changed `js/ui/confirm.js`.
So let's say you've changed `modules/ui/confirm.js`.
1. Run `eslint js/id` to make sure your code is clean
2. Run tests with `npm test`
1. Try it out locally. Run `npm start` and visit `localhost:8080` in a browser.
2. Run lint and tests with `npm test`
3. Commit your changes with an informative commit message
4. [Submit a pull request](https://help.github.com/articles/using-pull-requests) to the `openstreetmap/iD` project.

View File

@@ -1,24 +0,0 @@
all: \
dist/iD.css \
dist/img/iD-sprite.svg \
dist/img/maki-sprite.svg
MAKI_SOURCES = node_modules/maki/src/*.svg
dist/img/maki-sprite.svg: $(MAKI_SOURCES) Makefile
node_modules/.bin/svg-sprite --symbol --symbol-dest . --symbol-sprite $@ $(MAKI_SOURCES)
dist/img/iD-sprite.svg: svg/iD-sprite.src.svg svg/iD-sprite.json
node svg/spriteify.js --svg svg/iD-sprite.src.svg --json svg/iD-sprite.json > $@
dist/iD.css: css/*.css
cat css/reset.css css/map.css css/app.css > $@
translations:
node data/update_locales
imagery:
node data/update_imagery
clean:
rm -f dist/*.js dist/*.map dist/*.css dist/img/*.svg

View File

@@ -22,26 +22,19 @@
* Stable mirror of `release` branch: http://openstreetmap.us/iD/release
* Development mirror of `master` branch: http://openstreetmap.us/iD/master
Come on in, the water's lovely. More help? Ping `jfire` or `bhousel` on
[OpenStreetMap IRC](http://wiki.openstreetmap.org/wiki/IRC)
(`irc.oftc.net`, in `#iD` or `#osm-dev` or `#osm`) or on the [OpenStreetMap `dev` mailing list](http://wiki.openstreetmap.org/wiki/Mailing_lists).
Come on in, the water's lovely. More help? Ping `jfire` or `bhousel` on:
* [OpenStreetMap US Slack](https://osmus-slack.herokuapp.com/)
(`#dev` or `#general` channels)
* [OpenStreetMap IRC](http://wiki.openstreetmap.org/wiki/IRC)
(`irc.oftc.net`, in `#iD` or `#osm-dev` or `#osm`)
* [OpenStreetMap `dev` mailing list](http://wiki.openstreetmap.org/wiki/Mailing_lists)
## Prerequisites
* [Node.js](http://nodejs.org/) version 4 or newer
* Command line development tools (`make`, `git`, and a compiler) for your platform
* Ubuntu:
* `sudo apt-get install build-essential git`
* macOS:
* Run `xcode-select --install` from a command line or install [Xcode](https://developer.apple.com/xcode/)
* Windows (Cygwin):
* Install [Git for Windows](https://git-scm.com/downloads)
* Install [Cygwin](https://cygwin.com/install.html) - choose default packages + `make`, `wget`, `apache2` (needed for updated mime type list)
* Optionally, install [apt-cyg](https://github.com/transcode-open/apt-cyg) for managing your Cygwin packages
* Edit `~/.bashrc`:<br/>
Put Git for Windows before Cygwin in PATH, otherwise `npm install` may [fail to fetch git repositories](https://github.com/npm/npm/issues/7456)<br/><pre>
export PATH=/cygdrive/c/Program\ Files/Git/mingw64/bin/:$PATH</pre>
* Edit `~/.gitconfig`:<br/>
* [`git`](https://www.atlassian.com/git/tutorials/install-git/) for your platform
* Note for Windows users:
* Edit `$HOME\.gitconfig`:<br/>
Add these lines to avoid checking in files with CRLF newlines<br><pre>
[core]
autocrlf = input</pre>
@@ -52,10 +45,9 @@ To run the current development version of iD on your own computer:
1. Create a local `git clone` of the project, then `cd` into the project folder
2. (Windows Only) Run `fixWinSymlinks.bat`. This script will prompt for Administrator rights. see also: http://stackoverflow.com/questions/5917249/git-symlinks-in-windows
3. Run `npm install`
4. Run `make`
5. Run `npm start`
6. Open `http://localhost:8080/` in a web browser
3. Run `npm install` (this will run the `prepublish` script that builds everything)
4. Run `npm start`
5. Open `http://localhost:8080/` in a web browser
For guidance on building a packaged version, running tests, and contributing to
development, see [CONTRIBUTING.md](CONTRIBUTING.md).

View File

@@ -13,21 +13,19 @@
### Update master branch
- [ ] git checkout master
- [ ] make translations
- [ ] git add . && git commit -m 'make translations'
- [ ] make imagery
- [ ] git add . && git commit -m 'make imagery'
- [ ] make suggestions
- [ ] git add . && git commit -m 'make suggestions'
- [ ] npm run translations
- [ ] git add . && git commit -m 'npm run translations'
- [ ] npm run imagery
- [ ] git add . && git commit -m 'npm run imagery'
- [ ] Update `CHANGELOG.md`
- [ ] Update version number in `id.js`, `package.json`
- [ ] Update version number in `modules/core/context.js`, `package.json`
- [ ] git add . && git commit -m 'A.B.C'
- [ ] git push origin master
### Update and tag release branch
- [ ] git checkout release
- [ ] git reset --hard master
- [ ] make
- [ ] npm run all
- [ ] git add -f dist/*.css dist/*.js dist/img/*.svg dist/locales/*.json
- [ ] git commit -m 'Check in build'
- [ ] git tag vA.B.C

View File

@@ -8,11 +8,21 @@
"test": "test"
},
"scripts": {
"all": "npm run clean && npm run build-assets && npm run build && npm run build-min",
"build": "node build.js && node development_server.js",
"build-min": "npm run build && uglifyjs dist/iD.js -c -m -o dist/iD.min.js",
"build-assets": "npm run build-css && npm run build-svg",
"build-css": "cat css/reset.css css/map.css css/app.css > dist/iD.css",
"build-min": "uglifyjs dist/iD.js -c -m -o dist/iD.min.js",
"build-svg": "npm run build-svg-maki && npm run build-svg-id",
"build-svg-maki": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/maki-sprite.svg node_modules/maki/src/*.svg",
"build-svg-id": "node svg/spriteify.js --svg svg/iD-sprite.src.svg --json svg/iD-sprite.json > dist/img/iD-sprite.svg",
"clean": "rm -f dist/*.js dist/*.map dist/*.css dist/img/*.svg",
"imagery": "node data/update_imagery",
"lint": "eslint *.js js/id test/spec modules",
"prepublish": "npm run all",
"start": "node development_server.js develop",
"test": "npm run lint && npm run build && phantomjs node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html spec"
"test": "npm run lint && npm run build && phantomjs node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html spec",
"translations": "node data/update_locales"
},
"repository": {
"type": "git",