nietaki

nietaki

Rexbug is the Elixir wrapper for the :redbug Erlang tracing debugger. Redbug has been around forever and it has some nice features (it is production safe, simple and pretty powerful), but it was a bit of a pain to use from Elixir. I set off to fix that with Rexbug and yesterday I released 1.0.0 with all the features I had originally planned :tada::tada::tada:

Let me know if you have any questions :slight_smile:

Showing Posts 1 to 5

nietaki

nietaki OP

Hey, I’m back to being involved in Elixir after a couple of years of doing other things in another project and I’m happy to see rexbug is still getting plenty of downloads despite just yearly bugfix releases.

I would like it if rexbug remained a relevant and convenient tool in the future, so I’d like to focus on building a 2.0 release and commit some time to maintenance afterwards.

Which is why I’d like to ask you guys for some thoughts on on rexbug, its utility and where you see it going in the future. I know there have been so projects to expand its functionality, such as rexerbug and replbug and there’s good arguments for introducing their functionality to rexbug as such.

Here’s where my head is at right now:

Critical stuff for 2.0 release:

  • migrate to redbug 2.x
  • make sure rexbug compiles with compilation or credo warnings on Elixir/Erlang latest
    • (still target the widest reasonable range of Elixir/Erlang versions)
  • add the capability for matching on map fields

Long term 2.x wishlist

  • The ability to pass captured functions instead of magic strings for easier use in the shell (inspired by rexerbug and dbg.
  • the ability to save the tracing results to a repl variable, like in replbug
  • ability to run tracing on the whole cluster
  • some form of pretty printing for the trace results

Of course the items from the second list differ in the amount of work required to make them work and how well specified the functionality is - will need some prioritization.

CTA: Please let us know how you use rexbug and what aspects of it would provide the most value! I have been out of the loop for a while and feedback from real users would be very valuable :slight_smile:

also: my apologies to people who opened issues/PRs on the project in the last couple of years and didn’t get much of a response - hopefully I can do better from now on and we can work on the project together :slight_smile:

nietaki

nietaki OP

Update:

The work on rexbug v2 is going well. Here’s the changes so far:

  • improved CI, moved to GitHub Actions
  • updated redbug dependency to 2.x, seems to be working great
  • added support for matching on structs
  • added support for matching on list heads ([h | _t], [h1, h2 | _t])
  • added support for redbug 2 functionalities
  • increased the test coverage back to 95%+
  • No compilation or credo warnings

I’m hoping to release the 2.0.0-rc1 version on hex within a week’s time. If anyone wants to help with testing it to make sure 2.0.0 can be released safely, I’d really appreciate it. Tagging @binarytemple - he’s the most involved power-user of Rexbug I know :smiley:

I’d like to start working on 2.1 immediately after releasing 2.0. I’m thinking the main feature for that would be the ability pass functions to the tracing (via captured functions or macros, I still need to see the which approach would work best), instead of magic strings. I think it would be a big win for the usability of the tool - we’ll be able to use iex shell completion instead of manually making sure everything is spelled right.

When that comes I hope to solicit some feedback for the proposed API to make sure it’s useful to you guys.

As always - feedback very much welcome.

binarytemple

binarytemple

More than happy to help out, great library! Sorry I haven’t been more of an active contributor.

nietaki

nietaki OP

Rexbug 2.0.0-rc1 is out!

Notable changes:

  • Update to redbug 2.0
  • Support for matching on structs
  • Add Rexbug.dtop/1
  • Improve guard functions support
  • Improve matching on lists
  • Reach 96% test coverage
  • Fix print_re option handling
  • Remove mix_test_watch and make from formal package dependencies
  • Add the scripts/release.sh tool

I’ll dogfood the rc-1 for a couple of weeks and release it as v2.0.0. All help testing the release candidate appreciated!

marciol

marciol

Debugging is always important and I’m glad knowing that a tracing tool is available improving a lot the debugging experience which for me have been sprinkling IO.puts/2 calls here and there.

— All posts loaded —

Where Next? Top

Trending in Announcing Top

bluzky
You may know https://ui.shadcn.com/, a UI component library for React. I really love it’s design style and components. I’ve built some co...
387 15136 120
New
wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
handnot2
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application. This library uses Erlang esaml to provide plug enabl...
New
woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 11030 135
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
shahryarjb
The Chelekom project is a library of Phoenix and LiveView components generated via Mix tasks to fit developer needs seamlessly. One of i...
New

Other Trending Topics Top

mudasobwa
I am seeing a lot of aplications of Argumentum ad Vericundiam in software discussions. They do link some piece of writing and point us to...
New
bartblast
Hey folks, I just published a post about Hologram’s funding and where the project goes next - the short version: Curiosum as Main Spons...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
lawik
I was thinking since Goatmire Elixir turned out pretty good I should maybe do another one. 30th of Sep - 2nd of Oct this year./ The firs...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews