WEEK 6: Code reviews, relining and crush challenges
===================================================
.. post:: August 6, 2024
:author: Wachiou BOURAIMA
:tags: google
:category: gsoc
Hello everyone,
As my Google Summer of Code (GSoC) 2024 journey progresses, week6 has brought me a series of technical challenges and accomplishments. My main focus has been on code reviews, rebasing and commits squashing, with a few notable lessons learned along the way.
Code Reviews and Merging ``Pull Requests``
-------------------------------------------
One of the main activities this week was receiving and addressing feedback on several of my pull requests. Notably, my mentor `Serge Koudoro `__, reviewed and merged the PRs related to the ``warn_on_args_to_kwargs`` decorator and the application of the ``warn_on_args_to_kwargs`` decorator across various modules. The merging of these PRs was a critical step in ensuring that our codebase adhered to the project's evolving standards for clarity and maintainability.
Rebasing and Squashing: Overcoming Challenges
---------------------------------------------
- I performed rebasing and squashing to integrate the latest changes and consolidate commits. This process was challenging due to several conflicts that arose. Resolving these conflicts required a deep dive into Git’s functionality, including:
- **Conflict Resolution:** Manually resolving merge conflicts that affected several files.
- **Understanding Git Operations:** Gained hands-on experience with rebasing and squashing, which improved my grasp of version control workflows.
- **Commit Consolidation:** multiple commits into a single commit to streamline the commit history and enhance readability.
Here are some of the Git commands I used during the rebasing and squashing process:
.. code-block:: bash
# Rebase the branch onto the upstream/master branch
git rebase upstream/master -xtheirs
# Squash the last "n" commits into a single commit
git rebase -i HEAD~n
# Continue the rebase process after resolving conflicts
git rebase --continue
git rebase --abort
# Amend the last commit with new changes
git commit --amend
# Push the changes to the remote repository
git push origin branch_name --force
- Merged PRs:
- `warn_on_args_to_kwargs`: https://github.com/fury-gl/fury/pull/888
- `actors`: https://github.com/fury-gl/fury/pull/898
- `animation`: https://github.com/fury-gl/fury/pull/899
- `data`: https://github.com/fury-gl/fury/pull/900
- `shares`: https://github.com/fury-gl/fury/pull/901
- `ui`: https://github.com/fury-gl/fury/pull/902
Technical Insights and Lessons Learned
---------------------------------------
- **Version Control Mastery:** Through the rebasing and squashing process, I gained a deeper understanding of Git’s capabilities and the importance of maintaining a clean commit history.
Acknowledgements
----------------
I want to extend my thanks to my mentor `Serge Koudoro `__, for his detailed feedback and guidance. Your support has been crucial in refining my work. I also appreciate the constructive comments from my peers: `Iñigo Tellaetxe Elorriaga `_, `Robin Roy `_, `Kaustav Deka `_, which have been instrumental in improving the quality of my contributions.
Did I get stuck anywhere?
--------------------------
While the rebasing and squashing process presented challenges, I was able to overcome them with the help of my mentor `Serge Koudoro `__ and online resources and documentation.
- `How to Squash Commits in Git `_
- `Git: Theirs vs Ours `_
- `How to squash and rebase in git `_
The experience has enhanced my Git proficiency and prepared me for future code management tasks.
What's next ?
-------------
In the week 7, I plan to:
1. Review Adjustments: I'll be reviewing the feedback provided by my mentor `Serge Koudoro `__, on the latest changes to ensure that everything meets ``FURY``'s coding standards.
2. Finalizing Lazy Loading: Once the reviews are completed and approved, my mentor `Serge Koudoro `__, will merge the PR related to the lazy loading implementation. This will mark a significant milestone in optimizing the FURY codebase.
3. Sphinx Warning Fixes: I will start addressing Sphinx warnings related to typos in the blog posts to improve the documentation quality.