← all organisations

datagovuk / Code

27 languages, 43.3 MB of source, and what the live estate is written in today.

Language figures come from GitHub's own per-repository byte counts, which measure source rather than a single headline label. File counts and repository sizes come from the mirrors themselves. The two tell different stories, and the difference is the point.

The codebase

27
languages in use
43.3 MB of source
14.2k
files at HEAD
across every analysed repository
0 B
on disk as mirrors
full history, every branch and tag
93.0 MB
largest repository
publish_data_alpha

What stands out

One archived repository holds 17% of all the bytes.

publish_data_alpha is 93.0 MB of git - a 2013 static snapshot of www.gov.uk, not source code. It single-handedly makes HTML the largest language by volume (6% of all source bytes). Any size or language statistic that does not exclude it is measuring an archive, not a codebase.

Sizes here are GitHub's reported figures.

This organisation was harvested with blobless partial clones, which fetch every commit and file path but not file contents, so there is no local size to measure against. Checked elsewhere in this dataset against 1,526 fully mirrored repositories, GitHub's reported size is accurate to within about six percent.

Ruby is the house language, but its share is falling.

Ruby is the primary language of 0% of archived repositories but only 0% of live ones. Python, Go, TypeScript and HCL have taken the difference - the signature of a shift from monolithic Rails publishing apps toward data pipelines, infrastructure-as-code and platform tooling.

Most repositories are small; a handful are enormous.

59% of repositories are under a megabyte of git data. The estate is not a monolith - it is a very long tail of small services, gems and prototypes around a few large publishing applications.

Languages, two ways

By volume of source

Bytes of code. Dominated by archived static HTML.

JavaScriptJavaScript: 13.3 MB13.3 MBPythonPython: 9.2 MB9.2 MBCSSCSS: 7.2 MB7.2 MBPHPPHP: 6.3 MB6.3 MBHTMLHTML: 2.5 MB2.5 MBElixirElixir: 1.8 MB1.8 MBJavaJava: 710.2 kB710.2 kBShellShell: 680.7 kB680.7 kBVueVue: 445.2 kB445.2 kBXSLTXSLT: 366.0 kB366.0 kBEagleEagle: 235.3 kB235.3 kBJupyter NotebookJupyter Notebook: 175.8 kB175.8 kBGherkinGherkin: 105.5 kB105.5 kBKiCad LayoutKiCad Layout: 87.4 kB87.4 kB

By number of repositories

How many repositories name each language as their primary one. A better guide to what engineers actually work in.

PythonPython: 4747JavaScriptJavaScript: 4040HTMLHTML: 4040CSSCSS: 3434ShellShell: 2525RubyRuby: 88MakefileMakefile: 77PHPPHP: 77PuppetPuppet: 44SCSSSCSS: 44ProcfileProcfile: 44ElixirElixir: 33NginxNginx: 22Jupyter NotebookJupyter Notebook: 22

Live estate versus archive

The same language ranking, split by whether the repository is still active. The shift is the clearest signal of technical direction in the whole dataset.

Active repositories

PythonPython: 00JavaScriptJavaScript: 00CSSCSS: 00HTMLHTML: 00PHPPHP: 00ShellShell: 00JavaJava: 00ElixirElixir: 00XSLTXSLT: 00PuppetPuppet: 00

Archived repositories

PythonPython: 3737JavaScriptJavaScript: 1212CSSCSS: 1111HTMLHTML: 88PHPPHP: 44ShellShell: 22JavaJava: 11ElixirElixir: 11XSLTXSLT: 11PuppetPuppet: 11

Scale

Repository size distribution

Git data per repository, log-ish buckets.

4130.820.510.20< 10 kB: 5< 10 kB< 100 kB: 6< 100 kB< 1 MB: 41< 1 MB< 10 MB: 26< 10 MB< 100 MB: 10< 100 MB100 MB +: 0100 MB +

Commits against files

Each circle is a repository, sized by number of distinct authors. Both axes are logarithmic. The diagonal band is the normal relationship between codebase size and churn; outliers above it are long-lived apps with heavy iteration, below it are dumps and imports.

