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

Use minimalistic post-install upgrade message #3756

Merged
merged 2 commits into from
Jul 8, 2024

Conversation

ivoanjo
Copy link
Member

@ivoanjo ivoanjo commented Jul 3, 2024

What does this PR do?

This PR is a follow-up on #3723.

For the 1.23.3 dd-trace-rb release, we included a quite detailed post-install message to tell customers that the new release was out:

Thank you for installing ddtrace. We have released our next major version!

As of version 2, `ddtrace` gem has been renamed to `datadog`.
The 1.x series will now only receive maintenance updates for security and critical bug fixes.

To upgrade, please replace gem `ddtrace` with gem `datadog`.
For detailed instructions on migration, see: https://dtdg.co/ruby-v2-upgrade

My thinking is -- some customers may not be able to move to 2.x as quickly as they wanted, and thus seeing that message again and again may start to be slightly annoying.

Thus, this PR replaces with with the minimalistic

The ddtrace gem has been renamed to datadog. We recommend upgrading: https://dtdg.co/ruby-v2-upgrade

Motivation:

Continue suggesting to customers that the should upgrade, while at the same time not being too annoying about it.

Additional Notes:

It actually may not a half-bad idea that we released a version with the big message, and then shortened it.

Specifically, customers that mostly keep up-to-date will probably see that message quite quickly, and thus upgrade.

For the long tail of customers that may need to remain on 1.x, the more minimalistic message that will go out in a few weeks/months on a future 1.x maintenance release will continue to remind them.

How to test the change?

$ bundle exec rake build
 # ...

ddtrace 1.23.3 built to pkg/ddtrace-1.23.3.gem.

$ gem install pkg/ddtrace-1.23.3.gem
Building native extensions. This could take a while...
    The ddtrace gem has been renamed to datadog. We recommend upgrading: https://dtdg.co/ruby-v2-upgrade

**What does this PR do?**

This PR is a follow-up on #3723.

For the 1.23.3 dd-trace-rb release, we included a quite detailed
post-install message to tell customers that the new release was out:

```
Thank you for installing ddtrace. We have released our next major version!

As of version 2, `ddtrace` gem has been renamed to `datadog`.
The 1.x series will now only receive maintenance updates for security and critical bug fixes.

To upgrade, please replace gem `ddtrace` with gem `datadog`.
For detailed instructions on migration, see: https://dtdg.co/ruby-v2-upgrade
```

My thinking is -- some customers may not be able to move to 2.x as
quickly as they wanted, and thus seeing that message again and again may
start to be slightly annoying.

Thus, this PR replaces with with the minimalistic

```
The ddtrace gem has been renamed to datadog. We recommend upgrading: https://dtdg.co/ruby-v2-upgrade
```

**Motivation:**

Continue suggesting to customers that the should upgrade, while at the
same time not being too annoying about it.

**Additional Notes:**

It actually may not a half-bad idea that we released a version with the
big message, and then shorted in.

Specifically, customers that mostly keep up-to-date will probably see
that message quite quickly, and thus upgrade.

For the long tail of customers that may need to remain on 1.x, the
more minimalistic message that will go out in a few weeks/months on
a future 1.x maintenance release will continue to remind them.

**How to test the change?**

```bash
$ bundle exec rake build
 # ...

ddtrace 1.23.3 built to pkg/ddtrace-1.23.3.gem.

$ gem install pkg/ddtrace-1.23.3.gem
Building native extensions. This could take a while...
    The ddtrace gem has been renamed to datadog. We recommend upgrading: https://dtdg.co/ruby-v2-upgrade
```
@ivoanjo ivoanjo requested a review from a team as a code owner July 3, 2024 14:21
@codecov-commenter
Copy link

codecov-commenter commented Jul 3, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.25%. Comparing base (4e33388) to head (545ff08).

Additional details and impacted files
@@             Coverage Diff             @@
##           1.x-stable    #3756   +/-   ##
===========================================
  Coverage       98.25%   98.25%           
===========================================
  Files            1257     1257           
  Lines           74916    74916           
  Branches         3566     3566           
===========================================
  Hits            73607    73607           
  Misses           1309     1309           

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

ddtrace.gemspec Outdated
Thank you for installing ddtrace. We have released our next major version!

As of version 2, `ddtrace` gem has been renamed to `datadog`.
The 1.x series will now only receive maintenance updates for security and critical bug fixes.

To upgrade, please replace gem `ddtrace` with gem `datadog`.
For detailed instructions on migration, see: https://dtdg.co/ruby-v2-upgrade
The ddtrace gem has been renamed to datadog. We recommend upgrading: https://dtdg.co/ruby-v2-upgrade
Copy link
Member

Choose a reason for hiding this comment

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

