Consider using namespace qualified tagged literals
RickMoynihan opened this issue ยท 5 comments
I appreciate the succinct nature of the namespace free reader tags e.g. #ref
but ideally these tags would be namespaced #juxt.aero/ref
or perhaps just #aero/ref
. clojure.org has this to say:
Reader tags without namespace qualifiers are reserved for Clojure.
And the edn-format spec re-echoes the same sentiment:
Tag symbols without a prefix are reserved by edn for built-ins defined using the tag system.
There may already be a collision here too, as integrant also defines #ref
. How would one use both aero and integrant together?
See also similar bug on integrant: weavejester/integrant#12
I agree and would vote for #aero/ref.
We could provide a reader option that will run in 'deprecated mode' that will match on unnamespaced keywords, giving people a compatibility option.
๐ to the compatibility option and agree that ^:deprecated
flags would make sense on the old functions too.
I second this issue!
I found that this is a temporary solution to using integrant ref with the aero ref
(binding [*data-readers* {'ig/ref ig/ref}]
(aero/read-config (clojure.java.io/resource "config.edn")
{:profile profile})))
This way, I can use ig/ref in my config and it will resolve.