<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/tomhughes/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tomhughes">@tomhughes</a>, thanks for replying!</p>
<blockquote>
<p>we do our best to help them where we can but at the end of the day the primary goal takes priority.</p>
</blockquote>
<p>Surely I understand the main goal here and value your contributions to it.<br>
Let's also not forget that, besides "regular" map consumers and its well established uses, there are "power" users a.k.a. developers/hackers and new ideas they are constantly trying. All innovation depends on them and their comfort with working over the project. This comfort depends on quality of tools they have at their disposal. Of course, they can always write their own tools (or apply their own hacks to the DB for that matter), but the speed of innovation and thus long-term survival of the project depends on them. Let's not forget about that while we cater to our main goals.</p>
<blockquote>
<p>Trying to do bidirectional data migration between the main database and a mirror is definitely way out of scope</p>
</blockquote>
<p>Data migration here is actually unidirectional:</p>
<pre><code>open data source     →     OSM XML    →     private OSM DB      →      public OSM DB
                 extraction         osmosis                josm layers
</code></pre>
<p>What happens in the reverse direction is a cleanup to prevent double work. Essentially, primitives are "moved", not "copied" from private API to public API.</p>
<p>I go through all these troubles to try a new technique of collaboration over an open data source. Consider this in the context of the OSM project philosophy:</p>
<ol>
<li>The OSM project does not and will not support separate geospatial data layers with its API. Everything we have has to be in <em>the</em> single layer, and it immediately goes live.</li>
<li>Data imports are prohibited unless they are well integrated/conflated with present DB contents. This basically means each and every new primitive (node, way, relation) has to be visually inspected/tuned by a person before signing it off for uploading. But to do such inspection, a person has to be able to compare "old" and "new" data, essentially working with two layers.</li>
</ol>
<p>A single person can do the inspection locally in JOSM: the editor does support notion of layers. However, typical data imports are huge enough to be parallelizable among many persons. So, a distributed second data "layer" is needed for them to collaborate. Traditionally, this is done via ad-hoc measures like a shared folder with a bunch of smaller OSM files for everyone to grab, inspect and upload. But shared folders and other filesystem-based collaboration workflows suck immediately when amount of data grows. That is why databases were invented, and this is what I am trying to use here.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/issues/2543?email_source=notifications&email_token=AAK2OLPFAGANAWFVZCYWQHTRDUDARA5CNFSM4KXJGQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMHHO4A#issuecomment-588150640">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLNEWUXBJ5QVS7LROKTRDUDARANCNFSM4KXJGQTQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AAK2OLMKM7T2EW7TOYR7RC3RDUDARA5CNFSM4KXJGQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMHHO4A.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/issues/2543?email_source=notifications\u0026email_token=AAK2OLPFAGANAWFVZCYWQHTRDUDARA5CNFSM4KXJGQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMHHO4A#issuecomment-588150640",
"url": "https://github.com/openstreetmap/openstreetmap-website/issues/2543?email_source=notifications\u0026email_token=AAK2OLPFAGANAWFVZCYWQHTRDUDARA5CNFSM4KXJGQT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMHHO4A#issuecomment-588150640",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>