Google Summer of Code 2026 - Avanish Salunke

GSoC 2026 : Final Evaluation

August 20, 2026 | 5 Minute Read

Last week brought stepwiselm and the step method, anova on CompactLinearModel, and Type 3 sum of squares. This week is the final evaluation itself, and the five PRs below are the actual submission - together they cover everything built since midterm, not just what happened in the last few days.

Project Status

Week 1 was project planning and setup.

Week 2 was the class shell: properties, access rules, the display method, and the subsref gatekeeper.

Week 3 was the constructor and fitlm: the math solver, all the diagnostics, the full 26-property object, and the front-end parser.

Week 4 was applying mentor feedback, refactoring the constructor, and adding predict and random.

Week 5 was feval, coefCI, coefTest, dwtest, and addTerms.

Week 6 was removeTerms, plotResiduals, plotDiagnostics, plotEffects, and a set of bug fixes.

Week 7 was the midterm evaluation, robust regression, plotAdjustedResponse, and plotAdded.

Week 8 was plot, plotInteraction, compact, and the initial CompactLinearModel structure.

Week 9 was coefCI, coefTest, predict, random, and feval on CompactLinearModel, plus two bug fixes.

Week 10 was plotEffects and plotInteraction on CompactLinearModel, and the anova method on LinearModel.

Week 11 was stepwiselm, the step method, anova on CompactLinearModel, and Type 3 sum of squares.

This week was the final evaluation submission itself: five PRs bundling everything built since midterm into a state ready for release.


Eleven weeks in, this project has gone from a class with no properties defined to something that’s genuinely usable end to end. It’s been a slow build, most of it method by method, week by week, without a lot of dramatic jumps in between. What sticks out looking back isn’t any single feature, it’s how much of this came down to just showing up every week and checking one more thing against MATLAB. That’s really the whole job, more than anything else.

For the final evaluation, the requirement from my mentor was the same as it was for midterm: get everything in a state that’s ready to go into a proper package release, so it isn’t just sitting on a development branch. Rather than trickling out as separate small PRs the way most weeks went, the post-midterm work got consolidated into five PRs that were submitted together as the actual final evaluation deliverable. Between them they cover the full second half of the project: finishing CompactLinearModel, documenting and demoing stepwiselm, adding demos across fitlm and every LinearModel method, and fixing the bugs that had built up along the way.

Improving LinearModel and fixing bugs - here

PR #453 covers the accumulated improvements and bug fixes made to LinearModel since midterm. None of it changes what the class does from the outside. It’s the difference between a method working on the cases it was originally written against and holding up against everything MATLAB actually does with it.

Completing CompactLinearModel - here

PR #455 is where CompactLinearModel gets finished as a class. Every method that exists on LinearModel now has a matching, fully documented counterpart here, and the property documentation across the class was written out properly instead of being left half done. This was the single largest piece of post-midterm work, since most of CompactLinearModel was built in this stretch.

stepwiselm documentation and demos - here

PR #456 brings stepwiselm up to the same documentation standard as the rest of the package, full Texinfo docs covering every option, and demo blocks so it can be tried directly from the terminal instead of requiring someone to read the source first.

Demos for fitlm - here

PR #454 adds a full set of demo blocks to fitlm itself. Since fitlm is the entry point most people will actually use, this was about making sure it’s properly demoed rather than left to speak for itself.

Demos for every LinearModel method - here

PR #457 does the same across the rest of LinearModel, every public method now has its own runnable demo. This was the widest of the five PRs just in terms of ground covered, going through the entire method list one at a time.


Around the same time, the statistics package put out its 1.9.0 release, and it’s a big one. It’s a major release built around the two GSoC 2026 projects, this one and the anova project, along with a large amount of additional MATLAB-parity work on top. The release brings in 113 new functions and classes altogether, spanning supervised learning, regression, clustering, dimensionality reduction, distributions, hypothesis testing, and plotting. LinearModel, CompactLinearModel, stepwiselm, and fitlm are all part of it, which means everything this project has built is no longer sitting on a development branch waiting to be useful. It’s shipped, and anyone updating their installation gets it directly.

Final Evaluation Ending

Sitting this close to the end of it, the thing that stands out most isn’t any individual method or PR, it’s that a piece of software I started poking at a year ago with no idea what I was doing is now something real people can install and use. That’s not a small thing to sit with. The final evaluation period wraps up soon, and once it does, I’ll be writing the full story of this GSoC, not a technical update like this one, but everything that led up to it.