-
Notifications
You must be signed in to change notification settings - Fork 96
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
Convert vars marked as :no-doc
in api.clj to :private
where possible
#633
Comments
Nice to have a fresh set of eyes, I'm so familiar with When they cannot be made private, feel free to move these vars to existing or new |
Here are the results of a quick analysis of vars marked as A few general findings:
After this short analysis, I categorized the Bucket 1: Very private varsThese are vars that are marked as
I recommend that all the vars in the bucket be marked Bucket 2: Semi-private varsThese are vars that are marked as
ConclusionMake everything in Bucket 1 private. Things in bucket 2 require some larger restructuring of the Etaoin code base to move duplicate definitions into common implementation-only namespaces under |
Thanks for the thorough analysis, Dave. Anything marked with Your effort here is to make it clearer what is internal for folks not familiar with I'm not at all against you proceeding, but thought I'd raise the alternative.
Sounds good to me. For bucket 2...
We had decided in the past to expose
Everything in
These might not be ideally placed, but I don't see these as "backdoor". They are just not part of the public API. They are implementation details that are used by another ns. |
Looks like |
Problem/Opportunity
There are a number of vars in
api.clj
that are marked as:no-doc
. These do not appear in the API docs, but they are still accessible to external code. Where possible, these vars should be converted to:private
(or usedefn-
if functions).Proposed Solution
Do an analysis of which vars can be converted and convert
:no-doc
to:private
/defn-
where possible.Alternative Solutions
None
Additional context
This is part of a general activity of trying to more accurately define Etaoin's public API.
Action
I'll do an analysis, comment here, and then submit a patch once there is rough agreement on which vars to make
:private
.The text was updated successfully, but these errors were encountered: