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

Rename heartbeats to cron check-ins #1079

Merged
merged 3 commits into from
Aug 14, 2024
Merged

Conversation

unflxw
Copy link
Contributor

@unflxw unflxw commented Jul 11, 2024

See appsignal/appsignal-elixir#957.

Emit a deprecation warning both when the heartbeat helper is used and when the Heartbeat class is initialised, but only once each.

@unflxw unflxw added the chore label Jul 11, 2024
@unflxw unflxw self-assigned this Jul 11, 2024
@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch 2 times, most recently from a0d8976 to e089dc2 Compare July 12, 2024 11:08
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Jul 12, 2024
@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch from e089dc2 to d1af160 Compare July 12, 2024 15:29
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Jul 12, 2024
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Jul 15, 2024
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Jul 15, 2024
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Jul 15, 2024
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Jul 15, 2024
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch from d1af160 to 8b057f1 Compare July 15, 2024 12:03
@backlog-helper

This comment has been minimized.

@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch 2 times, most recently from a847885 to e477ecd Compare August 1, 2024 08:53
@unflxw unflxw marked this pull request as ready for review August 5, 2024 15:38
unflxw added a commit to appsignal/appsignal-python that referenced this pull request Aug 7, 2024
See also appsignal/appsignal-nodejs#1079.

In Ruby and Node.js, we use `const_missing` and `Proxy`
respectively to make `Heartbeat` pretend to be `Cron`, allowing
the result of instantiating one to pass an instance class check for
the other and vice-versa, while also emitting a deprecation warning
in the process.

Since the above is not possible in Python, we instead make a
`Heartbeat` class that emits the deprecation warning, returns
instances of `Cron` when initialised, and also pretends to be `Cron`
when instance-checked against. It's not perfect (neither is `Proxy`)
but it does the trick.
See appsignal/appsignal-elixir#957.

Emit a deprecation warning both when the `heartbeat` helper is used
and when the `Heartbeat` class is initialised, but only once each.
Change the endpoint to `/check_ins/json` and amend the event format
to use `identifier` instead of `name`, `digest` instead of `id`, and
a new `check_in_type` field.
@unflxw unflxw force-pushed the rename-heartbeats-to-cron-checkins branch from e477ecd to 1f6984b Compare August 7, 2024 12:15
@backlog-helper

This comment has been minimized.

2 similar comments
@backlog-helper

This comment has been minimized.

@backlog-helper

This comment has been minimized.

Use `identifier` and `digest` instead of `name` and `id` respectively.
@backlog-helper

This comment has been minimized.

1 similar comment
@backlog-helper
Copy link


This is a message from the daily scheduled checks.

New issue guide | Backlog management | Rules | Feedback

@unflxw unflxw merged commit 458ea80 into main Aug 14, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants