Skip to content

resync - #1

Open
jwoodrow wants to merge 268 commits into
moonproject:masterfrom
test-prof:master
Open

resync#1
jwoodrow wants to merge 268 commits into
moonproject:masterfrom
test-prof:master

Conversation

@jwoodrow

Copy link
Copy Markdown

No description provided.

grillermo-everlyhealth and others added 30 commits February 28, 2022 17:14
* Respect the printer on the configure block

It was being cached and ignoring the one defined the configuration

* Update CHANGELOG

* Fix rubocop warnings

* Satisfy rubocop

* Update CHANGELOG.md

Co-authored-by: Guillermo Siliceo <guillermo.siliceo@gmail.com>
Co-authored-by: Vladimir Dementyev <dementiev.vm@gmail.com>
* restore the lock_thread value after rollback

* use :@lock_thread instead of "@lock_thread"

* avoid instance variable collisions with cats

* add a changelog entry

Co-authored-by: Vladimir Dementyev <dementiev.vm@gmail.com>
This is to ensure that if tests were run in parallel, that values would
not override each other/be used from other threads.
Signed-off-by: ygelfand <yuri@shlitz.com>
Signed-off-by: ygelfand <yuri@shlitz.com>
palkan and others added 17 commits March 18, 2026 22:46
```shell
$ curl -s -o /dev/null -w "%{http_code}\n" https://test-prof.evilmartians.io/misc/rubocop
404
% curl -s -o /dev/null -w "%{http_code}\n" https://test-prof.evilmartians.io/guide/misc/rubocop
200
```
`lib/test_prof/core.rb` requires "logger", which is no longer a default
gem as of Ruby 4.0.
ref: https://www.ruby-lang.org/en/news/2025/12/18/ruby-4-0-0-preview3-released/#stdlib-updates

Declare it explicitly so test-prof does not rely on
it being pulled in transitively (e.g. via activesupport).

Signed-off-by: moznion <moznion@mail.moznion.net>
RSpecDissect stores its span stack in a thread-local
(Thread.current[:_rspec_dissect_spans_stack]) that is only initialized
via reset! on the RSpec example thread. When a memoized helper (let) is
evaluated on a different thread -- most commonly a Capybara :js/system
spec, where the app runs in a separate Puma server thread -- current_span
and track dereference the uninitialized thread-local and raise
NoMethodError: undefined method 'last' for nil.

Lazily initialize the span stack in span_stack so access from a
non-example thread is a safe no-op (spans created off the example thread
are simply not collected as part of that example's setup timing). This
fixes both current_span and the << / pop in track.

Introduced in 1.6.0 with the RSpecDissect let-breakdowns feature; 1.5.2
is unaffected.
FlameGraphPrinter was added in
ruby-prof/ruby-prof@4eddb90
and ruby-prof could support that format.
Add support for FlameGraphPrinter
Fix RSpecDissect crash when let is evaluated on a non-example thread
Add logger as a runtime dependency
Cause we can't compile rbs extensions
palkan and others added 10 commits July 16, 2026 16:36
Handle factory keyword args as strings
Fix typo in ruby_profilers.md
Minitest 6 defines run_suite as a class method,[1] but the existing
check looked for an instance method. TestProf therefore installed the
Minitest 5 run_one_method hook, which made Rails call a method that
Minitest 6 no longer provides.[2]

Detect Minitest 6 through its class API and hook the per-test run method
that Rails 8 workers use. Keep the existing run_one_method path for
Minitest 5.

[1] https://github.com/minitest/minitest/blob/v6.0.6/lib/minitest.rb#L452-L486
[2] https://github.com/rails/rails/blob/v8.0.5/activesupport/lib/active_support/testing/parallelization/worker.rb#L49-L54
…n-one-method

Fix before_all with parallel Minitest 6
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.