Well on week #3, I wasn’t able to do much work due to the schoolwork load of this month. Just like every other participant of GSoC, I dedicated half of my days to studying and writing to prepare for my finals. Aside from that, I could review the ideas related to the upgrade/update process on the project. I met with my mentors to sync-up with current events related to that week work, but since not much work had been done on the repo, it seemed unnecessary.
What I worked on week #2
For week #3, most of my time was invested in investigating which
upgrade/update process would be better for the project. It’s
stipulated has the work for week #4, but before that I did the
research based on
Catalyst::Scripts*, catalyst.pl, Catalyst::Helper.
So what my mentors and me decided, was to mimic the scripts
organization from Catalyst. From catatyst.pl, one feature did made me
think of the possibility of implementing such in our script
bin/dancer. That feature works around writing new updated files with
the extension .new, that way the user can still have its old files,
and chose which solution is best, or start hacking the migration of
such deprecated functions, method, file into a solution the user might
find best fit for his application.
Dancer’s developers and contributors write a lot of code that works
around with what we call, “automagically”. Which is what I was looking
for my project, an automatic yet not so stressful way to
upgrade/update outdated files, and that works for almost every
situation. That way is a magical and automatic solution. What I
decided to go for as of this moment of the project, is to use or write
an algorithm that would parse each file in the lib, the config file,
and the environments files, to look for outdated subs and functions.
So this is where the upgrade/update process stands as of right now. So
for a start we decided, that I could use a module, and if that module
seems solid and lean, we might stick to it. But since Dancer depends
on very basic modules, I don’t want to add more to this well thought
line of decisions of what works and what doesn’t for Dancer. However,
sawyer suggested that I could write the portion that we need for the
So if you know of such module, or you have worked on string-to-string
comparison with a solid module, please let me know. Suggestions are
welcome, and they really help.
For week #4, the following must be accomplished:
- Write the upgrade/update methods.
- Write the tests for the upgrade/updates methods.
This means I will be back on writing code to
Dancer::Script and add
a quick tweak to
bin/dancer script. Also, to work again with tests,
is what keeps me more motivated, I really like the whole test then
write code as you go workflow, and I would like to try it more after
GSoC is over. But for that I will need a solid base with testing. So
more code, more tests, more coffee.
So to every mentor and participant, have a great week #4, and to everybody still working they way through finals, best of luck and give yourself the time to relax. Cheers.