GSOC 2020
Call Schedule:
Monday to Thursday: approx 12:00pm est /18:00pm cst/21:30pm ist
standing/debug: https://zoom.us/j/99567688969
September 7 Zoom Call
- Fixed Travis
- Points to ponder:
- Tell travis to ignore test failure on new image
- Create diff for existing image on master and post to github as comment on PR
- Tell CI to generate new baseline on merge-to-master
September 3 Zoom Call
- Ran Travis tests locally. One error resolved on travis. New errors coming on travis
Goals for monday
September 2 Zoom Call
- Ran travis tests locally to find the output on the local machine
Goals for tomorrow
- Write documentation related to the before and after the GSoC changes are done.
September 1 Zoom Call
- Rebased the PR. One error resolved, one still present.
- Added documentation
Goals for tomorrow
- Run test after deleting the cache folder for mpl baseline images
August 31 Zoom Call
Goals
- Run travis tests locally without -n2 flag
August 28 zoom call
- Added the extraction of basleine image from the mpl cache
- Did suggested changes
Goals for Monday
August 27 Zoom Call
- Added copy logic to the mpl cache
GOals for tomorrow
- Add the extraction of basleine image from the mpl cache
August 26 Zoom Call
Goals for tomorrow
- Do suggested changes
- Copy images to the mpl_cache
August 25 Zoom Call
- filled the final evaluation by mentee
- created the plugin
- checked the plugin
Goals for tomorrow
- add cache
- write user stories
August 24 Zoom Call
- merged two command line statements into one statement
- fixed the flake8 issues
Goals for tomorrow
- do remaining suggested pr changes
- add plugin for image generation
August 20 zoom call
- fixed flake errors
- tried to make one command from two commands
Goals for tomorrow
- make one command from two commands
August 19 Zoom Call
- tried to fix the doc errors
Goals for tomorrow
August 18 zoom call
Goals for tomorrow
- Complete the suggested changes
August 17 zoom call
- tried to fix travis
- installed inkspace and graphviz
Goals for tomorrow
August 13 zoom call
- debugging why travis is not passing: Changes related to recently merged pr with C language changes
- rectified the conflicts
Goals for monday
- fix travis
- write work product
August 12 zoom call
- debugging why travis is not passing
- learnt how to run travis test cases through terminal
Goals for tomorrow
- fix test image discovery with sub-wheels
August 11 zoom call
- finished blog
- discovered that installing the sub-wheel means the images don't get found
Goals for tomorrow
- fix test image discovery with sub-wheels
August 8 zoom call
- made progress on extending the docs (looks good, needs some copy editing)
- shortened names
- goal for week is to get current PR (without deleting images) merged to master, open new PR to work on sorting out CI caching / configuration.
Goals for next call
- get CI passing on current PR
- add instructions to release guide about generating and publishing the images wheels
August 6 zoom call
- content of docs looks good!
- goal is to get current PR (without deleting images) merged by end of next week
Goals for Friday & Monday
- re-format docs as bullet points / code blocks
- add documentation about how to use the sub-package to get (most) of the images
- rename flag to make shorter
August 5 zoom call
- went with a simpler approach of generating missing images rather than trying to flag specific tests like suggested yesterday
- discussed logic of
Goals for the day
- see if you can make it faster ?
- how early can we detect that we will not need to copy the result file?
- write up guide of how to change a test as a developer
August 4 Zoom Call
goals
- register a "re-generate this test marker"
- apply the marker in conf test
- regenerate or test in the wrapper based on if the marker is attached to the node (aka test)
July 31 Zoom Call
- Discussed modification for baseline images logic
goals
- Create command line flag that takes test name as argument and just run the tests mentioned as arguments
July 29 Zoom Call
- Discussed modification for baseline images logic
goals
- Create command line flag that takes test name as argument
July 28 Zoom Call
- Blog Post reviewed and merged
- Second eval form submitted by mentor and mentee
goals
July 27 Zoom Call
- done changes suggested in the Blog Post
- mpl_toolkits image generation flag - working properly
Goals
- complete the suggestions given in the PRs
- fill second evaluation for GSoC Form
July 23 Zoom Call
- wrote blogpost
- debugged why pytest configuration was missing
goals for Monday
- get test generation / configuration for mpl_toolkits working
- finish blog post
July 22 Zoom Call
- Fixed the tests with/without matplotlib_baseline_image_generation
- create_baseline_images in the test_backend_pgf works fine
- Discussed about the transition period from nose to pytest
- Tried to enable pytest work for all directoritories/paths including the mpl_toolkit images.
goals
- Create Blog Post
- Fix the tests for image generation with flag in the command line
July 21 Zoom call
- made progress re-writing the pgf tests to use decorator, but they are failing
- issue is that the rcparams being set need to be set while the figure is being saved so the context manager and the image test decorator are in conflict
Goals for Tomorrow
- inject the generate / not generate logic into the pgf
compare_figure
function
July 20 Zoom call
- looked at tests in pgf that have thier own compare logic
- plan is to look at making them use the standard decorator (in seperate PR)
- test of test code failing
- plan to adjust their test images to be in the data folder.
July 16 Zoom call
- made progess on having the test suite copy the files to the correct place (no manual copying needed!)
- debugged folder creation on the phone
- centralized the conftest imports
Goals for Monday
- fix names of generated tests
- find and fix import errors
July 15 Zoom call
- working on how to seperate the Matplotlib baseline images and the mpl-toolkit test images
goals for tomorrow
- automatically copy the files to the right place
- fix the import error on test discovery
July 14 Zoom call
- reseaching how to get access to CLI flags
July 13 Zoom call
- trying to get full test suite running
- 1652 image comparison tests
- copied files baseline images
- had issues with tests that generate more than 1 test image
- Attempt 1: 1652 failures=> 25 failures => 11 failures => 3 failures => 1 failure => 1 failure => 1 failure => Problem with RMS value. Also, 1 failure was not subset of 3 failures. Last three failures were same.
- Attempt 2: 1652 => 145 => 143 => 112 =>8 => 1 => RMS value in phase_sprectrum_noise image
- Attempts aren't related to each other.
plan for tomorrow
- only try to compare images if we are testing (not generating)
- copy files to the right place on the initial run.
July 9th Zoom Call
- got CLI argument working!
Plan for Monday:
- generate images for all tests
- complete blog post draft
- do not try to import the test image package if generating tests
July 8th Zoom Call
- can run the test to generate the images, copy them, re-run and the tests pass
- sorted out how to use pytest.mark to select a sub-set of the tests
Plan for tomorrow
- move the mark inside of the decorator
- add a flag to either generate baseline images or validate the images are correct
July 7th Zoom Call
Thomas - @SidharthBansal is going to work on writing a bash script that will, in the currently active env, generate the baseline images to put all of the worktree / venv management off for a bit
we need to provide a way from the command line when invoking pytest tell the test suite that it needs to generate the images (rather than testing against them)
July 6th Zoom Call
Discussion about the modification of generation of the baseline images PR like source file should run tests till image comparison point
July 2nd Zoom Call
Troubleshoot azure pipelines errors
PR Reviews
July 1st Zoom Call
PR Review #17557
June 30th Zoom Call
Discussion about the removal of baseline images logic from matplotlib_baseline_images package created in #17557
Suggested changes requested in #17793
June 29th Zoom Call
#17557 PR Review
-
Do Flake8 file changes to ignore the errors in the __init__.py
-
Discussion about Removal of baseline images from the matplotlib_baseline_images package
-
Baseline images may exists or doesn't exist. Focus on the case where the baseline images doesn't exist first. Baseline images are autogenerated from previous version.
-
Sketch of next piece of work:
def create_baseline_images_from_previous_commit():
# Check that we are in a git repo (e.g. .git directory exists), else raise.
# Check that git is installed. (shutil.which)
# Create virtual env in tmpdir.
subprocess.run([sys.executable, "-mvenv", tmpenv])
subprocess.run(["git", "clone", "<current repo>", "<tmpenv/...>"])
... git checkout HEAD~
... python -mpytest ...
# -> this will generate result_images in that temporary directory
# -> copy it and cache it.
June 25th Zoom Call
- Debugging Travis and appvoyer
- Learning how to build mpl through ccache or through lto optimisation fastly
- Use pdb command for debugger console
- Read pathlib documentation
- Move the baseline images out of test_data/test_images. They are contained in the image_comparison function.
June 24th Zoom Call
- Reviewed the GSoC Progress Report 2
- Shift the install commands to the test_script in appveyor.yml
- Remove Typographical mistake mpl_toolkits instead of mpl_toolkit
- Discussed different ways about laying out the packages. Use lib folder instead of the sub-wheels/baseline-images.
June 23rd Zoom Call
June 22nd Zoom Call
- Add tests/test_data is a separate commit for better visualization of the PR
- Use Try and except statement in the init.py for mpl and mpl_toolkit
- Discussed flake8 error
June 18th Zoom Call
- Rebase the PR and resolve conflicts
- Change status of the PR from Draft to Ready to review
- Add try-except block in the decorators so that import works if it is installed. Else it should raise a reasonable exception or fallback to the earlier behaviour
June 17th Zoom Call
Troubleshooting baseline-images package
- Implement the changes discussed in the meeting and push them
- Fix git history
June 16th Zoom Call
Troubleshooting the demo package's main package
- Delete the build before creating the sdist and wheels
- Use exclude command in the find_packages
- Put prune dir in the
MANIFEST.in
- Need of result_dir
June 9th Zoom Call
@sidharth - Do we need init.py for baseline-images-package?
@anntzer - No need as baseline-images-package is data specific
@sidharth - Do we need mpl_toolkit_baseline_images ?
@anntzer - We can do it later.
@sidharth - Do we need both README and INSTALL for baseline-images package?
@anntzer - Start with only README with basic documentation
@sidharth - Kindly confirm the locations to symlink baseline images - tools/triage and __image_directory decorator ?
@antony - Yeah, correct
June 5th Gitter meet
@sidharth - Which LICENSE to use in subwheel/mpl-baseline-images-only?
@antony - copy the current LICENSE/LICENSE to the subdirectory
@sidharth - Should I read full tutorials about setuptools?
@antony - Create a test package with two subpackages within same directory
testrepo/
setup.py
lib/testpkg/__init__.py
baseline_images/setup.py
baseline_images/testdata.txt
-create testrepo.whl, testrepo.tar.gz (the sdist), testrepo-baseline-images.whl, testrepo-baseline-images.tar.gz
@sidharth - do we need 3 packages mpl-test, mpl-no test and mpl-baseline-images?
@antony - No, we will follow following file structure
mpl/
setup.py
lib/mpl/...
lib/mpl/tests/... [contains the tests .py files]
baseline_images/
setup.py
data/... [contains the image files]
@sidharth - So, PR#17343 needs to be closed?
@antony - Yes, with reason
@sidharth - What will be the end product after enhancements in baseline-images-only package?
@antony - baseline-images-only package will contain user generated test data and .py files. MPL will not have baseline images[data] in the repo
@sidharth - Should we decentralise mpl-baseline-images and mpl package to two different repositories?
@antony - No, it can lead to coordinatoion problems bw repos
@sidharth - Facing difficulty in understanding sdist, wheels, eggs and binaries
@antony - eggs are obsolete now
sdist(source artefacts) - uncompiled compressed files
wheels(binary artefacts) - compiled compressed file(like zip files) with different extension so that developer's time for compilation is saved
June 2nd call
PR#17434
Make a separate commit just for moving all the baseline image files to avoid really awkward review.
alternative proposal
- create test wheel
- in thread:
by doing this [insert instructions] can create a wheel w/ just baseline images
- use pypi test to verify:
https://test.pypi.org
- should be trivial to make a conda mpl-test-data:
https://anaconda.org/conda-forge/mpl_sample_data
why does mpl-test-need to be editible?
records in file that package w/ search path that is then importable
when mpl src tree is edited, gets reflected on import matplotlib
regular install doesn't reflect edits (need to reinstall)
@sidharth:
normal mode does a copy, editable writes file extension?
what's the interaction between mpl & test repos?
- regularly pip just says include directory in search path
- in current layout, when pip installs editable –> images are implicitly installed
- once moved out, can be seperately editably installed, removes implicit problem
e.g. /baseline_images -> symlink to /lib/matplotlib/tests/baseline_images
checkpoints
- Symlink baseline images out.
- Create a wheel/sdist with just the baseline images; upload it to testpypi (so that one can do
pip install mpl-baseline-images
); don't bother removing baseline images from the main repo yet.
- (later) Update testing machinery to use baselines from mpl-baseline-images rather than from source tree.