The Rails application that powers OpenStreetMap
Find a file
Matt Amos ced8ac86ab Remove need for shared library PostgreSQL functions
This repo contains code for three functions to be loaded into PostgreSQL as a shared library:

1. `maptile_for_point`, which is used only by the `/changes` API call. This API call is little-used and IMHO should be deprecated and removed. However, even now it's hardly on the hot path for most development activities.
2. `tile_for_point`, which is used only in migrations. At this point, it seems unlikely that anyone will be doing a migration on existing data which would call this function (most developers will be running migrations on an empty database, to set it up).
3. `xid_to_int4`, which is only used for replication using Osmosis and isn't used in the Rails code at all. Hopefully this will be replaced Real Soon Now, but until then it's a quite advanced feature that most developers won't need.

Therefore, this patch proposes to replace the above three shared library functions with SQL implementations of the first two. These are _much_ slower - by a factor of about 30x, however this makes no difference when they're run on a completely empty database. In return, we're able to drop a dependency on the PostgreSQL server development package, and clean a few lines out of the installation instructions.

It's still possible to make and install the shared library functions, and I've included instructions about how to do that - although it shouldn't be necessary for the vast majority of `openstreetmap-website` developers.
2019-10-04 13:25:00 +01:00
app Merge pull request #1779 from stefanb/tag-colour-preview 2019-09-04 15:15:06 +02:00
bin Rubocop fixes for ruby 2.5 2019-03-26 20:23:35 +00:00
config Localisation updates from https://translatewiki.net. 2019-10-03 19:47:17 +02:00
db Remove need for shared library PostgreSQL functions 2019-10-04 13:25:00 +01:00
lib Fix new rubocop warnings 2019-07-18 16:47:08 +01:00
public Revert "Block indexing of diary entries" 2019-07-02 19:45:23 +01:00
script Remove need for shared library PostgreSQL functions 2019-10-04 13:25:00 +01:00
storage Update to rails 5.2.0 2018-06-19 00:16:24 +01:00
test When overriding setup make sure to call the superclass 2019-09-05 21:24:20 +01:00
vendor/assets Drop ancient imported daemon generator 2019-08-27 15:23:30 +01:00
.coveralls.yml Add Coveralls support 2015-02-26 19:20:17 +00:00
.erb-lint.yml Use erb-lint to prohibit inline scripting 2019-03-31 19:45:03 +01:00
.gitignore Add support for Active Storage attachments 2019-07-09 19:17:29 +01:00
.mailmap Update mailmap 2018-10-29 12:48:32 +00:00
.rubocop.yml Exclude all vendored code from rubocop checking 2019-08-27 15:33:23 +01:00
.rubocop_todo.yml Update rubocop todo 2019-08-14 19:27:12 +01:00
.travis.yml Remove need for shared library PostgreSQL functions 2019-10-04 13:25:00 +01:00
config.ru Update to rails 5.0.4 2017-06-27 08:26:44 +01:00
CONFIGURE.md Update documentation for new approach to settings 2019-03-13 18:06:23 +01:00
CONTRIBUTING.md Replace eslint-rails-ee with direct calls to eslint 2019-06-12 19:27:58 +01:00
FAQ.md Clarify image dimensions 2017-07-17 14:03:12 -04:00
Gemfile Drop paperclip 2019-07-17 19:12:30 +01:00
Gemfile.lock Update bundle 2019-08-27 15:21:15 +01:00
INSTALL.md Remove need for shared library PostgreSQL functions 2019-10-04 13:25:00 +01:00
LICENSE Add GPLv2 license file and mention in README 2012-02-23 18:55:39 +00:00
package.json Update eslint 2019-07-13 17:45:24 +01:00
Rakefile Update to rails 5.0.4 2017-06-27 08:26:44 +01:00
README.md Convert various URLs to https 2018-01-08 20:18:21 +00:00
VAGRANT.md Convert various URLs to https 2018-01-08 20:18:21 +00:00
Vagrantfile Use sshfs in preference to nfs for vagrant file sharing 2018-09-28 19:56:23 +01:00
Vendorfile Update leaflet to 1.5.1 2019-05-08 19:00:15 +01:00
yarn.lock Update yarn bundle 2019-08-27 15:09:31 +01:00

"The Rails Port"

Build Status Coverage Status

This is The Rails Port, the Ruby on Rails application that powers the OpenStreetMap website and API. The software is also known as "openstreetmap-website".

This repository consists of:

  • The web site, including user accounts, diary entries, user-to-user messaging
  • The XML-based editing API
  • The integrated versions of the Potlatch, Potlatch 2 and iD editors
  • The Browse pages - a web front-end to the OpenStreetMap data
  • The GPX uploads, browsing and API.

A fully-functional Rails Port installation depends on other services, including map tile servers and geocoding services, that are provided by other software. The default installation uses publicly-available services to help with development and testing.

License

This software is licensed under the GNU General Public License 2.0, a copy of which can be found in the LICENSE file.

Installation

The Rails Port is a Ruby on Rails application that uses PostgreSQL as its database, and has a large number of dependencies for installation. For full details please see INSTALL.md

Development

We're always keen to have more developers! Pull requests are very welcome.

More details on contributing to the code are in the CONTRIBUTING.md file.

Maintainers