17.2k2.2k293.338.35.016.339.4247.71.6kCKAN-CMS: 5 commits, 20 files, 1 authorsISB: 177 commits, 69 files, 1 authorsIntervalServer: 68 commits, 109 files, 4 authorsMPA: 38 commits, 10 files, 1 authorsOWSLib: 1,893 commits, 179 files, 82 authorsapi_etl: 126 commits, 59 files, 4 authorsapiserver: 215 commits, 142 files, 6 authorsckan: 17,200 commits, 1,556 files, 195 authorsckanext-archiver: 307 commits, 57 files, 23 authorsckanext-certificates: 27 commits, 13 files, 3 authorsckanext-datapreview: 122 commits, 20 files, 6 authorsckanext-datastore: 66 commits, 14 files, 3 authorsckanext-dcat: 57 commits, 20 files, 4 authorsckanext-dgu: 4,643 commits, 585 files, 46 authorsckanext-dgu-local: 62 commits, 38 files, 6 authorsckanext-ga-report: 228 commits, 40 files, 10 authorsckanext-harvest: 562 commits, 56 files, 20 authorsckanext-issues: 289 commits, 75 files, 15 authorsckanext-linkfinder: 19 commits, 19 files, 1 authorsckanext-os: 191 commits, 47 files, 11 authorsckanext-packagezip: 60 commits, 19 files, 4 authorsckanext-pages: 18 commits, 27 files, 4 authorsckanext-qa: 494 commits, 92 files, 27 authorsckanext-redmine: 6 commits, 14 files, 1 authorsckanext-schemadotorg: 5 commits, 9 files, 1 authorsckanext-spatial: 489 commits, 531 files, 21 authorsckanext-taxonomy: 40 commits, 48 files, 4 authorscontracts-archive: 155 commits, 167 files, 6 authorsdgu-joint-assets: 46 commits, 46 files, 1 authorsdgu-monitoring-plugins: 18 commits, 14 files, 3 authorsdgu-orgs: 26 commits, 2 files, 1 authorsdgu-test-env: 18 commits, 13 files, 2 authorsdgu-vagrant-puppet: 291 commits, 157 files, 16 authorsdgu2: 261 commits, 214 files, 6 authorsdgu_d7: 3,342 commits, 447 files, 21 authorsdgu_harvesters: 22 commits, 18 files, 1 authorsdgu_solr: 6 commits, 188 files, 1 authorsdpkg-uk25k: 90 commits, 20 files, 6 authorsemailpublishing: 16 commits, 29 files, 3 authorsfa1: 55 commits, 142 files, 2 authorsfind-gov-data-changelog: 20 commits, 119 files, 6 authorsfind-gov-data-v1: 50 commits, 134 files, 6 authorsfind-gov-data-v2: 147 commits, 149 files, 8 authorsfind-gov-data-v3: 80 commits, 143 files, 9 authorsfind-gov-data-v4: 203 commits, 147 files, 11 authorsfind_data_alpha: 87 commits, 238 files, 8 authorsgovernment.github.com: 590 commits, 73 files, 60 authorsguidance: 193 commits, 170 files, 10 authorshtml-responsive: 11 commits, 111 files, 1 authorsinspire-view-service: 22 commits, 105 files, 3 authorsinventory-template: 19 commits, 225 files, 1 authorslibrary-archive: 8 commits, 784 files, 1 authorslinux_puppet: 224 commits, 26 files, 9 authorslogreporter: 22 commits, 14 files, 4 authorsmollom: 41 commits, 6 files, 5 authorsnomenklatura-client: 42 commits, 5 files, 5 authorsorganisation-data: 9 commits, 20 files, 4 authorsorganogram-explorer: 21 commits, 83 files, 1 authorsorganogram-viz: 63 commits, 101 files, 5 authorsorganograms: 129 commits, 1,454 files, 3 authorspaas-cf-apps-statsd: 119 commits, 306 files, 24 authorspoca: 60 commits, 591 files, 4 authorspocb-platform: 37 commits, 1,053 files, 1 authorspublish_data: 193 commits, 423 files, 7 authorspublish_data_alpha: 1,032 commits, 384 files, 10 authorspublishbot: 29 commits, 458 files, 2 authorspuppet-orgdc: 29 commits, 19 files, 4 authorspython-skos: 34 commits, 22 files, 2 authorsrefine-csv: 5 commits, 2 files, 1 authorsreserve: 25 commits, 9 files, 3 authorsschemas: 9 commits, 12 files, 1 authorssecure-reference: 6 commits, 3 files, 1 authorsshared_dguk_assets: 405 commits, 93 files, 14 authorsspend-prototype: 8 commits, 81 files, 1 authorsstandards.data.gov.uk: 902 commits, 192 files, 5 authorstestpages: 7 commits, 1 files, 1 authorsudata: 2,787 commits, 981 files, 21 authorsukgovldwg-test: 10 commits, 1 files, 2 authorsfiles at HEAD (log)commits (log)

The shape of a repository

Directory layout is the cheapest reliable signal of what a repository actually is. app/ with config/ and spec/ is a Rails application; src/ with test/ is Java or Node. Counted by how many repositories contain each top-level directory at HEAD.

Most common top-level directories

ckanextckanext: 2020teststests: 1212srcsrc: 1010docsdocs: 1010liblib: 99testtest: 99binbin: 88appapp: 88imagesimages: 77gulpgulp: 66configconfig: 55jsjs: 44csscss: 44themesthemes: 33manifestsmanifests: 33templatestemplates: 33scriptsscripts: 33filesfiles: 33

Most common file extensions

By total file count across the estate.

.py.py: 1.9k1.9k.png.png: 1.7k1.7k.js.js: 1.6k1.6k.html.html: 1.2k1.2k.csv.csv: 1.2k1.2k.md.md: 654654.go.go: 634634.css.css: 368368.json.json: 331331.php.php: 315315.txt.txt: 307307.inc.inc: 306306.xsd.xsd: 283283.scss.scss: 245245.pdf.pdf: 205205.vue.vue: 195195

The twenty largest repositories

RepositoryLanguageGit size CommitsFilesStatus
publish_data_alphaPython93.0 MB1,032384archived
library-archiveHTML90.9 MB8784archived
ckanPython90.2 MB17,2001,556archived
dgu-vagrant-puppetHTML52.1 MB291157archived
ckanext-dguPython25.0 MB4,643585archived
find-gov-data-v4HTML20.1 MB203147archived
find-gov-data-v3HTML19.9 MB80143archived
publishbotCSS13.5 MB29458archived
guidanceCSS12.0 MB193170archived
ckanext-qaPython10.7 MB49492archived
dgu_d7JavaScript10.0 MB3,342447archived
organogramsPython10.0 MB1291,454archived
publish_dataCSS9.5 MB193423archived
udataPython8.4 MB2,787981archived
government.github.comCSS7.9 MB59073archived
dgu2Elixir7.6 MB261214archived
spend-prototypeCSS7.1 MB881archived
dgu-joint-assetsJavaScript7.1 MB4646archived
organisation-dataPython6.7 MB920archived
apiserverJavaScript3.4 MB215142archived