stencila / libcore

📚 Stencila core function library
Apache License 2.0
5 stars 5 forks source link

Restructure and refactor #20

Closed nokome closed 6 years ago

nokome commented 6 years ago

This is a general restructuring and refactoring of libcore. It is designed to make it easier for function authors to add, edit and test functions.

It is based on experience so far with function authoring in this library and elsewhere e.g. libdh. It is related to the move towards allowing authors to use standard function documentation syntax for their particular language (e.g. JSDoc in Javascript, Numpy docstrings in Python, roxygen2 in R). It is also related to a move towards allowing for 'dynamic loading' of functions (e.g. https://github.com/stencila/stencila/pull/504) which is useful (and motivating!) for function authors and will allow for loading of project specific functions (e.g. within a funcs folder of the project).

Rather than having separate function definition files in a defs folder, function specifications (e.g. params etc) are parsed from function source code and docstrings - this allows one file per function in the funcs folders. Rather than having multiple subdirectories for each language - we put them all in funcs so that alternative implementations sit side by side - e.g. sum.js and sum.R.

codecov-io commented 6 years ago

Codecov Report

Merging #20 into master will decrease coverage by 4.47%. The diff coverage is 94.33%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #20      +/-   ##
==========================================
- Coverage   91.22%   86.75%   -4.48%     
==========================================
  Files          16       52      +36     
  Lines         114      438     +324     
==========================================
+ Hits          104      380     +276     
- Misses         10       58      +48
Impacted Files Coverage Δ
funcs/select.js 86.95% <ø> (ø)
funcs/aggregate.js 14.81% <0%> (ø)
funcs/filter.js 95.83% <100%> (ø)
funcs/array.js 100% <100%> (ø)
funcs/is_integer.js 100% <100%> (ø)
funcs/assert.js 100% <100%> (ø)
funcs/less.js 100% <100%> (ø)
funcs/close.js 100% <100%> (ø)
funcs/not.js 100% <100%> (ø)
funcs/and.js 100% <100%> (ø)
... and 94 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 75e1bc3...b35f471. Read the comment docs.