Shapes - 27/05 to 31/05

leovictorsr
Published: 06/04/2019

Hello everyone!

This week I started to shape what my CLI will be inside the spidermon project. All the work from the previous week were started with implementing the basic structure for the commands. I also started writing tests for the commands so this way we'll have my code tested and ready to deploy if needed.

A lot of my time this week I spent reading stuff and writing classes that will be used in the future. i feel I can speed up my coding process, that way I won't be short of time at the end of the cronogram.

 

That's it for the week! See you next time.

Leonardo Rodrigues.

View Blog Post

Weekly check-in - 27/05 to 31/05

leovictorsr
Published: 06/04/2019

Hello everyone!

Time for that weekly check-in on the Spidermon project.

1. What did you do this week?

This I week I started by including our library, Click, to develop de CLI. I also developed the first command, `spidermon version`, and thought on a test structure for the CLI using the Click.testing module.

2. What is coming up next?

Next week I will be developing the setupmonitors command. I will also have to implement a Monitor Suite inside Spidermon.

3. Did you get stuck anywhere?

I didn't get stuck anywhere. I just had to read more stuff about the libraries and guidelines for the code.

That's it for the week! See you next time.

View Blog Post

Heat up! - 20/05 to 24/05

leovictorsr
Published: 05/28/2019

Hello everyone!

This week was awesome. I got to learn TDD and I got to code into more detailed Spidermon's code.

I learnt TDD from an online book that is actually a good physical book using unittest and Django (link here). All of this knowledge is transferable to other libraries in Python and to other languages I may come to use in the future, so this added a lot for my developer skillset.

On Spidermon's, I got to read, understand a more complex issue, pre-plan my approach to code and apply my thoughts on a commit and submit a new pull request. This part not only taught me some stuff but made me aware of the coding process with an open source project. Getting to talk with my mentors about the issue and plan stuff makes me feel fulfilled and motivated to do a good work.

I didn't have any big struggles though. My main struggle was my schedule because I had UNICAMP duties this week but they didn't affect my overall productivity.

During PR I had to decide to change a previous design for the testing part of a monitor and I still am insecure with my decision-making. I know I can appreciate and qualify different solutions, but I am also want to my decision to be the best, and that affects my perception of my choices. That's something I'll definitely work with and get better during GSoC, because I know this is just me being in something new, I don't want to mess up other people works.

 

That's it for the week! See you in the next :)

Leonardo Rodrigues.

View Blog Post

Weekly check-in - 20/05 to 24/05

leovictorsr
Published: 05/28/2019

Hello everyone!

Time for that weekly check-in on the Spidermon project.

1. What did you do this week?

This week me and my mentors decided I had 2 things to be ready for the start of coding period: TDD learning, and to learn how to code on Spidermon; and that's what I did. I took the free course called Obey the Testing Goat, and commit code for an issue on Spidermon's GH page. It's still on WIP because we have to decide details on implementation, but you can see the PR here.

2. What is coming up next?

Next week I will build up the foundation for the Spidermon's CLI. That means I have 4 tasks:

1. Include Click as a dependency and make sure it is installed together with Spidermon.

2, Add test capabilites on the CLI code (using a plugin for pytest library)

3. Update the Spidermon setup to add spidermon to the user's binary path

4. Write and test the first spidermon command, spidermon version, following the Scrapy library convention

3. Did you get stuck anywhere?

I got stuck with the PR. I had to break a single test for a percentage that globalized all fields in sub-tests for each field, and the code didn't support multiple assertions (so it just raised the first and forgot the rest). I overcome this capturing the AssertionError exception and printing it with the traceback. I'm still waiting for my mentors feedback.

That's it for the week! See you next time.

View Blog Post

Baby steps - 13/05 to 17/05

leovictorsr
Published: 05/20/2019

 Hello everyone!

This week I had the first taste of the GSoC experience. After the first call with my mentors, I had a lot to think on and that's a good thing to me.

I started by studying the library we'll work on, called Click, and even though I had researched about it before, getting to know the details under the library and having ideas to implement on my project was awesome. One of the requirements we had for the CLi is to have it as scalable and modularized as possible (as good code should be), and we proceed to have some checkpoints to fill so we could ensure our CLI was according to the design. One of the points we discussed were the use of a dict so we could have new commands for the CLI without the need of writing much code and new prompts, and I discovered a way of conciliating this dict with the implementation using Click.

Then I proceed to study the Spidermon code. At first, I thought it would be a good idea to have another PR, this time a little bit more advanced, but I understood that I needed more knowledge of the overall Spidermon code, so I decided upon reading code for the parts I am not comfortable with, and I'm still in this process right now. The PR will then be my objective for this week.

One thing that I really want to and my mentors agreed with is the good writing of tests, or simply using TDD for our CLI. I'm familiar with writing tests but I definitely want to have it improved for our project, so I know I'll have to study TDD before the conclusion of the Community Bonding period. I intend to do that this week and the next one, because I got some books recommended to me and I want to read them.

 

That's it for the week, until the next one :)

Leonardo Rodrigues.

View Blog Post