-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Siddhesh GSoC 2024 status updates #133
Comments
Date: 06/18/2024
|
Date: 06/19/2024
|
Date: 06/20/2024
|
Date: 06/21/2024 chromote testing task : Everything is done and the PR(#126) is ready to be reviewed. All the failing tests have been migrated to chromote and GitHub actions workflow has been switched to use chromote. capture screenshot in animint2pages: 1)initialized chromote session in animint2pages function. 2)chromote will be used to capture the screenshot. Trying to solve the test error (#129 (comment))
|
Date: 06/22/2024 chromote testing task : Everything is done and the PR(#126) is ready to be reviewed. All the failing tests have been migrated to chromote and GitHub actions workflow has been switched to use chromote. capture screenshot in animint2pages: 1)initialized chromote session in animint2pages function. 2)chromote will be used to capture the screenshot. Trying to solve the test error (#129 (comment))
|
Date: 06/23/2024 chromote testing task : Everything is done and the PR(#126) is ready to be reviewed. All the failing tests have been migrated to chromote and GitHub actions workflow has been switched to use chromote. capture screenshot in animint2pages: 1)added code to take screenshot using Chromote and save that as png file in temporary local directory which also has animint. working on verifying whether the screenshot is saved locally. 2)comparing chrome sessions screenshot API and chromote's screenshot API to see if one is better option over another |
hi thanks for the updates, but please avoid writing the same thing as the previous day (instead please just write what is new) |
Date: 06/24/2024 Solved failures on GitHub actions of commits to send screenshot to GitHub pages. |
Date: 06/25/2024 For chromote testing PR (#126 ), started the work of removing codes in testthat directory for browsers other than chromote as a part of final steps to fully migrate to chromote for testing. |
Date: 06/26/2024 For the screenshot task(PR #131 ), after verifying by a test that screenshot png file is there on GitHub pages, started the work to figure why screenshot file is just white. reading more about dynamic html because that might be the reason why screenshot of ghpages test is not taken properly by directly passing URL of temporary directory in chromote screenshot API |
Date: 06/27/2024 for chromote testing task (PR #126), completed the work of deleting the code for browsers other than chromote and did commits of all the files. |
Date: 06/28/2024 PR #131 , solved the issue of blank screenshot by starting a server which points to local directory which has dynamic html and taking screenshot by navigating to local host. |
Date: 06/29/2024 for PR #131 , the server pointing to temporary local directory to handle dynamic html for taking screenshot is working and screenshot is taken properly. but now I am facing error when I try to run the test again because when server tries to start again the port is busy because previous server has not been terminated. trying to figure out how to do that. I faced this error on my Mac and not on my windows. Maybe that's because windows is automatically terminating the inactive server process to free the port while Mac is not. |
Date: 06/30/2024 for PR #131 , had a meeting with @nhintruong and guided her to integrate magick package API calls in animint2pages function for trimming whitespace in screenshot. |
Date: 07/1/2024 tried to solve port busy error by stopping non blocking R session using it's PID in text file generated by run_server function. |
just kill the server after the screenshot was taken? |
@tdhock for some reason if I just use servr::httd(port = 8080, dir = normalized_directory), chromote is not able to navigate and gives timeout error. But if I pass this code in a new R session initialized by system2() then chromote is able to navigate to localhost url and then take the screenshot. So now I can only stop the server if I am able to terminate that entire new R session initialized for the server. I am trying to do that. But since tcp port management is done by OS, overall it would be complex to implement a portable code for that I think. I get tcp port busy error only on Mac, not on windows. So for now I am just assigning random available ports compatible with chrome using a function in servr package which does that. |
you should file an issue with servr package |
@tdhock you mean I should file an issue on their repo of servr package ? But I forgot to add one detail. Using R's browseURL allows me to navigate to local host URL of the server. Only chromote does not navigate unless I run server in a separate R session. So maybe it is an issue of chromote package and not servr package ? |
The approach of using random available port worked. I will also try the new approach of keeping a same server. thanks |
@tdhock I tried two approaches for keeping a same server for the entire session. In the first approach I simply copied contents of temporary directory generated by animint2dir into the directory of server. In the second approach I set the already exisitng directory argument of animint2dir from Null to server directory and made changes inside animint2dir for it to work. In both approaches all test cases passed on my machine. The second passed on Github too. But the screenshot on GitHub pages is actually that of sever error message which says directory cannot be changed. I have made commits of both the approaches. |
if you want to test the content of the screenshot, you should test the content of the web page right before/after you take the screenshot (in addition to testing presence of file) |
Date: 07/2/2024 PR #131, Started working on cropping feature. Got errors in that. Started working to fix them. |
Date: 07/3/2024 PR #131, Finished the code for cropping and ensured it works and made a commit of that. Instead of assigned random ports, started a new approach for keeping a persistent server |
Date: 07/4/2024 PR #131, Finished the two approaches for persistent server, one is copying files from a temporary random directory of animint2dir to fixed directory of server. Another is passing an argument in animint2dir telling it to use a fixed directory. |
Date: 07/5/2024 PR #131, Screenshot file was getting uploaded to GitHub pages using persistent server approaches but it was displaying "not able to change directory" error message instead of screenshot of the plot. Fixed that error , updated news and changed version. Started work on requested changes in PR #126 |
Date: 07/6/2024 PR #126 , Finished the work for requested changes. |
Date: 07/7/2024 for html plot task(issue #115 ) starting ramping up on it by revising my javascript knowledge |
Date: 07/8/2024 for html plot task (issue #115 ), wrote a new test to add 3 plots to see how they are rendered in current implementation |
Date: 07/9/2024 |
Date: 07/11/2024 For discussing ggplot html table task (PR #115 ), Had a meeting with @Faye-yufan. Made commits to refactor code for PR #126 |
Date: 07/12/2024 For PR #126 , refactored the code and started the work to add a function for Runtime$evaluate API call. |
Date: 07/13/2024 finished the work to add a helper function for Runtime$evaluate |
Date: 07/14/2024 for PR #126 ,refactored the code and ensured the all tests pass locally. Started the work to try solve the issue on GitHub Actions that checks are running for hours and never stop. Or sometimes they stop and give errors. |
Date: 07/15/2024 for chromote testing (PR #126), figured out why checks were failing on GitHub and rectified that issue by reverting commit which removed packages in suggests in .yaml file. for ggplot table task (#139 ), resumed the work of understanding how functions in animint.js file work. to ramp up, started making temporary changes in code and see how they change the plots to understand how different functions work. |
Date: 07/16/2024 for ggplot table task (#139 ), added the code which puts all plots in a single row of newly created outer table. this fixes relative positions of plots despite interaction with the browser. will build upon this logic in next tasks to fully implement the table functionality. only one test "knit-print" failing on GitHub actions but that was failing for current phantomjs setup for chromote testing task too (#126) |
thanks for the update. |
@tdhock yes. I have updated that PR. please let me know if I have missed something. |
Date: 07/22/2024 These are the new updates for the last few days. for chromote testing(#126 ),
for screenshot task (#131 ), explained to @Faye-yufan my approach for persistent server for handling dynamic html for html table plot task(#139 ), I have added code to add maximum 2 plots per row of newly created outer table and then make a new row. the relative positions of all plots are now fixed regardless of how the user interacts with the browser. this code is just a middle step to help me understand how this can potentially work. to complete the task,I will build upon this implementation if it is the most suitable approach to move forward |
Date: 07/24/2024 for html table plot task(#139 ), in the previous implementation of fixed table, I had only fixed an upper limit for number of plots for each row and it used to create a new row in the newly created outer table when the current row was filled. Now I added code to put plots in specific location of the outer table according to user given values of row and col. this code is in rudimentary form and for now it is only working for plots file I have made. but I got an understanding of a possible way I can go forward to complete this task. I have also analyzed the theme_animint function and the third party theme function to ramp up. because as @tdhock had said in issue #115, the arguments for row and col should ultimately go as parameters to theme_animint function, if I am interpreting that correctly. the screenshot for the table implementation is below. I could not capture the entire screenshot despite zooming out. it's a 3 by 3 table with 4 plots in it. the location of the plots was selected by me and to put them in right place I used html IDs for each unique cell comprising of it's row and column number. |
Date: 07/25/2024 these are the updates for html plot task(#139 ), I have not made any commits of the recent progress so far because the code is in rudimentary form and for now it is only compatible if we pass row and column parameters in theme function. here are the new changes I implemented today,
These are the changes I need to do soon before trying to implement more complex functionalities like row span:
Below are the screenshots of the latest implementations I have mentioned in this status update : screenshot of passing row and column into theme function (works for theme_animint as well): screenshot of the table with plots in locations determined by theme function arguments : |
Date: 07/26/2024 these are the updates for html plot task(#139 ),
my immediate next goals for this task,
After today's work I was finally able to make a commit because the code will now work even if the user does not pass row and column in any plots. |
html table task (#139 ) is at this stage right now -
what I am yet to do:
|
thanks |
I should have clarified more what I meant by pointers, by pointers I meant var pointer_row and var pointer_column while putting plots with no dedicated locations, they keep track of where we are in table. so we do not have to start searching for empty spots from row 0 column 0 for each new plot. so time complexity remains O(n) instead of O(n^2) by upper limit I mean should user be restricted for putting row and column number in theme_animint ? for example if the user has only few plots, say only 4 plots. should the user be able to pass very large number for row or column, say row=100 and col=100 and make 10,000 cell table when there are only 4 plots ? do we need to keep some reasonable upper limit and prompt the user to keep row and column within that limit if it is exceeded ? |
yes good idea to error for row or col > number of plots |
hello @tdhock and @Faye-yufan GSoC 2024 tasks are in the following state:
|
thanks for all your work and useful contributions during GSOC! |
In this thread I will post status of various tasks I am doing as a part of GSoC 2024.
The text was updated successfully, but these errors were encountered: