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

chore: Release 0.15.0-0 🚀 #201

Merged
merged 11 commits into from
May 9, 2024
Merged

chore: Release 0.15.0-0 🚀 #201

merged 11 commits into from
May 9, 2024

Conversation

sumitramanga
Copy link
Collaborator

@sumitramanga sumitramanga commented May 7, 2024

[chore]: Release 0.15.0-0 🚀

Description 📝

Type of change

  • Release

Release contents
👉 Add support to async/await to send API method
👉 Fix avoiding infinite recursion in filterKeys method
👉 Various documentation and workflow changes
👉 Dev dependency updates

Test plan 🧪

  • Run example apps and ensure that test exceptions are sending to Raygun
  • Run the provider on clean project locally
  • Use the send method in the example apps and clean project

Author to check 👓

  • Project and all contained modules builds successfully
  • Self-/dev-tested
  • Unit/UI/Automation/Integration tests provided where applicable
  • Code is written to standards
  • Appropriate documentation written (code comments, internal docs)

Reviewer to check ✔️

  • Project and all contained modules builds successfully
  • Change has been dev-/reviewer-tested, where possible
  • Unit/UI/Automation/Integration tests provided where applicable
  • Code is written to standards
  • Appropriate documentation written (code comments, internal docs)

dependabot bot and others added 8 commits May 6, 2024 08:26
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
* reproduce issue with test

* reproduce issue with test

* prettied and cleaned

* improved code

* remove empty line

* code and test improvements

* formatting
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 7.7.1 to 7.8.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.8.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.1.1 to 9.2.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.2.0/packages/js)

---
updated-dependencies:
- dependency-name: "@eslint/js"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.12.7 to 20.12.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update issue templates

* Copied over content from existing files into new, official files and removed files in okld place.

---------

Co-authored-by: Kai Koenig <[email protected]>
* rename legacy send method to sendWithCallback

* implemented async send wrapper

* add async send test suite

* update domain example to use async send

* prettier run

* cleanup

* fix test

* wip updating expressHandler to use async send

* fixing tests

* format

* replace sendWithCallback to send

* wip update docs

* cleanup of sendSync

* add TODOs for refactor

* update README

* prettier

* add send bind again

* cleanup test

* clenaup tests

* change title

* Update lib/raygun.ts

Co-authored-by: Sumitra Manga <[email protected]>

---------

Co-authored-by: Sumitra Manga <[email protected]>
@sumitramanga
Copy link
Collaborator Author

Hi @paul-uz, we've managed to push foward with getting a release ready for your requested Issue #181

We should have this out soon!

Copy link
Contributor

@miquelbeltran miquelbeltran left a comment

Choose a reason for hiding this comment

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

Something seems wrong about this PR, merging develop into master again shouldn't show all these changes. I think this is due to the rebasing of master. Probably this can be fixed by merging master into develop first with a merge commit, otherwise commit history has diverged.

Secondly, the release process should be done in a two-step process:

1st. We need to increase the version in the package.json and update the CHANGELOG, on a separated PR into develop. This is necessary so the version change is found on both branches.

2nd. We do the merge of develop into master effectively doing the release merge.

This is something that git-flow would solve for us as well.

I'd recommend closing this PR and follow those steps.

@miquelbeltran
Copy link
Contributor

The version preparing PR is here: #202

@miquelbeltran
Copy link
Contributor

We can keep this PR open, I will fix the diverged history between master and develop in a new PR meanwhile.

@miquelbeltran
Copy link
Contributor

And the PR fixing the merge conflicts: #203

