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

Create app.installation.id attribute #1897

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

bencehornak
Copy link

@bencehornak bencehornak commented Feb 10, 2025

Fixes #1874

Warning

This PR must be merged together with #1951 as they are highly related, dear maintainers, please add them to the same milestone.

Changes

Added app.installation.id (the first attribute in the installation namespace), which is a unique identifier representing the installation of an application on a specific device. Its definition is more-or-less identical to the old definition of device.id, which has always identified app installations and not devices.

In #1951 I am changing the definition of device.id, so that it actually identifies the device.

For more context see #1874.

Merge requirement checklist

@bencehornak bencehornak requested review from a team as code owners February 10, 2025 11:26
@github-actions github-actions bot added the enhancement New feature or request label Feb 10, 2025
Copy link
Member

@joaopgrassi joaopgrassi left a comment

Choose a reason for hiding this comment

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

I think this changes makes sense given the discussion in the issue. But I think it would be better if the changes related to device would be in a separate PR. Then you can include the changelog for it as a breaking change, since it is now Opt-In.

Copy link

@LikeTheSalad LikeTheSalad left a comment

Choose a reason for hiding this comment

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

Thanks! I like the idea of using a name that better describes what we were doing with device.id. I've just added some questions on specific details, but I'm on board with the change.

@bencehornak
Copy link
Author

I think this changes makes sense given the discussion in the issue. But I think it would be better if the changes related to device would be in a separate PR. Then you can include the changelog for it as a breaking change, since it is now Opt-In.

@joaopgrassi Thanks for your feedback! My reasoning for adding two changes to a single PR was that I see the two changes as a single transaction. If, say, the device.id changes are merged first, then the SDK users won't have any recommended fields to identify different installations until the 2nd PR with the installation.id changes are merged. If we do it other way around, for a short period of time there will be significant overlaps between the definitions of device.id and installation.id, so that would also not be ideal.

So right now I don't know, how to put the two changes in topological order given their circular dependency, but if you help me figure this out, I'm happy to split this PR into two.

@joaopgrassi
Copy link
Member

joaopgrassi commented Feb 11, 2025

I think this changes makes sense given the discussion in the issue. But I think it would be better if the changes related to device would be in a separate PR. Then you can include the changelog for it as a breaking change, since it is now Opt-In.

@joaopgrassi Thanks for your feedback! My reasoning for adding two changes to a single PR was that I see the two changes as a single transaction. If, say, the device.id changes are merged first, then the SDK users won't have any recommended fields to identify different installations until the 2nd PR with the installation.id changes are merged. If we do it other way around, for a short period of time there will be significant overlaps between the definitions of device.id and installation.id, so that would also not be ideal.

So right now I don't know, how to put the two changes in topological order given their circular dependency, but if you help me figure this out, I'm happy to split this PR into two.

Yes, I understand. We have been asked by users though that such bundling breaking changes with other changes such as this makes it harder for them to track breaking changes, which is also understandable. so, we have been trying recently to better identify/label breaking changes PRs to help in such cases.

I think we could still make it work to merge both of them separately. You will need approvals in both anyway and once both are good we just merge them together in the same release. We can for example, add the PRs into the same milestone.

@bencehornak
Copy link
Author

@joaopgrassi alright, I'll restrict this PR to the new definition of device.id, and will add the new attribute to a separate PR.

@bencehornak bencehornak changed the title Create installation.id, redefine device.id Create app.installation.id attribute Feb 27, 2025
@bencehornak
Copy link
Author

Sorry folks for the delay, now I'm back from holiday!

@joaopgrassi I have extracted the changes to device.id to #1951 as you requested, this PR only contains the addition of the app.installation.id attribute.

@lmolkova, @LikeTheSalad, @bidetofevil I believe that I have addressed all of your remarks, I would appreciate your feedback on the new additions.

Copy link

@LikeTheSalad LikeTheSalad left a comment

Choose a reason for hiding this comment

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

Thank you! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

Successfully merging this pull request may close these issues.

device.id vs installation.id on Android and iOS
4 participants