We have to decide the public interface of EKO, for the following reason: at the moment, everything is potentially public.
In this way, we won't ever have a v1.0.0, since it is impossible that all internal details will be forever stable.
We also have to decide how to discriminate the public interface from the non-public one. Essentially, I know two ways:
- Python underscore convention: if a name is led by an underscore, e.g.
_myfunc, then it is private
- Numpy export style: everything and only what is accessible in the top-level scope is public, i.e.
import numpy as np
np.myobj
then myobj is public
The point about majors is preserving backward compatibility, if we only add stuffs to the public API we won't need a new major ever.
So new major are needed only for refactoring the public API. Otherwise, EKO will be v1.x.y forever :)
the list of exposed features should be (at least):
We have to decide the public interface of EKO, for the following reason: at the moment, everything is potentially public.
In this way, we won't ever have a v1.0.0, since it is impossible that all internal details will be forever stable.
We also have to decide how to discriminate the public interface from the non-public one. Essentially, I know two ways:
_myfunc, then it is privatemyobjis publicThe point about majors is preserving backward compatibility, if we only add stuffs to the public API we won't need a new major ever.
So new major are needed only for refactoring the public API. Otherwise, EKO will be v1.x.y forever :)
the list of exposed features should be (at least):
run_dglap: let's keep this our default entry pointmake_lambert_gridversionThresholdAtlas,interpolation: needed byyadismCouplings,basis_rotation: needed byyadism,pineko, and benchmarkscompatibilitystuff for NNPDF and benchmarks