Hey,
This email is meant to provide an overview of the plans regarding the reorganization of the components in the DataValues.git repository.
Current component situation:
* DataValues * ValueParsers, depends on DataValues * ValueValidators, depends on DataValues * ValueFormatters, depends on DataValues * DataTypes, depends on all the above * ValueView, depends on all the above
All of these are bundling inheritance hierarchies and are both defining interfaces as well as complex implementations.
Reorganization plans:
* DataValues, will hold interfaces, exceptions and trivial implementations of current DataValues * DataValues interfaces (still need a good name for this), will hold interfaces, exceptions and trivial implementations of ValueParsers, ValueFormatters and ValueValidators. Depends on DataValues * DataValues implementations (still need a good name for this), will hold common non-trivial implementations of the interfaces defined by the above two components * DataTypes, unchanged, now only dependent on DataValues and DataValues interfaces * ValueView, unchanged, now only dependent on DataTypes, DataValues and DataValues interfaces
Dependencies are thus minimized and users are no longer forced to depend on unstable concrete classes for no reason. Coincidentally the number of components also drops by one.
Git repository wise, everything is currently in a single repository. Each component will go into its own repo, with the exception of ValueView and DataTypes, which we'll at least initially put together. This means creation of 3 new git repos. The DataTypes git repo has already been created and we are awaiting removal of the old DataTypes code from DataValues.git which currently is blocked by WMF configuration update. Once this is done we can proceed with the remaining two repos.
When this reorganization is done and the components reside in their own repos, we can make the two abstract ones releasable. These are the ones most dependent upon, and some of the current users have their own releases blocked due to the lack of any released version of their DataValues dependencies.
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. ~=[,,_,,]:3 --
Hey,
The naming questions for two of the new components have not been resolved yet.
DataValues interfaces (still need a good name for this), will hold
interfaces, exceptions and trivial implementations of ValueParsers, ValueFormatters and ValueValidators. Depends on DataValues
I'm going with DataValuesInterfaces for now, though am not happy with it. Better naming suggestions are very welcome in the next few days.
DataValues implementations (still need a good name for this), will hold
common non-trivial implementations of the interfaces defined by the above two components
Same thing here. Going with DataValuesImplementations for now, though hoping someone finds a better name.
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. ~=[,,_,,]:3 --
Hey,
The reorganization into new components has been completed in the DataValues.git repo itself.
https://gerrit.wikimedia.org/r/#/c/81966/
There are a few classes that might still move from one to the other, pending discussion. Those will be local changes not affecting the overall picture much though.
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. ~=[,,_,,]:3 --
wikidata-tech@lists.wikimedia.org