I like the original message more, because it captures the "what" in a contextual way (it is tailored for someone installing this version of ddtrace 1.x) and it explains what the risks are immediately ("1.x series will now only receive maintenance updates").
IMO, the original message allows me to make a decision without the indirection. The user is then invited to follow the link if they deem that an upgrade is warranted.

The motivation

Continue suggesting to customers that the should upgrade, while at the same time not being too annoying about it.

makes sense, I'm just not sure if trumps having a well-described message.

Copy link
Member Author

Choose a reason for hiding this comment

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

I see your point 🤔 ... What do you think of this middle ground:

The ddtrace gem has been renamed to datadog. Upgrading is easy: https://dtdg.co/ruby-v2-upgrade
The old ddtrace gem will only receive maintenance updates for security and critical bug fixes.

If you're not convinced it should be changed at all, I'm happy to close this PR -- I do think it's worth shortening it, but I also don't want to start a bikeshed on this topic 😅

Copy link
Contributor

Choose a reason for hiding this comment

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

but I also don't want to start a bikeshed on this topic

Nobody enjoy bikeshedding.

I prefer the original message, but I don't mind improving the brevity as long as the context is captured.

Context:

  1. Major version released
  2. Gem name changed
  3. The risk of not upgrading: Explain what maintenance mode means.
  4. Info about upgrading: Link https://dtdg.co/ruby-v2-upgrade

What do you think of this middle ground:

I would like to see the proposed message capturing (1)

No matter how short the message become, user can still be annoyed with a one-liner post install message, consider using bundler ignore_messages configuration.

Copy link
Member Author

Choose a reason for hiding this comment

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

I would like to see the proposed message capturing (1)

Maybe

Version 2 of the ddtrace gem has been renamed to datadog. Upgrading is easy: https://dtdg.co/ruby-v2-upgrade
The old 1.x ddtrace gem will only receive maintenance updates for security and critical bug fixes.

?

No matter how short the message become, user can still be annoyed with a one-liner post install message, consider using bundler ignore_messages configuration.

It's a good point! I didn't know you could disable these. On the other hand, I was kinda trying to avoid annoying people in the first place, rather than annoying them enough that they google how to get rid of the message 🤣

I guess this raises one possibility: we could keep the current more detailed message and add a footer to tell customers something like

(To disable this message, use `bundle config ignore_messages.ddtrace true`)

Although I prefer the minimalist version, I think this would also solve the problem I'm trying to address.

Copy link
Contributor

@TonyCTHsu TonyCTHsu Jul 5, 2024

Choose a reason for hiding this comment

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

This is my take trying to shorten it.

The next major version (2.x) of `ddtrace` has been released and the gem has been renamed to `datadog`. 
The `ddtrace` gem will only receive maintenance update for security and critical bugs.
We recommend upgrading: https://dtdg.co/ruby-v2-upgrade

I will leave it to others to decide whether to include the footer for ignoring message from bundler.

Copy link
Member Author

@ivoanjo ivoanjo Jul 5, 2024

Choose a reason for hiding this comment

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

I was aiming for 1 line, with 2 lines being the compromise. I'm not entirely a fan of spilling into 3 lines, at that point I'm not sure we're really making it "minimalistic".

Copy link
Contributor

Choose a reason for hiding this comment

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

I merged the second and third line.

The next major version (2.x) of `ddtrace` has been released and the gem has been renamed to `datadog`. 
The `ddtrace` gem will only receive maintenance update for security and critical bugs. We recommend upgrading: https://dtdg.co/ruby-v2-upgrade

Copy link
Member

Choose a reason for hiding this comment

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

I think this suggestion captures all the key points and is relatively short (this was suggested by Ivo in this thread, I tweak it just a bit to be shorter):

The ddtrace gem has been renamed to datadog in version 2. Upgrading is easy: https://dtdg.co/ruby-v2-upgrade
ddtrace 1.x will only receive security updates and critical bug fixes.

Copy link
Member

@marcotc marcotc left a comment

Choose a reason for hiding this comment

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

Give the input from @TonyCTHsu, @ivoanjo, and myself, I trust you (@ivoanjo) to merge whatever version of the message you see fit, I don't personally see the need to dwell on this for any longer.

Copy link
Member

@p-datadog p-datadog left a comment

Choose a reason for hiding this comment

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

I agree with the sentiment of giving more detail than the 1 line and approve the 2 line version that you all decide to use.

@ivoanjo
Copy link
Member Author

ivoanjo commented Jul 8, 2024

Thanks y'all :)

I've applied Marco's latest suggestion, and Tony also acked that one, so let's get this show on the road!

@ivoanjo ivoanjo merged commit dd5f9b1 into 1.x-stable Jul 8, 2024
193 checks passed
@ivoanjo ivoanjo deleted the ivoanjo/minimalistic-upgrade-message branch July 8, 2024 13:23
@github-actions github-actions bot added this to the 1.23.4 milestone Jul 8, 2024
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.

5 participants