Today we reached the 10,000th commit in JOSM source code repository, suddenly adding a 5th digit to our version number!
This symbolic milestone occurs a few weeks after the 10th birthday of JOSM 1.0, which was released on January 22nd, 2006 (yep, back in time, JOSM used real version numbers. The current versioning scheme was introduced in early 2008 for practical reasons). If you're curious about how many versions of JOSM have been released since, check out the release log.
This allows to see how JOSM evolved over time. For example, how the source code increased: Lines of code
Each dot represents a tested version.
It does not only compute code volumetry, we use it mainly to measure code quality. Here are some interesting charts showing how JOSM evolves behind the scene, as we constantly improve code quality and unit test coverage:
Duplicated lines (%)
Code coverage (%)
Public documented API (%)
Technical Debt (days), as computed by SonarQube
Number of unit tests
As you can see, we're putting a lot of effort to increase unit tests coverage lately. JOSM is tested automatically after each modification by our continuous integration system (powered by another great open source software: Jenkins). We're testing several Java versions (JDK 7, 8, and early access snapshots of JDK 9).
Remember we will soon drop support for Java 7 and begin to use new features of Java 8, that will be the next big step in JOSM development!