Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions kb/kb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,43 @@ func TestRailsHasTaxonomy(t *testing.T) {
}
}

func TestResearchToolTaxonomy(t *testing.T) {
base := loadKB(t)
want := map[string][]string{
"Jupyter": {"role:application", "function:interactive-computing", "function:literate-programming", "technology:jupyter"},
"Quarto": {"function:documentation", "function:literate-programming", "function:report-generation", "function:site-generation", "technology:quarto"},
"Nextflow": {"role:orchestrator", "function:workflow-orchestration", "domain:research", "domain:scientific-computing", "technology:nextflow"},
"Snakemake": {"role:orchestrator", "function:workflow-orchestration", "domain:research", "domain:scientific-computing", "technology:snakemake"},
"nf-core": {"role:build-tool", "function:automation", "domain:bioinformatics", "domain:scientific-computing", "audience:researcher", "technology:nextflow"},
"nf-test": {"role:testing-framework", "function:testing", "domain:scientific-computing", "audience:researcher", "technology:nextflow"},
"MultiQC": {"role:cli-tool", "function:report-generation", "function:visualization", "domain:bioinformatics", "domain:scientific-computing", "audience:researcher"},
"Dockstore": {"role:registry", "layer:infrastructure", "domain:scientific-computing", "audience:researcher"},
"DVC": {"role:cli-tool", "function:data-provenance", "function:data-version-control", "domain:data-science", "audience:data-scientist", "audience:researcher"},
"BenchmarkTools.jl": {"role:testing-framework", "function:benchmarking", "domain:scientific-computing", "audience:researcher", "technology:julia"},
"Documenter.jl": {"function:documentation", "function:site-generation", "technology:julia"},
"JuliaFormatter": {"role:formatter", "technology:julia"},
"Runic": {"role:formatter", "technology:julia"},
"Fortitude": {"role:linter", "technology:fortran"},
"targets": {"role:build-tool", "role:orchestrator", "function:workflow-orchestration", "domain:data-science", "domain:research", "domain:scientific-computing", "audience:data-scientist", "audience:researcher"},
"R Markdown": {"function:documentation", "function:literate-programming", "function:report-generation"},
"knitr": {"function:documentation", "function:literate-programming", "function:report-generation"},
}
for name, tags := range want {
tool := base.ByName[name]
if tool == nil {
t.Errorf("%s not found in KB", name)
continue
}
got := slices.Clone(tool.Taxonomy.Tags())
wantTags := slices.Clone(tags)
sort.Strings(got)
sort.Strings(wantTags)
if !slices.Equal(got, wantTags) {
t.Errorf("%s taxonomy = %v, want %v", name, got, wantTags)
}
}
}

func TestPriorityNicheLanguagesHaveSinks(t *testing.T) {
base := loadKB(t)
for _, name := range []string{
Expand Down
18 changes: 18 additions & 0 deletions kb/testdata/oss-taxonomy-terms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ audience:security-professional
audience:student
audience:sysadmin
audience:writer
domain:bioinformatics
domain:blockchain
domain:cloud-computing
domain:content-management
Expand All @@ -25,11 +26,13 @@ domain:finance
domain:game-development
domain:geospatial
domain:healthcare
domain:high-performance-computing
domain:machine-learning
domain:mobile-development
domain:multimedia
domain:natural-language-processing
domain:networking
domain:research
domain:robotics
domain:scientific-computing
domain:security
Expand All @@ -49,7 +52,10 @@ function:configuration
function:connection-pooling
function:containerization
function:coverage
function:data-analysis
function:data-mapping
function:data-provenance
function:data-version-control
function:database-management
function:database-migrations
function:dependency-injection
Expand All @@ -65,8 +71,10 @@ function:graph-database
function:gui-toolkit
function:http-client
function:image-processing
function:interactive-computing
function:internationalization
function:language-server
function:literate-programming
function:logging
function:messaging
function:mocking
Expand All @@ -78,6 +86,7 @@ function:parsing
function:payments
function:process-execution
function:release-management
function:report-generation
function:routing
function:rpc
function:runtime-management
Expand All @@ -99,9 +108,11 @@ function:text-processing
function:tui
function:type-checking
function:validation
function:version-control
function:visualization
function:webhooks
function:websocket
function:workflow-orchestration
layer:application-layer
layer:backend
layer:data-layer
Expand Down Expand Up @@ -131,6 +142,7 @@ role:native-extension
role:orchestrator
role:package-manager
role:plugin
role:registry
role:runtime
role:sdk
role:server
Expand All @@ -156,6 +168,7 @@ technology:express
technology:fastapi
technology:flask
technology:flutter
technology:fortran
technology:git
technology:github-actions
technology:go
Expand All @@ -166,12 +179,15 @@ technology:java
technology:javascript
technology:jenkins
technology:jquery
technology:julia
technology:jupyter
technology:kotlin
technology:kubernetes
technology:laravel
technology:linux
technology:mongodb
technology:mysql
technology:nextflow
technology:nextjs
technology:nginx
technology:nix
Expand All @@ -180,6 +196,7 @@ technology:objective-c
technology:php
technology:postgresql
technology:python
technology:quarto
technology:r
technology:rails
technology:react
Expand All @@ -188,6 +205,7 @@ technology:ruby
technology:rust
technology:sass
technology:scala
technology:snakemake
technology:spring-boot
technology:sqlite
technology:svelte
Expand Down
3 changes: 1 addition & 2 deletions knowledge/_shared/dockstore.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ files = [".dockstore.yml", ".dockstore.yaml", ".github/.dockstore.yml", ".github
files = [".dockstore.yml", ".dockstore.yaml", ".github/.dockstore.yml", ".github/.dockstore.yaml"]

[taxonomy]
role = ["cli-tool"]
role = ["registry"]
layer = ["infrastructure"]
function = ["deployment"]
domain = ["scientific-computing"]
audience = ["researcher"]
2 changes: 1 addition & 1 deletion knowledge/_shared/dvc.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ lockfile = "dvc.lock"

[taxonomy]
role = ["cli-tool"]
function = ["file-management"]
function = ["data-provenance", "data-version-control"]
domain = ["data-science"]
audience = ["data-scientist", "researcher"]
2 changes: 2 additions & 0 deletions knowledge/_shared/jupyter.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ files = ["jupyter_server_config.py", "jupyter_notebook_config.py", "jupyter_lab_

[taxonomy]
role = ["application"]
function = ["interactive-computing", "literate-programming"]
technology = ["jupyter"]
4 changes: 2 additions & 2 deletions knowledge/_shared/multiqc.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ files = ["multiqc_config.yml", "multiqc_config.yaml", ".multiqc_config.yml", ".m

[taxonomy]
role = ["cli-tool"]
function = ["visualization"]
domain = ["scientific-computing"]
function = ["report-generation", "visualization"]
domain = ["bioinformatics", "scientific-computing"]
audience = ["researcher"]
5 changes: 3 additions & 2 deletions knowledge/_shared/nextflow.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@ files = ["nextflow.config"]

[taxonomy]
role = ["orchestrator"]
function = ["automation"]
domain = ["scientific-computing"]
function = ["workflow-orchestration"]
domain = ["research", "scientific-computing"]
technology = ["nextflow"]
3 changes: 2 additions & 1 deletion knowledge/_shared/nf-core.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@ files = [".nf-core.yml", ".nf-core.yaml"]
[taxonomy]
role = ["build-tool"]
function = ["automation"]
domain = ["scientific-computing"]
domain = ["bioinformatics", "scientific-computing"]
audience = ["researcher"]
technology = ["nextflow"]
1 change: 1 addition & 0 deletions knowledge/_shared/nf-test.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ role = ["testing-framework"]
function = ["testing"]
domain = ["scientific-computing"]
audience = ["researcher"]
technology = ["nextflow"]
3 changes: 2 additions & 1 deletion knowledge/_shared/quarto.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ alternatives = ["quarto preview"]
files = ["_quarto.yml", "_quarto.yaml"]

[taxonomy]
function = ["documentation", "site-generation"]
function = ["documentation", "literate-programming", "report-generation", "site-generation"]
technology = ["quarto"]
5 changes: 3 additions & 2 deletions knowledge/_shared/snakemake.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ files = ["Snakefile", "**/Snakefile", "*.smk", "**/*.smk"]

[taxonomy]
role = ["orchestrator"]
function = ["automation"]
domain = ["scientific-computing"]
function = ["workflow-orchestration"]
domain = ["research", "scientific-computing"]
technology = ["snakemake"]
1 change: 1 addition & 0 deletions knowledge/fortran/fortitude.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ files = ["fortitude.toml", ".fortitude.toml", "fpm.toml", "pyproject.toml"]

[taxonomy]
role = ["linter"]
technology = ["fortran"]
1 change: 1 addition & 0 deletions knowledge/julia/benchmarktools.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ role = ["testing-framework"]
function = ["benchmarking"]
domain = ["scientific-computing"]
audience = ["researcher"]
technology = ["julia"]
1 change: 1 addition & 0 deletions knowledge/julia/documenter.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ files = ["docs/Project.toml", "docs/make.jl"]

[taxonomy]
function = ["documentation", "site-generation"]
technology = ["julia"]
1 change: 1 addition & 0 deletions knowledge/julia/juliaformatter.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ files = [".JuliaFormatter.toml"]

[taxonomy]
role = ["formatter"]
technology = ["julia"]
1 change: 1 addition & 0 deletions knowledge/julia/runic.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ ecosystems = ["julia"]

[taxonomy]
role = ["formatter"]
technology = ["julia"]
2 changes: 1 addition & 1 deletion knowledge/r/knitr.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ ecosystems = ["r"]
"DESCRIPTION" = ["VignetteBuilder: knitr"]

[taxonomy]
function = ["documentation"]
function = ["documentation", "literate-programming", "report-generation"]
2 changes: 1 addition & 1 deletion knowledge/r/rmarkdown.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ dev_dependencies = ["rmarkdown"]
ecosystems = ["r"]

[taxonomy]
function = ["documentation"]
function = ["documentation", "literate-programming", "report-generation"]
4 changes: 2 additions & 2 deletions knowledge/r/targets.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ files = ["_targets.R"]

[taxonomy]
role = ["build-tool", "orchestrator"]
function = ["automation"]
domain = ["data-science", "scientific-computing"]
function = ["workflow-orchestration"]
domain = ["data-science", "research", "scientific-computing"]
audience = ["data-scientist", "researcher"]