ycoady / UVic-Software-Evolution

Welcome to our extravaganza in software (r)evolution!!!
Creative Commons Zero v1.0 Universal
6 stars 0 forks source link

Lab 2: May the Gource be with you! #5

Open ycoady opened 9 years ago

ycoady commented 9 years ago

Use Gource (https://code.google.com/p/gource/) to identify what may be important events associated with the evolution of an open source project. Based on your findings, is there anything in the repository, change logs, bug tracking data to explain the nature of the event, or how/why the software changed?

Hoverbear commented 9 years ago

@fraserd and I looked at Servo.

Tests made up a significant portion of the codebase from the early days onwards. This is definitely a good thing.

1 2

It was very interesting to see when various dependent libraries were pulled in. Often times they'd be accompanied by bursts of changes to the rest of code, but the libraries themselves would never be modified (for good reason).

eburdon commented 9 years ago

Erika Burdon & Jeremy Kroeker - Looked at garrynewman/garrysmod (Sandbox mod for the Source Engine)

We defined an important event as a significant change in the structure of the visual. At the beginning there was a boom of clusters as all the documents and initial project files were uploaded. We predict that this code was likely developed and brought in from somewhere else as large files were seemingly instantly added. Since then, codes were added in small pieces to one of two major clusters at a steady rate - there were no other major code refactors, all likely results of patching errors or adding more features.

BEFORE

before

AFTER

after

knowlesc commented 9 years ago

We looked at angular

We noticed an interesting point on March 28, 2012.

For one commit, 310 files were modified in preparation for more modules. While it's somewhat difficult to see from the visual, you can see in the legend on the side that the number of js files changes by about 300. You can see in the commit log that all files related to the ng module are moved into ng-specific directories. This signifies a major change with respect to modules is beginning. here is the commit

gource-0005 gource-0006

BrodyHolden commented 9 years ago

Gource was used in look at the mocha.js JavaScript test frame work.

Initial observations show that the project rapidly increased in size in November and December 2011.

gource-growth-nov-dec-2011-trimmed

Brody Holden & Kathryn Madrick

chrisjcook commented 9 years ago

With Gource, we took a look at the text editor Atom. We noticed that there was a lot of refactoring from month to month. Large portions of the project were constantly discarded and rebuilt. This picture represents about a third of the way into the project history, but only a fraction of earlier complexity.

screenshot

*\ Chris Cook, Richard Claus, Sarah Nicholson

paulmoon commented 9 years ago

Paul Moon & Jian Guan & Jonathan Lam

Node.js

We ran Gource on the codebase of node.js. From the video, we observed two big changes to the codebase:

1) Import OpenSSL from Chrome on : https://github.com/joyent/node/commit/e80cac622569dda0f6753b452ba3e5085a9d09e5

Before

before

After

after

2) npm dependency was added to the source of node.js.

Before

before2

After

after2

EvanHildebrandt commented 9 years ago

Jason Syrotuck, Keith Rollans, Evan Hildebrandt We looked at JQuery-Mobile The most notable thing was the presences of a large amount of documentation which actually exceeds the amount of files in anything else.

docs

At one point it gets re-factored and sorted into folders but it is still excessively large

docs2

Finally it is moved into the "Demos" folder which provides both live demos as well as documentation.

docs3

This presence of documentation is in our opinion what has lead JQM to be adopted by developers whereas other similar projects were not. .

gregnr commented 9 years ago

Rabjot Aujla, Greg Richardson, Jordan Heemskerk

jQuery

We decided to watch the changes in the jQuery JavaScript library. Within it's lifetime, we noticed 2 major events - December 13, 2012 and June 25, 2014.

December 13, 2012:

Before:

image

After:

image

We went though the git logs during that time, I realized that the big change was due to the addition of SizzleJS - a JavaScript selector library. jQuery relies heavily on selectors in order to identify elements with the DOM, so this addition makes sense.

June 25, 2014:

Before:

image

After:

image

Looking through the logs, this change was due to a major code hierarchy restructure - specifically moving all external libraries to their own folder. This decision was probably motivated by modern development practices encouraging developers to keep external libraries separate.

Bleech94 commented 9 years ago

Bootstrap Before before

After after

After several hours of struggling the the gource and git systems we managed to watch the bootstrap system evolution. During the video we noted that there were both massive surges in the number of developers and the branches in the file system. Big changes occurred when larger numbers of people joined the development process. Jorin Weatherston-Brandon Leech-Brayden Arthur

DigitalCoffee commented 9 years ago

Ruby on Rails

gource-0003

gource-0004

Bottom-left, a new branch was added. This was functionality for time-zones.

Andrew Hansen, Devin Corrigall, Tyler Potter

mitchellri commented 9 years ago

Godot

Godot is a game engine. 1 2

The branch added in the top left were the drivers. All around there have been slight modifications.

Mitchell Rivett

RobertLeahy commented 9 years ago

I analyzed the GCC code base.

In late 1997/early 1998, two things happened to the GCC code base:

  1. Fortran support was added
  2. GCC 2.8.0 was released

You can see this by comparing September 1997:

image

Through January 1998 (notice that "f" has grown massively, while "testsuite" has appeared seemingly out of thin air):

image