Awesome
osmcha-frontend
OSMCha is composed by a group of softwares that together has the aim to make it easier to monitor and validate the changes in OpenStreetMap. Learn more …
- Production instance: https://osmcha.org
- Test instance: http://osmcha-django-staging.tilestream.net/
This repository contains the frontend code. Other repositories are:
- OSMCha backend code
- OSMCha python library is used to analyse the OSM changesets
- OSM Compare is used to analyse OSM features
- OSM Changeset Viewer is used to display the changeset on the main map
Setting up editor
Prettier
This repository uses prettier to keep the code consistent and formatted. You can config your favourite editor by the following links
- Atom users can simply install the prettier-atom package and use Ctrl+Alt+F to format a file (or format on save if enabled).
- Visual Studio Code users can Search for Prettier - JavaScript formatter.
Prerequisite
- Install asdf version manager
asdf install
to install the required tools from .tool-versionsyarn install
(brew install yarn
if required).
Local development
yarn start
- Open https://localhost:3000?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222020-04-01%22%2C%22value%22%3A%222020-04-01%22%7D%5D%7D of e.g. changeset#91638199
- The app runs with https; Firefox is recommended since it allows self signed certificates.
- The staging database does not have all the changesets that production has, therefore the filter is needed.
To also edit the part of the UI that is provided by the OSM Changeset Viewer
Checkout https://github.com/osmlab/changeset-map in a sibling folder.
In ./changeset-map
:
yarn link
yarn build --watch
In ./osmcha-frontend
yarn link "changeset-map"
yarn start
Edits in both projects will result in a rebuild and reload the browser.
When finished, reset "osmcha-frontend" back to the npm version of "changeset-map" with yarn add changeset-map@latest
Local testing
Test the application before commiting any changes. If you encounter any error make sure you have watchman
installed. Installation Guide.
yarn test
Deploy/Release
- There are three stacks to deploy to
(currently broken)yarn deploy:dev
deploys it tomapbox.github.io
yarn deploy:staging
deploys it tostaging.osmcha.org
yarn deploy:prod
deploys it toosmcha.org
-
Run the tests with
yarn test
-
(optional) before deploy, you might want to increment the version number of application.
- We use
minor
for all non-drastic changes. - The
patch
is reserved for minor changes. - We try to stick to sem-ver.
npm version minor
- We use
-
Then build the app with the following command.
yarn build:<stack>
- here stack could be
dev
,staging
,prod
. Refer to package.json for more info.
- here stack could be
-
The next step involves deploying the
build
folder to github. If you get an error like thiserror: failed to push some refs to 'git'
while doing the deploy step. Runrm -rf node_modules/gh-pages/.cache/
.yarn deploy:<stack>
- here stack could be
dev
,staging
,prod
. Refer to package.json for more info. oh-pages
branch handles the build forstaging
,prod
stacks.gh-pages
branch handles the build fordev
stack.
- here stack could be
-
(optional) If you want to see the new changes on a
staging
orprod
stack. You will need to draft a new github release. The convention is to append-staging
or-production
or just-server
to the current version tag for the server to consume the build and separate concerns.- for eg. if the version npm module version was
v0.16.3
. - draft a github release with a tag
v0.16.3-staging
. (Note the name spacing) - supply this version tag to the server.
- Refer to githubs article for creating releases.
- for eg. if the version npm module version was
Issues and feature requests
If you have any error reports of want to request new features, please read our contribution guide to file an issue.