Skip to content

Use Republic.jl to forward subpackage APIs#3103

Draft
AntonOresten wants to merge 2 commits intoJuliaGPU:masterfrom
MurrellGroup:republic
Draft

Use Republic.jl to forward subpackage APIs#3103
AntonOresten wants to merge 2 commits intoJuliaGPU:masterfrom
MurrellGroup:republic

Conversation

@AntonOresten
Copy link
Copy Markdown
Contributor

I recently created Republic.jl to replace and extend Reexport.jl. After jumping the gun on v1 (which had questionable inheritance semantics) I'm now much more confident in v2, taking inspiration from the pre-1.11 @public machinery from #3058.

The previous code has special handling for GPUToolbox.jl's enums, so this PR relies on GPUToolbox switching to Republic.jl as well for pre-1.11 enum support.

This would be my first real stress-test of Republic, but I don't see any potential problems yet.

@maleadt
Copy link
Copy Markdown
Member

maleadt commented Apr 16, 2026

Interesting! I'd be fine with depending on Republic.jl for this. Any reason you went with a new package, and not an extension to Reexport.jl? Especially seeing the s/@reexport/@republic reexport=true/.

@AntonOresten
Copy link
Copy Markdown
Contributor Author

AntonOresten commented Apr 16, 2026

Reexport.jl has a very clear scope, and the public keyword introduces a different dimension — forwarding non-exported names, cross-version tracking, composing inheritance (implicit imports) with re-exporting. Bolting that onto Reexport felt like stretching it beyond its purpose. Also the name was too good to pass up.

There could definitely be @reexport -> @republic reexport=true for convenience though. I also think MurrellGroup/Republic.jl#9 is a missing piece for expressiveness.

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