What did you do this week?
- I worked on two issues this week:
- I removed
options
parameter from and updated definitions for existing zip operations as per the feedback from my mentor. [1,2] - Other than that I cleaned up and also optimized some code here and there. [1,2,3,4,5,6 & 7]
- Starting with Point 1, I implemented operations for creating and inflation of tar archives, also implemented their respective test cases.
- The test for
extract_tar_archive
was especially a bit too tricky, writing it correctly took a considerable amount of time (more on that later). - Also added compression operations to support
.gz
,.bz2
&.xz
formats with their respective test cases. - Moving on to Point 2, I implemented one of the five parts of enhancement issue related to it, i.e. added support for commits related to tests by implementing a body mutation.
- I also optimized the code to avoid multiple calls to
_get_all_exts()
, by making a class attribute for it's output. - Last but not the least, I updated test cases to make sure that the linting support for tests related body mutation is working correctly.
What is coming up next?
- Updating the Model base class to support archive storage using these operations would be my top priority for the coming week.
- Obviously this would break a considerable number of models and would also call for implementation of new test cases and a number of small tweaks.
- Other than that I would continue to work on the commit linting issue as per the enhancement checklist.
Did you get stuck anywhere?
- Yes, while implementing the test case for
extract_tar_archive
, I ran into a lot of issues, mostly consisting of problems of faulty patching and problems regarding getting the right mock calls in place. However, I was able to solve the problem successfully after investing almost a complete day in it. - Deciding on how to implement the compression algorithms, also took some time, I wasn't really stuck on it, but it took some tome and discussion with my mentors to come to a conclusion.
- Initially I thought I would give a compression option with the archive operations itself but as per the feedback from my mentor I wasn't supposed to implement options for now.
- Also, binding the compression with archiving operations would not have been the best thing to do, implementing compression as an operation itself was the best way which I and both of my mentors agreed as it is comparatively more modular and flexible approach at solving this issue.
- I still have not been able to resolve the MacOS related CI error in the commit linting issue, I would be discussing that with my mentor in the upcoming weekly sync.