Skip to content

feat(router-registry): disambiguate NotFound vs AllVersionsDeprecated in get_latest#170

Merged
Maki-Zeninn merged 4 commits intoMaki-Zeninn:mainfrom
Markadrian6399:feat/registry-all-versions-deprecated-error
Mar 30, 2026
Merged

feat(router-registry): disambiguate NotFound vs AllVersionsDeprecated in get_latest#170
Maki-Zeninn merged 4 commits intoMaki-Zeninn:mainfrom
Markadrian6399:feat/registry-all-versions-deprecated-error

Conversation

@Markadrian6399
Copy link
Copy Markdown
Contributor

@Markadrian6399 Markadrian6399 commented Mar 30, 2026

Summary

Previously both an unknown name and a fully-deprecated name returned NotFound, making it impossible for callers to distinguish the two cases.

Changes

New error variant

  • AllVersionsDeprecated = 10 added to RegistryError

Updated functions

  • get_latest: returns NotFound when the name has never been registered, AllVersionsDeprecated when the name exists but every version is deprecated
  • get_latest_with_constraint: same disambiguation applied to the no-constraint path

Tests

  • test_get_latest_all_deprecated_returns_all_deprecated — new test asserting the new error
  • test_get_latest_returns_not_found_when_all_deprecated — updated to expect AllVersionsDeprecated
  • test_get_latest_all_deprecated_fails — updated to expect AllVersionsDeprecated

Pre-existing fixes

  • result.unwrap().unwrap() corrected in constraint tests (double-wrapped try_* return)

All 29 tests pass.

closes #160

- Add InvalidDescription = 17 error variant
- Guard queue against empty description strings
- Add test_queue_empty_description_fails and test_queue_nonempty_description_succeeds
- All 37 tests pass
- call_result event data changed from (target, function, success)
  to (caller, target, function, success)
- Add test_call_result_event_includes_caller
- Document breaking change in CHANGELOG.md
- All 19 tests pass
- Add AllVersionsDeprecated = 10 error variant
- get_latest: returns NotFound for unknown names, AllVersionsDeprecated
  when name exists but all versions are deprecated
- get_latest_with_constraint: same disambiguation for no-constraint path
- Add test_get_latest_all_deprecated_returns_all_deprecated
- Update test_get_latest_returns_not_found_when_all_deprecated and
  test_get_latest_all_deprecated_fails to expect new error
- Fix pre-existing: extern crate alloc, entry.unwrap().unwrap() in
  constraint tests
- All 29 tests pass
@drips-wave
Copy link
Copy Markdown

drips-wave bot commented Mar 30, 2026

@Markadrian6399 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Maki-Zeninn Maki-Zeninn merged commit 6e9523c into Maki-Zeninn:main Mar 30, 2026
1 check failed
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.

add get_latest_non_deprecated vs get_latest disambiguation to router-registry

3 participants