Skip to content

Removing legacy remote-settings client#7186

Open
alexcottner wants to merge 7 commits intomozilla:mainfrom
alexcottner:rs-client-updates
Open

Removing legacy remote-settings client#7186
alexcottner wants to merge 7 commits intomozilla:mainfrom
alexcottner:rs-client-updates

Conversation

@alexcottner
Copy link
Contributor

@alexcottner alexcottner commented Jan 28, 2026

To-Do

  • Remove old remote-settings client, which uses endpoints and logic that are not supported
  • Rename objects/structs to avoid old vs new naming
  • Update any app-services components that were using the legacy client
  • Update implementations in consumer applications

Follow-ups

  • Increase poll frequency of new remote-settings client
  • Add v2 service support
  • Add signature agility
  • Add glean telemetry

Pull Request checklist

  • Breaking changes: This PR follows our breaking change policy
    • This PR follows the breaking change policy:
      • AFAICT - this will not break any consumer applications
  • Quality: This PR builds and tests run cleanly
  • Tests: This PR includes thorough tests or an explanation of why it does not
  • Changelog: This PR includes a changelog entry in CHANGELOG.md or an explanation of why it does not need one

@alexcottner alexcottner force-pushed the rs-client-updates branch 5 times, most recently from b25281a to 211031e Compare January 29, 2026 19:57
@alexcottner alexcottner force-pushed the rs-client-updates branch 5 times, most recently from 45266e4 to 5a8684c Compare February 11, 2026 20:33
@alexcottner alexcottner changed the title WIP - Working on remote-settings client compatibility Removing legacy remote-settings client Feb 11, 2026
@alexcottner alexcottner marked this pull request as ready for review February 11, 2026 20:44
bendk
bendk previously requested changes Feb 12, 2026
Copy link
Contributor

@bendk bendk left a comment

Choose a reason for hiding this comment

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

This is looking good overall, but I had a couple suggestions. Also, I think the branch needs a rebase or something, because there's some extra commits here that don't seem like they belong.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm confused by this one, wasn't this already merged?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Rebased

pub server: Option<RemoteSettingsServer>,
}
// temporary alias for compatability
pub type RemoteSettingsConfig2 = RemoteSettingsConfig;
Copy link
Contributor

Choose a reason for hiding this comment

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

Is anyone using this? It seems like this could only affect Rust consumers since it's not exported via UniFFI, but those are all getting updated by this PR right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah, perhaps I'm misunderstaning something. But I found this reference in kotlin in firefox and thought I would need a temporary alias to transition things.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think your reference is correct, but I don't think the type alias will prevent the breaking change. For that to happen, UniFFI would also need to create a type alias in the generated code and I don't think there's a good way to do that currently.

I think the best solution is to just accept the breakage and create PRs for iOS and Desktop/Android that replaces RemoteSettingsConfig2 with RemoteSetttingsConfig. Sorry about this step, it's pretty annoying, but the replacements should be pretty straightforward at least.

);
Ok(())
} else {
Err(Error::MissingRecords)
Copy link
Contributor

Choose a reason for hiding this comment

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

If this is the only place where we're returning MissingRecords, then I don't think we need a new variant for it. I think it's safe to just call unwrap(), since get_records should always return a Some value when sync_if_empty=true is passed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@mergify mergify bot dismissed bendk’s stale review February 12, 2026 22:03

The pull request has been modified, dismissing previous reviews.

@alexcottner
Copy link
Contributor Author

Rebased and adjusted based on PR feedback. Still have an open question on the config alias.

@alexcottner alexcottner requested a review from bendk February 13, 2026 16:25
Copy link
Contributor

@bendk bendk left a comment

Choose a reason for hiding this comment

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

The changes in this repo look good to me, so I'm approving this one. However, don't merge it before you have PRs ready for the other repos since I don't think there's a way to avoid making this a breaking change.


### Remote-Settings
* Removed old remote-settings client code that is no longer used.
* Started renaming `RemoteSettingsConfig2` to `RemoteSettingsConfig`, leaving an alias for the prior struct
Copy link
Contributor

Choose a reason for hiding this comment

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

Assuming I'm right about the alias, you'll need to update this line.

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.

2 participants