TedLawson's Blog

Week 18 and 19 Review

TedLawson
Published: 10/10/2023

Accomplishments:

These last two weeks I was able to get all but one of my open PR's merged into the master Vorta branch. The biggest accomplishment here was competing the Test Suite Project, successfully getting the test suite to cover 80% of the vorta code base. This project took two months, and was a huge accomplishment to complete. In this project, I learned how to design a test plan, which I outlined in the original FR here. After designing the test plan, I identified areas of the code that needed the most help, and areas of the code that were the most important to test. I started with adding tests for archive and utils functions that were not previously tests, as these are core to Vorta. I then slowly expanded to cover more areas of the codebase that had opportunity for coverage. As I went through each test file, I also added parameterization where applicable to increase the number coverage of each test by adding additional positive and negative test cases. I also reorganized as I went, and created some pytest fixtures to often-repeated test setups. Finally, I added in test descriptions for each new test I created, and added in descriptions for tests that did not already have them. Now that this work is done and the coverage is at 80% of the code base, the project is officially complete.

I was also able to complete several smaller PRs that had been hanging in limbo.

 

Challenges:

The biggest challenge I am facing right now is completing the final GSoC project, Implement Profile Sidebar, now that I have officially started work at Apple. I worked hard to complete most of the PRs before work started this past Monday, but was unable to make much progress with all the work I am doing with onboarding at my new job.

 

The week ahead:
The sidebar project is in its final stages of development. I have talked with my mentor Manu about the remaining tasks needed, and I will work to implement these this week. Once the profile sidebar works as intended, the only remaining step will be to rewrite some elements of the testsuite that involve the profile selector to ensure they do not break with the changes I implemented. After the profile sidebar works and looks correct, and the tests are updated, the project and GSoC will be complete! 

View Blog Post

Week 16 and 17 Review

TedLawson
Published: 09/25/2023

Accomplishments:

The last two weeks I had been interviewing for a job with Apple, and I got the position! This process took some of my time away, however I communicated this with my mentor, Manu, and also had some smaller wins in this time. First, I got two PR's merged. One was the PR that fixed an issue I discovered during my test coverage project: an issue with the Archive action buttons and the context menu buttons not being in sync, allowing for users to delete multiple archives at the same time. I outlined the bug here, and my PR that fixed the bug can be found here. Another PR I got merged in addressed a different issue I found during my testing coverage project, an issue in which users were able to do in-line renaming of archives while a background action was occurring, leading to various issues. This issue can be found here, and the PR I made to correct the issue can be found here. In addition to these PR's I also made various improvements to the SSH box PR, and continued work on the Profile Sidebar project

 

This week I had a productive meeting with Manu, where we discussed the current open PR's and the progress needed to get them to a place of merging. For the profile sidebar, we discussed some adjustments that can be made to the profile options buttons as well as the misc button. We also discussed the remaining work on the test suite improvements and SSH Box PR.


Challenges: 

The biggest challenges I faced this week were balancing my interview prep time and GSoC work. Now that I got the job offer and have completed all on-boarding work relating to the job, I can focus on the GSoC projects remaining before my start date in a couple of weeks.

The week ahead:

The week ahead will be a big one - I plan to complete all the currently open PR's and finish up the test suite project. If all goes to plan, I could even finish up the profile sidebar project, however that will likely spill into the next week or two. Once these projects are complete, I will be able to put the finish touches on the GSoC work and begin compiling things for my final submission.

View Blog Post

Week 15 Review

TedLawson
Published: 09/14/2023

Accomplishments:

This week I made headwinds into the Profile Sidebar project. Specifically, I implemented the profile selector into a sidebar, removed the old profile selector GUI elements, updated the profile add/delete buttons to be separate and right aligned from the profile import/rename buttons. Additionally, I created a new "Misc" button that sits below the profile selector in the sidebar. This button opens a new interface I created that houses universal application options such as "settings" and "about". It will also eventually house a "repository management" tab, however that will be implemented in a separate PR. The idea behind these changes is to separate out the profile specific interface "archives, sources, repository, schedule" from the universal items "settings, about, repository management".

Challenges:

I had never before created a ".ui" file. so this was challenging to figure out for the first time. I was able to reuse the misc_tab ui page for the new settings tab, however I created the "about" tab UI from scratch. I used the other .ui files as reference and put the about tab together in a way that looks clean and formatted well.

The week ahead:

This week I am going to put the finishing touches on the "about" tab and begin working on the "repository management" tab (which will be a separate PR). Also, I have a few PRs open for bugs that I discovered while testing Vorta, and I will continue to work on these until they are in a position to get merged into master. 
 

View Blog Post

