In the following report, we will understand the ARK projectโs progress using different development metrics.
Purpose
The purpose of this report is to provide ARKโs development progress, health, and efforts. To accomplish this, we have analyzed 77 GitHub repositories of the ARK project.
Summary
- More development in 2019 when compared to previous years
- ARK client in multiple programming languages
- Passes all code quality checks
- Overall compliance score 56.9%
- Development engagement increased significantly in 2019
We also created a PPT to visualize our key findings, Download PPT.
Introduction to ARK project
Launched in October 2016, the ARK project is a collection of DIY tools to โbuild your blockchainโ and connect them with other blockchains (such as Ethereum, Lisk) using technologies like Smart bridges.
ARK also has its own blockchain and uses a Delegated Proof-of-Stake (DPoS) consensus algorithm.
ARK supports multiple programming languages. In our analysis, we found support for 11 programming languages.
Terminology
We will use the following keywords throughout our analysis.
Github Repository: A folder hosted on Github containing a software code/documentation.
Commit: A commit is saving some file changes into the Github repository.
Merge: Combining two different versions of one or multiple files.
Pull request: Notifying others about changes you have pushed on the codebase.
Contributors/Collaborators: Persons who work jointly on a project.
Fork: A fork is a copy of a repository. Forking a repository allows you to experiment with changes without affecting the original project freely.
Release: Releases are GitHubโs way of packaging and providing software to your users. You can think of it as a replacement for using downloads to provide the software.
Hotspot: Hotspot is a complicated code that you have to work with often.
Technical debt: Technical debt is the estimated time required to fix all Maintainability Issues/code smells.
Limitations
Our analysis only focused on development based on GitHub data, not on the technology.
Note
- The timeframe for our analysis is from 2017 to September 2019.
- To understand ARKโs code quality, we have analyzed ARKโs Core repository
Overall Project overview
ARK has 84 repositories in total. In our analysis, we have analyzed a total of 77 repositories and found 272 collaborators and 44 different programming languages.
We measured the overall project health and focused on a few key points:
- Code contribution
- Collaborators/Contributors
- Development engagement
- Code quality
1. Code Contribution
Releases are one of the essential metrics to understand the projectโs development efforts. Releases are incremental changes in software, and a release usually means a new version of the software.
When we dove in ARKโs release data, we saw that ARK releases become much more frequent in the last 14 months. ARK did 51 new releases in the last 14 months in comparison to 25 releases in the previous 18 months
- Total releases in the last 32 monthsโโโ76
- Total releases in the last 14 monthโโโ51
The above release data corroborates with the commitsโ activity. As the below image shows, ARK has increased its development efforts in the last 14 months and pushing more commits. These increased development efforts is a good sign for the project.
ARK is working simultaneously on multiple different repositories.
We tried to understand the direction of the teamโs effort and found that ARK is working on multiple clients in different languages and wallets.
In the last 14-months, the ARK team worked on more than 20 repositories(at least) simultaneously every month, which is pretty impressive.
The ARK team is distributed all over the world and lives in multiple time zones, that’s why we see a commits every day of the week.
2.Collaborators/Contributors
As we mentioned above, we have found 272 collaborators across 77 repositories. The following image shows repositories with more than 20 contributors. Here is the complete list of repositories with their respective contributors.
Top Contributors
The following image shows top contributors across 77 repositories based on their contributions. Here is a complete list of Contributors and their Contribution to the ARK project.
3. Development Engagement
In open-source development, whenever you want to contribute to any repository, you can create a pull request. Then the owner of the project reviews the pull request and either merges it or rejects it.
Merging Pull requests usually requires engagement as you need to understand the changes someone is trying to add in the codebase. Thatโs why pull requests are a great way to understand the development engagement of the project.
The below data shows that before 2018, the ARK team took more than ten days on average to merge pull requests, which is significantly high.
But in 2018-19, we noticed that the time to merge pull requests is now less than two days on average. At the same time, the number of pull requests increased at a significantly higher rate.
We also analyzed the most active repositories in the last 30 days, and as mentioned above, ARK is committed to multi-language support for its platform.
3.Code Quality
When it comes to cryptocurrency, Code quality is one of the most important metrics as the code directly represents wealth.
To understand the ARKโs code quality, we picked up its one of the most crucial repositories, Core.
- We used the Core repository as a sample repository to understand the code quality.
- While measuring the code quality, we didnโt analyze test files.
- Code quality is measured by a static analysis of the project.
In our analysis, we found out that 6% code base has high complexity.
When it comes to cryptocurrency, Code quality is one of the most important metrics as the code directly represents wealth.
We also measured ARKโs Core repository on different code quality metrics.
Reliability
Initially, we found 8 critical bugs in our analysis, but when we looked closely, we noticed that most of these bugs are in test files. (Which we shouldnโt account for). After removing them, we found no critical bug. Thatโs why the reliability rating is A.
Note: We did a static analysis of the project, which canโt identify logical bugs.
Security
We also didnโt find any potential vulnerabilities in the codebase, though we found 2 security hotspots in the same file. But both of these hotspots are not related to the main software code and inapplicable.
Maintainability
Software maintainability is essential. Notably, ARKโs core repository has only 1 hour of technical debt, which is 0.1% of its codebase.
Technical debt is the estimated time required to fix all Maintainability Issues/code smells.
Technical debt is the estimated time required to fix all Maintainability Issues/code smells.
” Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. Code for readability. “
Duplications
We found 0.6% code duplication, though most of these duplications are often used in adding configurations, dependencies. In our analysis, we didnโt find any problematic duplicate code.
Code Coverage
Testing is an integral part of the software lifecycle and is a vital part of software quality. We can measure it using the metrics called Code coverage.
Code coverage is a measurement of how many lines/blocks of your code are executed while the automated tests are running.
ARKโs Core codebase includes extensive test cases, including Integration and functional testing. ARKโs test suite indicates that the team is serious about the quality of their software and engage in best practices of software development.
Brooksโ Law
Brooksโ Law states that adding more people to a late software project makes it later. The reason for this is communication and coordination overhead.
While we add more people to a project, the total number of available hours increases linearly, but the coordination paths increase exponentially. Hence, thereโs a point beyond which each additional personโs hours get consumed by the increased coordination efforts.
The below graph shows the Development Output: This is measured by taking all commits during a week and dividing them by the number of contributing authors. The resulting normalized output metric gives you an estimate of the organizationsโ output.
The below graph shows the Development Output: This is measured by taking all commits during a week and dividing them by the number of contributing authors. The resulting normalized output metric gives you an estimate of the organizationsโ output.
Below chart shows two things:
- The number of contributors to the Komodo main client is declining.
- Yet development output remained consistent in the last one year.
Compliance Score
Our compliance score is based on the percentage of repositories that respect a given guideline. We looked into five crucial factors while calculating the compliance score, which adheres to standard open-source development. If any information below is missing, it impacts the score:
Things like License and changelogs can be improved, and Komodoโs main client could use more contributors. There are a sufficient amount of contributors to the project which contribute to the project significantly, and development engagement is pretty good.
Here is the complete data for missing files.
Conclusion
In our analysis, we found that the ARK team is putting significant efforts into its development. The team is pretty constant and delivering on multiple ends. ARK is committed to multi-language support for its platform, and we verified it.
ARK has a total of 84 repositories in which only one repository is forked, which shows ARK is building a lot of tooling in house.
ARK also has a high-quality codebase and follows best practices of software development.
2019 has been the best year so far when it comes to ARK development. The team is pushing many more releases, and overall development efforts are applaudable.
Visualizations
We have created a visualization of changes made by ARK contributors in the past two years.
Here different colors show their contribution in the respective languages (See there is a language classification at top left)
- Each particle is a file. It moves from developer to developer.
- The size of the particle depends on the degree of changes.
- Each user gathers files that he used over time.
About CoinCodeCap
CoinCodeCap analyzes the codebase of various cryptocurrencies. Anyone can showcase development activity on their platform using our APIs.
We also help in development audit reports for Cryptocurrencies. If you are a crypto project or a crypto exchange, you can reach us at [email protected].