Closed callum-oakley closed 1 year ago
I was speaking to @lkitching about the logging stuff on #325, and it reminded me that one issue with this PR is that when I did the initial prep work, I just did the minimum to get it working and replaced all the logging calls with println
's.
I was thinking we might want to not merge his logging PR, and modify this one such that some of the common entry points provide a way for API users to bring their own logger
e.g.
(csv2rdf/whatever-the-entry-point-is "my.csv" "my.json" {:loggers {:warn (fn [& args] (apply log/warn args) :info ,,, }})
The CLI app could then supply those by passing in println perhaps with some additional wrapping so that stderr / stdout are used?
It would be good to fix this before merging.
@RickMoynihan turns out csv2rdf.logging
already provides a "bring your own logger" interface in the form of the with-logger
macro, so I've hooked a println logger in there only when running under graalvm.
Rebases the changes from #54 on to master, and sets circle up to build native images and publish them as a release for each tag. For example: https://github.com/Swirrl/csv2rdf/releases/tag/release-test-23
Does not address testing of the native builds, so that's something we might want to address in a future PR.
Also does not provide arm64 builds for macOS (circle CI doesn't have an arm environment so we can't build them there currently) nor windows builds (does anyone want those? I suspect you can run the linux builds on windows anyway with wsl)
Adds
bin/generate-nativecfg
which runs csv2rdf against the test files inw3c-csvw/tests
to trace reflection etc, as described in Assisted Configuration with Tracing Agent.closes #54
also cherry picks #325 and
closes #322