<p dir="auto">This upgrades to rails 7.1.0 with the huge bonus of getting rid of the <code class="notranslate">composite_primary_key</code> dependency by switching to the new builtin rails support for composite keys.</p>
<p dir="auto">A test site is available at <a href="https://rails71.apis.dev.openstreetmap.org/" rel="nofollow">https://rails71.apis.dev.openstreetmap.org/</a>.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/openstreetmap/openstreetmap-website/pull/4278'>https://github.com/openstreetmap/openstreetmap-website/pull/4278</a></p>

<h4>Commit Summary</h4>
<ul>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/a3417d96b22854ed1f893b639d51afebd5c5f125" class="commit-link">a3417d9</a>  Update to rails 7.1.0</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/a0fb8adc8bff7cdcf8a4547ce3d2ed8ff1a44bb4" class="commit-link">a0fb8ad</a>  Replace composite_primary_keys with rails builtin support</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/19fbdf610662b72713f9889b888bf93656f6eacb" class="commit-link">19fbdf6</a>  Avoid passing GeoRecord::Coord objects to rails output routines</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/d4e328e6d717c7bb5fa782a0557bf774a7392e84" class="commit-link">d4e328e</a>  Adjust code for rails internal changes</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/fd0929618831de5834203b2c2eeb2ef71482f863" class="commit-link">fd09296</a>  Fix test as rails no longer seems to return a body for redirects</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/1829acf5760bdd979b7db25ad5dd0b8713d6811c" class="commit-link">1829acf</a>  Update test results for changes to rescuable exception handling</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/6fb5e071fb69655e454f53382af80588e0ccf14f" class="commit-link">6fb5e07</a>  Update database structure for change in migration ordering</li>
  <li><a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/commits/7e55771ac53e8780883dd83de683d41127f489b6" class="commit-link">7e55771</a>  Disable eager loading when running tests in CI for now</li>
</ul>

