Week 3 of GSoC
Week 3 of GSoC is done! 😎🤠
The last two weeks were packed with lots of learning, programming, and of course debugging (including what is possibly the most embarassing programming mistake of my life 😅1).
I am also happy to announce that I will be attending JuliaCon 2018! This will take place during Aug. 7–11, 2018 at University College London. For a student like me, this shall be a great opportunity for learning from the best minds, seeing what else is possible with Julia, and networking. Also, it would be great to visit London 😉.
The following is a short progress report of the past two weeks’ work.
Finished
- documentation of function signatures from
Plots.jl
. - documentation of the argiment conversion functions in
argument_conversion.jl
. - further extension of the help functions,
help
,help_arguments
, andhelp_attributes
to be more detailed and robust, and to handle more input types. - extension of the help functions to print to a specified
io
stream (if unspecified ->STDOUT
). This is useful to redirect the output to a file, for example (see later).- external
help
function prints as Markdown-parsed text - internal
_help
function prints plaintext
- external
- implement
find_indices
andexample_database
functions which acceptinput_tags
as the input and has optional keyword argumentsauthor
andtitle
to further filter the results.find_indices
searches the example database for examples matching the input tags, and returns the indices.example_database
returns the entries associated with the input tags and prints the source to the REPL by overloadingBase.show
on theCellEntry
type.
- rewrite docstrings for plotting atomics functions
- automatically generate an overview Docs page of all plotting atomics functions in
Makie.jl
including their function signatures and attributes - automatically generate an Docs page (examples gallery) of all examples sorted and cross-referenced by
tag
, including example code and generated plots (plots currently not working—see TODOs section).- implement an internal
_print_source
function that prints the source code of the plot example, including specifying the code flavor in a fenced block (e.g. “```julia”)
- implement an internal
- pushed commits related to the above, fb0f166, 9d2218e, e01b10d, 6c47286, a453cf7, 1fd65fa, 9d5e7e9, 223e5b6, 888479d, 31f482a, 57d8505, 62159ef, and 5cf47ad. For more commits, please see the
aw/documentation
branch. - one merged pull request for refactoring (PR #89)
- met with mentor five times in total (including yesterday).
TODOs
Some of next week’s TODOs are:
- go through the plot examples in the examples database and test them; fix the non-functioning ones
- automatically generate a detailed Docs page of all plotting atomics functions, including plot examples and the source code for the plots
- the source code embedding is working, but plotting is not working yet due to non-functioning backend. This should hopefully be resolved soon.
- using
Documenter.jl
’sSelectors.matcher
andSelectors.runner
to match and select specific plot examples from the examples database (for example by matching the specific example’s title).
Difficulties encountered
- misunderstandings due to incorrect assumptions during debugging – this has taught me to not rely on my own assumptions, and to improve my debugging skills!
- the backend for the plotting hasn’t been fully implemented yet, as a result I cannot do the plot export + embed in the documentation pages yet. But hopefully this will be available soon!
I would like to express my gratitude to Simon Danisch for guiding me through he past two weeks, and for helping me debug my code ^^
So, that’s it for today’s post! Onwards to the next weeks!
Image source: Google Summer of Code, CC BY-NC-ND 3.0
-
This will never see the light of day. And I will probably never hear the end of this from Simon😆. ↩