strong_migrations
Ruby Tests Profiling Toolbox
Our great sponsors
strong_migrations | Ruby Tests Profiling Toolbox | |
---|---|---|
17 | 7 | |
3,856 | 1,793 | |
- | 1.2% | |
8.1 | 7.5 | |
about 1 month ago | 10 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
strong_migrations
-
Careful with That Lock, Eugene
In the Rails world, the gem strong_migrations can be used to detect these: https://github.com/ankane/strong_migrations
The docs include a handy articulation of fixes.
-
Must-have gems for mature Rails
gem "strong_migrations" - https://github.com/ankane/strong_migrations | Helps devs write non-blocking migrations, a must-have.
-
Migration Best Practice
Frameworks will have a preferred solution. We use Rails with the strong_migrations gem which is great: https://github.com/ankane/strong_migrations
-
How does Rails handle out of order migrations (when working on different local branches)
There’s no real way to test, but you can use gems like https://github.com/ankane/strong_migrations and not allow to merge branches unless they are up-to-date with main.
-
[AskJS] Is there any alternative to the strong migrations gem?
The strong migrations gem in Rails alerts when you're trying to make a migration that may be dangerous. Does anyone know an alternative for Javascript? Or maybe for raw SQL.
- Adding first and last name to existing app running on Heroku
- Enforcing Zero Downtime Django Migrations
-
When Postgres blocks: tips for dealing with locks
Half of the problems in this article are migration related.
I am extremely grateful that some people have created awesome libraries like strong migrations https://github.com/ankane/strong_migrations. Even if you are not using rails, bookmark its readme, it is an awesome cheat-sheet when writing a migration.
- Best practices as code using RuboCop
-
Why I Enjoy PostgreSQL – Infrastructure Engineer's Perspective
I would suggest taking a look at strong migrations[1]. It's a rails project, but the readme does a great job explaining what it checks for and what safe alternative to use instead. I still link to their explanations in PRs for non-rails projects.
[1]: https://github.com/ankane/strong_migrations#checks
Ruby Tests Profiling Toolbox
-
Must-have gems for mature Rails
gem "test-prof" - https://github.com/test-prof/test-prof | Toolkit for inspecting and optimising your test-suite, a must-have.
-
Measuring load time on fixtures
You might be able to do something with https://test-prof.evilmartians.io, but I'm not sure it has anything specific to fixtures out of the box. Maybe using the event profiler on sql.active_record events would be close enough. In the limit, you could wire together your own ActiveSupport::Notifications.instrument around the relevant blocks + an ActiveSupport::Notifications.subscribe to that event so as to log the relevant information. Docs: https://api.rubyonrails.org/classes/ActiveSupport/Notifications.html
-
How to optimize factory creation.
To have a better vision of what objects are created in our spec file we can use test-prof, a powerful gem that provides a collection of different tools to analyse your test suite performance. One of this tool is really useful to identify a factory cascade, let’s introduce factory profiler.
-
A Trick For Reading Flamegraphs
TestProf can be used to get flamegraphs for Ruby test suites.
- How to improve a test suit made with Rspec, Capybara, FactoryBot and Siteprism
-
Does pytest break a lot of coding rules?
Rspec has spec_helper.rb.
-
Learning resources to broaden the knowledge
I also love the test-prof documentation, there's a lot of good ideas on how to improve test performance.
What are some alternatives?
safe-pg-migrations - Make your PostgreSQL migrations safe
DuckRails - Development tool to mock API endpoints quickly and easily (docker image available)
phony_rails - This Gem adds useful methods to your Rails app to validate, display and save phone numbers. It uses the super awesome Phony gem (https://github.com/floere/phony).
Spinach - Spinach is a BDD framework on top of Gherkin.
money-rails - Integration of RubyMoney - Money with Rails
minitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking.
lockbox - Modern encryption for Ruby and Rails
timecop - A gem providing "time travel", "time freezing", and "time acceleration" capabilities, making it simple to test time-dependent code. It provides a unified method to mock Time.now, Date.today, and DateTime.now in a single call.
data-migrate - Migrate and update data alongside your database structure.
factory_bot - A library for setting up Ruby objects as test data.
Pagy - 🏆 The Best Pagination Ruby Gem 🥇
faker - A library for generating fake data such as names, addresses, and phone numbers.