Week 14 Review

TedLawson
Published: 09/05/2023

Accomplishments:

This week, I worked with my mentor and other project contributors to finalize a design for the profile sidebar. Additionally, I identified 3 bugs while testing Vorta this week. For each bug I discovered, I filed a bug report outlining the issue which included a brief description, a video screen capture of the bug, steps to reproduce, as well as relevant environment variables and log outputs. I also created PR's for each of these bugs that address the issues discovered and corrects them. Here are the bugs I discovered while testing, and the PR's I created to address them:

1. The archive tab has buttons for "mount" "delete" "rename" etc, and when background actions are occurring these buttons get disabled. These actions are also available in a context menu when a user right-clicks on an archive. I discovered that the archive buttons and the context menu buttons are not disabled in sync, meaning that sometimes actions are left available in the context menu when they should be disabled due to a background operation in progress. This could lead to issues such as operations being queued for archives that have since been modified or deleted, and causes failures. To address this, I bound the toggle state of the archive tab buttons to those of the context menu buttons, such that they will always be enabled or disabled in sync. This PR can be found here: https://github.com/borgbase/vorta/pull/1793

2. Similar to the previous issue, I found that the new "in-line rename" feature is left available even during a background operation. If a user renamed an archive during a background operation, it leads to visual bugs where, in some cases, all archives get deleted. In other cases, all archives get renamed to the newly entered name. To address this issue, I added a check in the method that handles the in-line renaming to only function when the rename button is enabled. This adds consistency to the rename behavior, and avoids the visual bugs that could be caused. My PR for this issue can be found here: https://github.com/borgbase/vorta/pull/1791

3. One final issue I discovered while testing had to do with the SSH Key combobox. I was testing the "add ssh key" feature when I discovered newly added keys were not populating in the box until after Vorta restarts. I found this had to do with the 'add ssh key' dialogue box not closing when the user clicks 'generate'. Instead, the box stays open to inform the user the key has been generated, and then the user has to click 'cancel' to close the box. To fix this issue, and make the behavior similar to other interactions with the SSH options, I added functionality that lets the 'add ssh key' box close after the user generates a new key, and displays the success or failure text in a message box, similar to success and failure message when the user copied ssh keys to clip board. This PR can be found here: https://github.com/borgbase/vorta/pull/1802

Challenges:

This week I faced interface design challenges. Having spent most of my time in the test suite, I am less familiar with how to implement UI changes that integrate well with the rest of the application. YF-projects had good advice for me: 

1. Recognizable patterns repeated throughout the application usually improve the UX

2. Try to avoid cluttering the inference 

His advice helped me decide how to order the buttons/context menu actions in the archive tab. He and Manu also offered advice on the profile sidebar, and we now have a good idea of what it will look like such that I can get started on that project.

The week ahead:

This week I am going to focus my time on the profile sidebar project. My goal is to get the profile sidebar GUI elements created, and the old sidebar elements removed. From there, I will begin working on adding functionality to the elements.

View Blog Post

Week 13 Review

TedLawson
Published: 08/29/2023

Accomplishments:

This week I communicated with my mentor Manu that I was fielding a couple of job interviews, and as a result I was not able to accomplish as much as I normally would in a given week. That being said, I did have a couple of wins worth mentioning. Starting off, I was able to get the reduced test workflow PR merged into master last week. This has worked well in practice, and significantly reduces the number of jobs done on each push/PR. Specifically, push/pull requests now run a total of 11 checks, compared to the previous 39 that were occurring before. Push/Pull requests to master branch have had the comprehensive set of checks left in place, and the workflow I edited also leaves in place the ability to run a manual comprehensive check at any time. The result here has been that most triggers (normal push/pull requests to a branch other than master) run a thorough set of tests, they are no longer timing out, and the resource use/execution time has been reduced. 

This week I also created a PR for the final bits and pieces of the test suite revisions. I have created a few more tests, increased coverage from 77% to 79%, and generally "cleaned up" where I could. 

Challenges:

This week I did not face any challenges. Mostly due to the reduced workload as I focused a majority of my time on interview prep, as communicated with my mentor.

The Week Ahead:

In the week ahead, I have some additional interview prep that I have communicated with Manu. I am ready to begin working on the next project, which involves moving the profile selector and tab widget to a sidebar, and generally rethinking the main window interface. I will create a FR and mockups to brainstorm ideas and receive feedback from the community before beginning work in earnest.

View Blog Post
DJDT

Versions

Time

Settings from gsoc.settings

Headers

Request

SQL queries from 1 connection

Static files (2312 found, 3 used)

Templates (28 rendered)

Cache calls from 1 backend

Signals

Log messages