@miquelbeltran miquelbeltran changed the title chore: Release 0.15.0 🚀 chore: Release 0.15.0-0 🚀 May 8, 2024
* ci: Create node.js.yml (#142)

* ci: Create node.js.yml

* Include "develop" in the branch list to run CI actions

* trigger GitHub actions.

* fix: Updating dependencies and fixes (#144)

* chore: updated dependencies

* chore: update to tslint-react 5.0.0

* fix: mixup between Request and RequestParams

* fix: convert Express Request to RequestParams

* fix: recreate package-lock to fix express dependency errors

* fix: test tap command update

* fix: test asserts

* refactor: use equal instead of ok

* Adding PR, bug report and feature request templates.

* Update pull_request_template.md

Committing @sumitramanga's suggestion

Co-authored-by: Sumitra Manga <[email protected]>

* Update .github/bug_report.md

Nice!

Co-authored-by: Sumitra Manga <[email protected]>

* Update .github/bug_report.md

Co-authored-by: Sumitra Manga <[email protected]>

* ci: #145 eslint setup (#156)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* chore: #148 upgrade examples (#157)

* express example: upgrade dependencies and point to subfolder raygun package

* using-domains: upgrade dependencies and reference local raygun

* using-domains: upgrade dependencies and reference local raygun

* add console logs and format using spaces

* improved readme

* improved readme + replace tabs by spaces

* enforce changing API keys to run examples

* ci: add PR title checks (#167)

* ci: Update dependabot.yml (#168)

* chore(deps): bump actions/checkout from 3 to 4 (#171)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump actions/setup-node from 3 to 4 (#172)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: Move pr.yml to workflows (#175)

* refactor: #158 remove no-explicit-any ignore eslint rule (#159)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* remove rule no-explicit-any

* specify type for timer

* remove any from filterKeys

* explictly declare that error can be Error, String but still accept any from the end users

* specify types in the sync worker

* improve the IndexableError type

* explain why any is allowed in CustomData

* update package lock in sample

* Update lib/raygun.sync.worker.ts

Co-authored-by: Sumitra Manga <[email protected]>

* remove empty line

---------

Co-authored-by: Sumitra Manga <[email protected]>

* refactor: #158 remove no-this-alias ignore eslint rule (#160)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* remove rule no-explicit-any

* specify type for timer

* remove any from filterKeys

* explictly declare that error can be Error, String but still accept any from the end users

* specify types in the sync worker

* improve the IndexableError type

* explain why any is allowed in CustomData

* remove no-this-alias from eslint config

* convert to arrow function to preserve this reference

* use arrow functions to remove the need of a this alias

* define httpoptions object instead of using this alias

* update package lock in sample

* refactor: #158 fix eslint rule "no-unused-vars" (#170)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* remove rule no-explicit-any

* specify type for timer

* remove any from filterKeys

* explictly declare that error can be Error, String but still accept any from the end users

* specify types in the sync worker

* improve the IndexableError type

* explain why any is allowed in CustomData

* remove no-this-alias from eslint config

* convert to arrow function to preserve this reference

* use arrow functions to remove the need of a this alias

* define httpoptions object instead of using this alias

* setup no-unused-vars lint rule

* remove unused var

* fixed lib/raygun.batch.ts

* fix lib/raygun.offline.ts

* cleanup lib/raygun.sync.transport.ts

* fix lib/raygun.transport.ts

* fix lib/raygun.ts

* fix @typescript-eslint/no-unused-vars

* fixs in test files

* update package lock in sample

* cleanup eslint config

* ci: #174 Prettier setup (#169)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* remove rule no-explicit-any

* specify type for timer

* remove any from filterKeys

* explictly declare that error can be Error, String but still accept any from the end users

* specify types in the sync worker

* improve the IndexableError type

* explain why any is allowed in CustomData

* remove no-this-alias from eslint config

* convert to arrow function to preserve this reference

* use arrow functions to remove the need of a this alias

* define httpoptions object instead of using this alias

* add examples to prettier command

* add prettier job to node js ci job

* script fix

* setup no-unused-vars lint rule

* remove unused var

* fixed lib/raygun.batch.ts

* fix lib/raygun.offline.ts

* cleanup lib/raygun.sync.transport.ts

* fix lib/raygun.transport.ts

* fix lib/raygun.ts

* fix @typescript-eslint/no-unused-vars

* fixs in test files

* update package lock in sample

* cleanup eslint config

* config files

* run npm run prettier

* Update .github/workflows/node.js.yml

Co-authored-by: Sumitra Manga <[email protected]>

* fix workflow

* add comments to the package.json

* add missing files

* remove fetch-depth: 0

---------

Co-authored-by: Sumitra Manga <[email protected]>

* chore: #158 document why no-var-requires ignore is necessary (#173)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* remove rule no-explicit-any

* specify type for timer

* remove any from filterKeys

* explictly declare that error can be Error, String but still accept any from the end users

* specify types in the sync worker

* improve the IndexableError type

* explain why any is allowed in CustomData

* remove no-this-alias from eslint config

* convert to arrow function to preserve this reference

* use arrow functions to remove the need of a this alias

* define httpoptions object instead of using this alias

* add examples to prettier command

* add prettier job to node js ci job

* script fix

* setup no-unused-vars lint rule

* remove unused var

* fixed lib/raygun.batch.ts

* fix lib/raygun.offline.ts

* cleanup lib/raygun.sync.transport.ts

* fix lib/raygun.transport.ts

* fix lib/raygun.ts

* fix @typescript-eslint/no-unused-vars

* fixs in test files

* update package lock in sample

* cleanup eslint config

* config files

* run npm run prettier

* chore: document why no-var-requires ignore is necessary

update comment

* refactor: #158 configure no-undef eslint rule  (#176)

* removed tslint

* add eslint

* add default config

* setup default config and npm run command

* add command to node.js.yml

* set rules to support current codebase

* remove unused tslint.json

* include sample files in eslint command

* remove rule no-explicit-any

* specify type for timer

* remove any from filterKeys

* explictly declare that error can be Error, String but still accept any from the end users

* specify types in the sync worker

* improve the IndexableError type

* explain why any is allowed in CustomData

* remove no-this-alias from eslint config

* convert to arrow function to preserve this reference

* use arrow functions to remove the need of a this alias

* define httpoptions object instead of using this alias

* add examples to prettier command

* add prettier job to node js ci job

* script fix

* setup no-unused-vars lint rule

* remove unused var

* fixed lib/raygun.batch.ts

* fix lib/raygun.offline.ts

* cleanup lib/raygun.sync.transport.ts

* fix lib/raygun.transport.ts

* fix lib/raygun.ts

* fix @typescript-eslint/no-unused-vars

* fixs in test files

* update package lock in sample

* cleanup eslint config

* config files

* run npm run prettier

* chore: document why no-var-requires ignore is necessary

update comment

* fix: #158 configure no-undef eslint rule

* refactor: #158 configure no-unreachable eslint rule (#177)

* refactor: #158 remove no-useless-catch eslint rule (#178)

* refactor: #158 configure no-unreachable eslint rule

* refactor: #158 remove no-useless-catch eslint rule

* chore: Prepare for Release 0.14.0 (#179)

* refactor: #158 configure no-unreachable eslint rule

* refactor: #158 remove no-useless-catch eslint rule

* set version 0.14.0

* update changelog

* Update package.json

Co-authored-by: Sumitra Manga <[email protected]>

* add Error reporting to keywords

* update license copyright year

* updated URL

* added more keywords

* moar keywords

---------

Co-authored-by: Sumitra Manga <[email protected]>

* chore: Update package-lock.json (#180)

* chore: update package-lock.json (#183)

* chore: change author name (#185)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Kai Koenig <[email protected]>
Co-authored-by: Sumitra Manga <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@miquelbeltran
Copy link
Contributor

I'm confused, is the latest version 0.14.0 or 0.15.0?

0.14.0 has been just released, and we are preparing 0.15.0-0 with the async/await change

@miquelbeltran

This comment was marked as resolved.

@miquelbeltran miquelbeltran changed the base branch from master-old to master May 8, 2024 07:58
@miquelbeltran miquelbeltran self-requested a review May 8, 2024 07:59
@sumitramanga sumitramanga linked an issue May 8, 2024 that may be closed by this pull request
Copy link
Contributor

@miquelbeltran miquelbeltran left a comment

Choose a reason for hiding this comment

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

LGTM, tested locally with both examples

@miquelbeltran
Copy link
Contributor

remember, we need to do a "Merge pull request" ;)

@miquelbeltran miquelbeltran requested review from a team and PanosNB and removed request for a team May 8, 2024 08:20
@sumitramanga
Copy link
Collaborator Author

@miquelbeltran Will do, thank you for the reminder!

* Showing RG4N and Express sample app debug messages.

* Unifying debug calls re prefix tag and using string templates where not before.

* Unifying console.log calls re prefix tag and using string templates where not before.

* Unifying other console.<something> calls re prefix tag and using string templates where not before.

* Unifying console.<something> calls re prefix tag and using string templates where not before in both example apps

* Prettier

* Updated package-lock

* Update examples/express-sample/bin/www

Co-authored-by: Miguel Beltran <[email protected]>

* Update examples/express-sample/bin/www

Co-authored-by: Miguel Beltran <[email protected]>

---------

Co-authored-by: Sumitra Manga <[email protected]>
Co-authored-by: Miguel Beltran <[email protected]>
Copy link

@PanosNB PanosNB left a comment

Choose a reason for hiding this comment

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

All good, great work! One things to consider please around cycle prevention and not deleting ancestor references from the set. We could also add the case of two or more backwards references to the test (great to see that there!)

// - the key is in the filter array
// - the value is already in the explored Set
if (filters.indexOf(key) > -1 || _explored.has(_obj[key])) {
delete _obj[key];
Copy link

Choose a reason for hiding this comment

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

Why do we delete from the set? It could happen that a parent reference has two backwards references to it? I think the if side here should be a nop, so just execute the else part with the condition negated.

In other words, to avoid recursive cycles, an ancestor object could be referenced by more than one descend objects. So, always keep the ancestor object in the explored set

Copy link

Choose a reason for hiding this comment

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

My bad, looking back into this, I see now that we do not delete the _explored set. All good, I will approve

Copy link
Collaborator Author

@sumitramanga sumitramanga left a comment

Choose a reason for hiding this comment

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

I can't approve my own PR but this looks good to me! Panos raises a good point so that's something to look into

Copy link

@PanosNB PanosNB left a comment

Choose a reason for hiding this comment

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

All good, I had misunderstood smth before. Great work!

// - the key is in the filter array
// - the value is already in the explored Set
if (filters.indexOf(key) > -1 || _explored.has(_obj[key])) {
delete _obj[key];
Copy link

Choose a reason for hiding this comment

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

My bad, looking back into this, I see now that we do not delete the _explored set. All good, I will approve

Copy link
Contributor

@TheRealAgentK TheRealAgentK left a comment

Choose a reason for hiding this comment

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

Ok, LGTM! Let's release it.

@miquelbeltran miquelbeltran merged commit 28abe41 into master May 9, 2024
9 checks passed
@paul-uz
Copy link

paul-uz commented May 9, 2024

Can I ask why this is marked as 0.15.0-0 and not just 0.15.0? It means I can no longer use ^0.15.0 in my package file

@miquelbeltran
Copy link
Contributor

Hi @paul-uz, we have released the async/await send method support as pre-release (that's why the -0 at the end) to collect feedback from users. Once we are sure it works as expected, we will do a proper stable release.

In the near future, the Raygun team plans to do a proper 1.0.0 eventually, nevertheless.

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.

Improve async behaviour when sending
5 participants