From cbafd5d225dc0fe4877cdcb92c032d5034558df9 Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Thu, 4 Oct 2018 08:08:31 -0700 Subject: Change contributing guide to use safer force push This commit changes the contributing guide in rails to suggest using git with force-with-lease over typical force pushing. In practice, most rails contributors won't ever encounter a situation where updating their local fork could result in lost changes as a result of a force push. That being said, git is a complex tool and arcane flags like force-with-lease are indeed safer, and by promoting it in rails, there's a chance more people will discover it and use it in other contexts outside of rails. In just the same way that herd immunity works by most people being vaccinated, proliferating knowledge of force-with-lease should help nudge people towards using safer git commands in general. [ci skip] --- guides/source/contributing_to_ruby_on_rails.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'guides/source/contributing_to_ruby_on_rails.md') diff --git a/guides/source/contributing_to_ruby_on_rails.md b/guides/source/contributing_to_ruby_on_rails.md index 01848bdc11..9f768c3544 100644 --- a/guides/source/contributing_to_ruby_on_rails.md +++ b/guides/source/contributing_to_ruby_on_rails.md @@ -576,13 +576,13 @@ $ git rebase -i rails/master < Choose 'squash' for all of your commits except the first one. > < Edit the commit message to make sense, and describe all your changes. > -$ git push fork my_new_branch -f +$ git push fork my_new_branch --force-with-lease ``` You should be able to refresh the pull request on GitHub and see that it has been updated. -#### Updating pull request +#### Updating a pull request Sometimes you will be asked to make some changes to the code you have already committed. This can include amending existing commits. In this @@ -592,12 +592,13 @@ you can force push to your branch on GitHub as described earlier in squashing commits section: ```bash -$ git push fork my_new_branch -f +$ git push fork my_new_branch --force-with-lease ``` -This will update the branch and pull request on GitHub with your new code. Do -note that using force push may result in commits being lost on the remote branch; use it with care. - +This will update the branch and pull request on GitHub with your new code. +By force pushing with `--force-with-lease`, git will more safely update +the remote than with a typical `-f`, which can delete work from the remote +that you don't already have. ### Older Versions of Ruby on Rails -- cgit v1.2.3 From 899334b5b3a64e4563219d9fe1b923e9033beb3f Mon Sep 17 00:00:00 2001 From: Alberto Almagro Date: Fri, 5 Oct 2018 21:34:32 +0200 Subject: Add documentation to run tests with specific seed [ci skip] This commit documents how to run all tests or a single test file with a specific randomization seed. --- guides/source/contributing_to_ruby_on_rails.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'guides/source/contributing_to_ruby_on_rails.md') diff --git a/guides/source/contributing_to_ruby_on_rails.md b/guides/source/contributing_to_ruby_on_rails.md index 01848bdc11..1beadd78d6 100644 --- a/guides/source/contributing_to_ruby_on_rails.md +++ b/guides/source/contributing_to_ruby_on_rails.md @@ -336,6 +336,26 @@ $ bundle exec ruby -w -Itest test/mail_layout_test.rb -n test_explicit_class_lay The `-n` option allows you to run a single method instead of the whole file. +#### Running tests with a specific seed + +Test execution is randomized with a randomization seed. If you are experiencing random +test failures you can more accurately reproduce a failing test scenario by specifically +setting the randomization seed. + +Running all tests for a component: + +```bash +$ cd actionmailer +$ SEED=15002 bundle exec rake test +``` + +Running a single test file: + +```bash +$ cd actionmailer +$ SEED=15002 bundle exec ruby -w -Itest test/mail_layout_test.rb +``` + #### Testing Active Record First, create the databases you'll need. You can find a list of the required -- cgit v1.2.3