<h4 style="display: inline-block">File Changes </h4> <p style="display: inline-block">(<a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files">43 files</a>)</p>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557">Dockerfile</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-d09ea66f8227784ff4393d88a19836f321c915ae10031d16c93d67e6283ab55f">Gemfile</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-89cade48462044ee1b672dc5f4c3ec250fbd29effcd8932096a23c1283c6731f">Gemfile.lock</a>
    (166)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-09b140a43ebfdd8dbec31ce72cafffd15164d2860fd390692a030bcb932b54a0">INSTALL.md</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-b4fc005393d27baeb208c32dfc3bd576364fa35e6d76a69ea8b99da62616f80e">app/helpers/user_helper.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-55254045ba774e4c360d7bbfde054665072d2ab49abc3f21add15a37bba65a1c">app/mailers/user_mailer.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-792e2e3a9e481fd95c3722f4ab0199d469f25cfd433e6e0b6f4db70b8b197bb8">app/models/changeset_tag.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-72b9aa5daa9a303399f341a07e717c6a004d4411239bde949f33b447202760f0">app/models/concerns/geo_record.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-fcb2d17b846fdb4b67d2ff358bb23ddcee271e3f221163bb084f16a90e1086e5">app/models/diary_entry_subscription.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-2845087add773fb20ddff83e51ab1ef70788ad7e522c7363e03458c6adab93b3">app/models/node_tag.rb</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-4c50108aa94328d5d91f43621940bf6ddc6e71541957230e73bd67984a149f02">app/models/old_node.rb</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-0295f705dddcfcf5e8e96cf7dbb31b37b4f6f7c23dfa995d69b594ff1e718cba">app/models/old_node_tag.rb</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-5db6f2fd2ae37c6c561b35eb05d1b8cc8269f2be66904f04456350839ce76a4a">app/models/old_relation.rb</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-f510a509c00733955c511f9da416b20f0fb8deb43af469013be592a8e6150326">app/models/old_relation_member.rb</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-68f5e5a44fc59dac556dd16880bba8083f2a01315c17f8bc0d7c442b3fe6d7ee">app/models/old_relation_tag.rb</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-f5c22ac10c6752867ac4b5758139cac9801401c0d514fa597cfbaa08e099b0c3">app/models/old_way.rb</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-a5462ede374b07191ef5724b5aefad7cb4cf3c4fad03cf516b16b59b15554523">app/models/old_way_node.rb</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-dbfb1ec6b34c7e08ecc5402dda7ee5de8b977731153a87658c373c345d400329">app/models/old_way_tag.rb</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-3640d4f9ec3f83c64f62149e7d63f13b4524f6206467283f622bf05abf4e2829">app/models/relation_member.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-6944ace960ceb79f466e0feec2ba54b2dc02c3a9238e3cacb8e31471f2431636">app/models/relation_tag.rb</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-c36f041a59833f85660511c3f91bab34e164096d161cba7083804c4d1a5926b9">app/models/user_preference.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-cd47fe3647c3ccc25da8c775946f1c68fcff2e0929b5e3acb04f2eaffa3fc030">app/models/way_node.rb</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-56c772c3e9db1997c791b12f5a9b247bc43164d0b608cf560d749cfe02867fde">app/models/way_tag.rb</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-9b8b3e6d46a2a808a27e4c2f8d88c5470d39ee77146f8bb530124c0cacc35dbe">app/views/api/notes/_note.rss.builder</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-d8f30ea1257d77c6a54152eb01b0b95a06f343a2f49f05b51447ef9d89ee8c89">app/views/api/notes/feed.rss.builder</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-9dea4ffe487a631e3df942ebeec041974e762348f767704f27c52bc97e89052f">app/views/browse/_common_details.html.erb</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-84d04c9c37a8be927ab1870e6b3c1940f670585b77b8e88c32d6ded35cf87dc7">app/views/notes/show.html.erb</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-83a07cb3b17898a530fb9aadd9b41c7fc9217cb6d0cdbcd6fbb0577cba79780b">bin/setup</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-c1fd91cb1911a0512578b99f657554526f3e1421decdb9e908712beab57e10f9">config/application.rb</a>
    (19)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-d3c4b3f41072daa416f1920511e9b2e26caea8c5cec0a14cb9508589a4dafa47">config/environments/development.rb</a>
    (11)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-da60b4e96eff2b132991226d308949e23f4ef3aad45ad59edd09cbc32cc6251e">config/environments/production.rb</a>
    (52)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-77f322f5ab0c54b1f2793b339574333dc55889645d910a93ede0fd7aa13b217a">config/environments/test.rb</a>
    (18)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-c1c619ffb7b249550067cb696b8e7d6c29d1efe2ed4cf5b7a8bb6bed47b409d1">config/initializers/content_security_policy.rb</a>
    (13)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-a5c75a867d64a12488c8577d2f42b98482a31bfdc70a1d947b3476f93515915a">config/initializers/filter_parameter_logging.rb</a>
    (4)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-692253a9e3680f63fd9a2ce0eb5e924bd2f4e9cd0983bf7bc6d89f1dc379080e">config/initializers/new_framework_defaults_7_1.rb</a>
    (223)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-bb5459e7a75f64f6ebd1188d218c4b4f49664a1bac1873250ecd4ec18578124a">config/initializers/permissions_policy.rb</a>
    (20)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-1dd5a8f580b9615769ddc19a64a98f455d9d20eb149c443f41d9d3c797d39b12">db/structure.sql</a>
    (234)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-6854f233485e4f1bf82ed21283e3637f9114d7c5431b80926ba2f5657b54e9fb">lib/rich_text.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-dcd17c18ef06dc1c5c49caa05ecb7aabc1230dbc967d7e4e2bf1e3e51c06a9b1">script/vagrant/setup/provision.sh</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-e95198c7f7744be3ce9857db36d2374538ca7d64caaf0f6f85865d6752563ee9">test/controllers/api/changesets_controller_test.rb</a>
    (26)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-8a9c95ea5b86d8f52f78210e2ff053062ca9a234754dff890fb8aae45343ff4c">test/controllers/api/nodes_controller_test.rb</a>
    (2)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-10a5c4533814c8b1222f0ef0833c82edd68584d85757fc431557b39813777c19">test/controllers/diary_entries_controller_test.rb</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278/files#diff-17e29600ff1f9545e4460fbe6a061b81327a65d7390a631b98ae36c506c59679">test/integration/user_diaries_test.rb</a>
    (12)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/4278.patch'>https://github.com/openstreetmap/openstreetmap-website/pull/4278.patch</a></li>
  <li><a href='https://github.com/openstreetmap/openstreetmap-website/pull/4278.diff'>https://github.com/openstreetmap/openstreetmap-website/pull/4278.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/openstreetmap/openstreetmap-website/pull/4278">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAK2OLL7UKU6YGW5P5COQPDX6JV2HAVCNFSM6AAAAAA5XRWRQ2VHI2DSMVQWIX3LMV43ASLTON2WKOZRHEZTCNZSGU3DENQ">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAK2OLOKURFZC3H7LHYMYD3X6JV2HA5CNFSM6AAAAAA5XRWRQ2WGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHHGI6LHI.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><openstreetmap/openstreetmap-website/pull/4278</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/openstreetmap-website/pull/4278",
"url": "https://github.com/openstreetmap/openstreetmap-website/pull/4278",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>