Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(mocknet): add a make-backup command #10931

Merged
merged 5 commits into from
Apr 4, 2024

Conversation

marcelo-gonzalez
Copy link
Contributor

It is often useful to stop all the nodes and make backups of their data dirs so that we can reset to that point later. For example, when testing resharding it's nice to have a backup at a point right before the resharding epoch starts so that we can test the resharding part over and over without having to start from the beginning. So this PR adds a make_backup RPC method to neard_runner.py that stops neard and copies its data dir, remembering the backup_id parameter associated with it. Then in the reset command, the same backup_id can be referenced to restore to a previous backup.

if we want to be making lots of backups, this is better because
~/.near/ is often a mountpoint for a large disk
@marcelo-gonzalez marcelo-gonzalez requested a review from a team as a code owner April 3, 2024 23:05
@marcelo-gonzalez
Copy link
Contributor Author

marcelo-gonzalez commented Apr 3, 2024

@wacban after #10835 it is now possible to test this PR locally. You can do it like this:

run some pytest. I tried it with transactions.py edited like so:

diff --git a/pytest/tests/sanity/transactions.py b/pytest/tests/sanity/transactions.py
index c628fbee0..2dd9b286e 100755
--- a/pytest/tests/sanity/transactions.py
+++ b/pytest/tests/sanity/transactions.py
@@ -23,7 +23,7 @@ nodes = start_cluster(
     num_shards=4,
     config=None,
     genesis_config_changes=[["min_gas_price",
-                             0], ["max_inflation_rate", [0, 1]],
+                             0], ["use_production_config", True], ["max_inflation_rate", [0, 1]],
                             ["epoch_length", 10],
                             ["block_producer_kickout_threshold", 70]],
     client_config_changes={
@@ -33,7 +33,8 @@ nodes = start_cluster(
                     "secs": 2,
                     "nanos": 0
                 }
-            }
+            },
+            "tracked_shards": [0, 1, 2, 3]
         },
         1: {
             "consensus": {
@@ -41,7 +42,8 @@ nodes = start_cluster(
                     "secs": 2,
                     "nanos": 0
                 }
-            }
+            },
+            "tracked_shards": [0, 1, 2, 3]
         },
         2: {
             "consensus": {
@@ -49,7 +51,8 @@ nodes = start_cluster(
                     "secs": 2,
                     "nanos": 0
                 }
-            }
+            },
+            "tracked_shards": [0, 1, 2, 3]
         },
         3: {
             "consensus": {
@@ -57,7 +60,8 @@ nodes = start_cluster(
                     "secs": 2,
                     "nanos": 0
                 }
-            }
+            },
+            "tracked_shards": [0, 1, 2, 3]
         },
         4: {
             "consensus": {

then run:

$ python3 tests/mocknet/local_test_node.py local-test-setup --yes --num-nodes 2 --source-home-dir ~/.near/test4_finished/ --neard-binary-path ~/nearcore/target/debug/neard --fork-height 70
[2024-04-03 18:52:27] INFO: started neard runner process with pid 2674847 listening on port 3000
[2024-04-03 18:52:27] INFO: started neard runner process with pid 2674848 listening on port 3001
[2024-04-03 18:52:27] INFO: started neard runner process with pid 2674849 listening on port 3002
127.0.0.1 - - [03/Apr/2024 18:52:27] "GET /neard HTTP/1.1" 200 -
127.0.0.1 - - [03/Apr/2024 18:52:29] "GET /neard HTTP/1.1" 200 -
127.0.0.1 - - [03/Apr/2024 18:52:32] "GET /neard HTTP/1.1" 200 -
All directories initialized. neard runners are running in dirs: ['~/.near/local-mocknet/traffic-generator', '~/.near/local-mocknet/node0', '~/.near/local-mocknet/node1'], listening on respective ports: [3000, 3001, 3002]

$ python3 tests/mocknet/mirror.py --local-test new-test
$ python3 tests/mocknet/mirror.py --local-test start-traffic
# wait a bit
$ python3 tests/mocknet/mirror.py --local-test make-backup
$ python3 tests/mocknet/mirror.py --local-test start-traffic
# wait a bit
$ python3 tests/mocknet/mirror.py --local-test reset
# repeat make-backup / reset as you like
# then when you're done:
$ python3 tests/mocknet/mirror.py --local-test stop-nodes
$ python3 tests/mocknet/mirror.py --local-test stop-neard-runner

@marcelo-gonzalez
Copy link
Contributor Author

also just occurred to me that we might as well make checkpoints w hard links instead of copying everything... could do that in a separate PR after this one though

Copy link
Contributor

@wacban wacban left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is fantastic thanks!

  • It would also be cool to be able to specify upfront at what block height / epoch height we want the backup to be taken. Just an idea for another PR if you also think it would be useful :)
  • If I recall correctly the data and home directory are actually mounted separately so there won't be any difference between copy and hard links.

Comment on lines +496 to +497
if backup_id is None or backup_id == 'start':
path = self.data['binaries'][0]['system_path']
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: You can consider addding 'start' to the backups in self.data['backups'] when start is taken, then you won't need to special case this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah actually i did include that, but i wanted to add this special case here so that this will work if you start neard_runner.py that includes this PR on a directory that was made by an older version, so it will "just work" in that case. same kind of thing behind backup_id being an optional arg of this RPC method, so that an older mirror.py will work with a newer neard_runner.py running on the mocknet nodes

pytest/tests/mocknet/helpers/neard_runner.py Outdated Show resolved Hide resolved
pytest/tests/mocknet/helpers/neard_runner.py Outdated Show resolved Hide resolved
Comment on lines +234 to +237
if args.backup_id != 'start' and args.backup_id not in backups:
print(
f'Given backup ID ({args.backup_id}) was not in the list given')
sys.exit()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This check should happen both for backup_id provided in args and in readline (so outside this if)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mm well the reason i left it out when passing the backup ID on the command line was that when you dont pass it on the command line, we want to call ls-backups to get a list of backups to show the user. but when you do pass it on the command line, we can just skip that extra round trip and send it anyway, and neard_runner.py will just check that it doesnt exist. so you get the same behavior where neard_runner.py tells you it doesnt exist, but with only one RPC call

pytest/tests/mocknet/mirror.py Outdated Show resolved Hide resolved
@marcelo-gonzalez
Copy link
Contributor Author

  • If I recall correctly the data and home directory are actually mounted separately so there won't be any difference between copy and hard links.

Yea true, but in this PR I moved the neard-runner dir to be inside ~/.near/, because even forgetting about checkpoints with hard links, there's often not even enough space to put the backups on the other disk, so in the future might make sense to change this to make cheaper checkpoints

@marcelo-gonzalez marcelo-gonzalez added this pull request to the merge queue Apr 4, 2024
Copy link

codecov bot commented Apr 4, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 71.54%. Comparing base (efd0b83) to head (0d329a1).
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #10931      +/-   ##
==========================================
+ Coverage   71.51%   71.54%   +0.02%     
==========================================
  Files         758      758              
  Lines      151663   152058     +395     
  Branches   151663   152058     +395     
==========================================
+ Hits       108467   108794     +327     
- Misses      38710    38761      +51     
- Partials     4486     4503      +17     
Flag Coverage Δ
backward-compatibility 0.24% <ø> (-0.01%) ⬇️
db-migration 0.24% <ø> (-0.01%) ⬇️
genesis-check 1.42% <ø> (-0.01%) ⬇️
integration-tests 37.16% <ø> (+0.04%) ⬆️
linux 70.02% <ø> (+0.04%) ⬆️
linux-nightly 71.02% <ø> (+0.01%) ⬆️
macos 54.52% <ø> (+0.12%) ⬆️
pytests 1.65% <ø> (-0.01%) ⬇️
sanity-checks 1.44% <ø> (-0.01%) ⬇️
unittests 67.19% <ø> (+0.02%) ⬆️
upgradability 0.29% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Merged via the queue into near:master with commit 22b603c Apr 4, 2024
28 of 29 checks passed
@marcelo-gonzalez marcelo-gonzalez deleted the mocknet-backups branch April 4, 2024 19:56
mooori pushed a commit to mooori/nearcore that referenced this pull request Apr 16, 2024
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade react-router
from 6.16.0 to 6.17.0.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

- The recommended version is **4 versions** ahead of your current
version.
- The recommended version was released **22 days ago**, on 2023-10-16.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>react-router</b></summary>
    <ul>
      <li>
<b>6.17.0</b> - <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases/tag/react-router-native%406.17.0">2023-10-16</a></br><p>react-router-native@6.17.0</p>
      </li>
      <li>
<b>6.17.0-pre.2</b> - <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases/tag/react-router-native%406.17.0-pre.2">2023-10-13</a></br><p>react-router-native@6.17.0-pre.2</p>
      </li>
      <li>
<b>6.17.0-pre.1</b> - <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases/tag/react-router-native%406.17.0-pre.1">2023-10-12</a></br><p>react-router-native@6.17.0-pre.1</p>
      </li>
      <li>
        <b>6.17.0-pre.0</b> - 2023-10-11
      </li>
      <li>
        <b>6.16.0</b> - 2023-09-13
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases">react-router
GitHub release notes</a>
  </details>
</details>


<details>
  <summary><b>Commit messages</b></summary>
  </br>
  <details>
    <summary>Package name: <b>react-router</b></summary>
    <ul>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/edd9ad4957321cfb260cee21ad98aab2becfe250">edd9ad4</a>
chore: Update version for release (near#10935)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/c1d0e50fc9ef5706c0d6ce9d0866ec1f4dadaab7">c1d0e50</a>
Exit prerelease mode</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/1c64bc1d4fe9c212dcd073b12ea51d2e10c45ea7">1c64bc1</a>
Update readme for view transitions example</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/1604c74f3abb0650910efb264908a3803fcc2e5e">1604c74</a>
Split changeset for remix router and react-router-dom</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/ae843545c1a3a38c761b940ed5dc4fab15bb2d3a">ae84354</a>
Update view-transitions example to use prerelease</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/6cfbd0e571018bf1d8722c09d70e394d2602f5be">6cfbd0e</a>
chore: Update version for release (pre) (near#10934)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/c48341d6b75f4fd5b0ec60ed32c3c45ebb1e532f">c48341d</a>
Lift startViewTransition implementation to react-router-dom
(near#10928)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/b916689b4a211827cc324cf05994c334e25d380b">b916689</a>
chore: Update version for release (pre) (near#10931)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/cbc9d7222cc4ca1e74f0b081472187bbd6a95a42">cbc9d72</a>
Fix lint issues (near#10930)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/1ad822c5bf8b32143aeef8511ca02577b487aafc">1ad822c</a>
Update docs for startViewTransition (near#10927)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/e93e9088360e3fc1a4183efc5a39c8e680903554">e93e908</a>
Docs updates</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/b09c5d09198b1ee4a8bfbf8a2a8910fc8eed7d2c">b09c5d0</a>
chore: Update version for release (pre) (near#10924)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/d3203fb1b7bcfd73fa21e93b9b190defb769e33c">d3203fb</a>
Enter prerelease mode</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/3adb639109ea5e90800e0b155035a610f0a09b4b">3adb639</a>
Merge branch &#x27;main&#x27; into release-next</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/a5451d5d3967a356e6d5af3cbefb858d2702044e">a5451d5</a>
Update docs</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/feebfc0bf10614ba44ff43e2b9c69e22ad07a7a1">feebfc0</a>
Add startViewTransition support (near#10916)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/7ce38dc49ee997706902ac2d033ba1fd683cfed0">7ce38dc</a>
[Docs]: Use consistent feature warnings (near#10908)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/f77743aebfca26faabdd04e9ed1dd31721459877">f77743a</a>
chore: format</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/8af53e7bfcf004916af4ea37e9d24e295d6ac107">8af53e7</a>
Root router have a path different to &#x27;&#x27; or &#x27;/&#x27;
(near#10852)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/ebe2491f7cd966d9967edb8acaeed86f9e1ab5b9">ebe2491</a>
Fix RouterProvider future prop (near#10900)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/b98e82dbd774eadf3972f0b58f2542a8b5599d97">b98e82d</a>
Specify &#x60;ErrorResponse&#x60; as interface to provide obvious
contract (near#10876)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/da57748644da6400e2d051b2aa004df47beda1cf">da57748</a>
fix(docs): add backticks to element names (near#10874)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/f8194fdb8e371b715d29d30a82e04a82a7648e9b">f8194fd</a>
Handle case when session storage is blocked (near#10848)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/f9b3dbd9cbf513366c456b33d95227f42f36da63">f9b3dbd</a>
chore: sort contributors list</li>
    </ul>

<a
href="https://snyk.io/redirect/github/remix-run/react-router/compare/13fb25a51184f66192e023e2e18be5ff00f37827...edd9ad4957321cfb260cee21ad98aab2becfe250">Compare</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIwMTQwNDNhYS1kNjYyLTQwMjMtOGQ5Yi02YzcyOTA0OTZjYmMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjAxNDA0M2FhLWQ2NjItNDAyMy04ZDliLTZjNzI5MDQ5NmNiYyJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763/settings/integration?pkg&#x3D;react-router&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"014043aa-d662-4023-8d9b-6c7290496cbc","prPublicId":"014043aa-d662-4023-8d9b-6c7290496cbc","dependencies":[{"name":"react-router","from":"6.16.0","to":"6.17.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"98480bdc-d80b-4fd1-89d7-c4c56a706763","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":4,"publishedDate":"2023-10-16T15:50:05.351Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
mooori pushed a commit to mooori/nearcore that referenced this pull request Apr 16, 2024
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade
react-router-dom from 6.16.0 to 6.17.0.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

- The recommended version is **4 versions** ahead of your current
version.
- The recommended version was released **22 days ago**, on 2023-10-16.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>react-router-dom</b></summary>
    <ul>
      <li>
<b>6.17.0</b> - <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases/tag/react-router-native%406.17.0">2023-10-16</a></br><p>react-router-native@6.17.0</p>
      </li>
      <li>
<b>6.17.0-pre.2</b> - <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases/tag/react-router-native%406.17.0-pre.2">2023-10-13</a></br><p>react-router-native@6.17.0-pre.2</p>
      </li>
      <li>
<b>6.17.0-pre.1</b> - <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases/tag/react-router-native%406.17.0-pre.1">2023-10-12</a></br><p>react-router-native@6.17.0-pre.1</p>
      </li>
      <li>
        <b>6.17.0-pre.0</b> - 2023-10-11
      </li>
      <li>
        <b>6.16.0</b> - 2023-09-13
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/remix-run/react-router/releases">react-router-dom
GitHub release notes</a>
  </details>
</details>


<details>
  <summary><b>Commit messages</b></summary>
  </br>
  <details>
    <summary>Package name: <b>react-router-dom</b></summary>
    <ul>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/edd9ad4957321cfb260cee21ad98aab2becfe250">edd9ad4</a>
chore: Update version for release (near#10935)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/c1d0e50fc9ef5706c0d6ce9d0866ec1f4dadaab7">c1d0e50</a>
Exit prerelease mode</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/1c64bc1d4fe9c212dcd073b12ea51d2e10c45ea7">1c64bc1</a>
Update readme for view transitions example</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/1604c74f3abb0650910efb264908a3803fcc2e5e">1604c74</a>
Split changeset for remix router and react-router-dom</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/ae843545c1a3a38c761b940ed5dc4fab15bb2d3a">ae84354</a>
Update view-transitions example to use prerelease</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/6cfbd0e571018bf1d8722c09d70e394d2602f5be">6cfbd0e</a>
chore: Update version for release (pre) (near#10934)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/c48341d6b75f4fd5b0ec60ed32c3c45ebb1e532f">c48341d</a>
Lift startViewTransition implementation to react-router-dom
(near#10928)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/b916689b4a211827cc324cf05994c334e25d380b">b916689</a>
chore: Update version for release (pre) (near#10931)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/cbc9d7222cc4ca1e74f0b081472187bbd6a95a42">cbc9d72</a>
Fix lint issues (near#10930)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/1ad822c5bf8b32143aeef8511ca02577b487aafc">1ad822c</a>
Update docs for startViewTransition (near#10927)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/e93e9088360e3fc1a4183efc5a39c8e680903554">e93e908</a>
Docs updates</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/b09c5d09198b1ee4a8bfbf8a2a8910fc8eed7d2c">b09c5d0</a>
chore: Update version for release (pre) (near#10924)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/d3203fb1b7bcfd73fa21e93b9b190defb769e33c">d3203fb</a>
Enter prerelease mode</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/3adb639109ea5e90800e0b155035a610f0a09b4b">3adb639</a>
Merge branch &#x27;main&#x27; into release-next</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/a5451d5d3967a356e6d5af3cbefb858d2702044e">a5451d5</a>
Update docs</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/feebfc0bf10614ba44ff43e2b9c69e22ad07a7a1">feebfc0</a>
Add startViewTransition support (near#10916)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/7ce38dc49ee997706902ac2d033ba1fd683cfed0">7ce38dc</a>
[Docs]: Use consistent feature warnings (near#10908)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/f77743aebfca26faabdd04e9ed1dd31721459877">f77743a</a>
chore: format</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/8af53e7bfcf004916af4ea37e9d24e295d6ac107">8af53e7</a>
Root router have a path different to &#x27;&#x27; or &#x27;/&#x27;
(near#10852)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/ebe2491f7cd966d9967edb8acaeed86f9e1ab5b9">ebe2491</a>
Fix RouterProvider future prop (near#10900)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/b98e82dbd774eadf3972f0b58f2542a8b5599d97">b98e82d</a>
Specify &#x60;ErrorResponse&#x60; as interface to provide obvious
contract (near#10876)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/da57748644da6400e2d051b2aa004df47beda1cf">da57748</a>
fix(docs): add backticks to element names (near#10874)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/f8194fdb8e371b715d29d30a82e04a82a7648e9b">f8194fd</a>
Handle case when session storage is blocked (near#10848)</li>
<li><a
href="https://snyk.io/redirect/github/remix-run/react-router/commit/f9b3dbd9cbf513366c456b33d95227f42f36da63">f9b3dbd</a>
chore: sort contributors list</li>
    </ul>

<a
href="https://snyk.io/redirect/github/remix-run/react-router/compare/13fb25a51184f66192e023e2e18be5ff00f37827...edd9ad4957321cfb260cee21ad98aab2becfe250">Compare</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJlNTIxZTJlYi05MGNmLTRlZjEtYjljMC1iYTFlZTU2NjFjNzEiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImU1MjFlMmViLTkwY2YtNGVmMS1iOWMwLWJhMWVlNTY2MWM3MSJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763/settings/integration?pkg&#x3D;react-router-dom&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"e521e2eb-90cf-4ef1-b9c0-ba1ee5661c71","prPublicId":"e521e2eb-90cf-4ef1-b9c0-ba1ee5661c71","dependencies":[{"name":"react-router-dom","from":"6.16.0","to":"6.17.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/ecp88/project/98480bdc-d80b-4fd1-89d7-c4c56a706763?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"98480bdc-d80b-4fd1-89d7-c4c56a706763","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":4,"publishedDate":"2023-10-16T15:50:05.302Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants