repository-template
Applies best practices for OSS repositories for Gitlab and Github
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.2%) to scientific vocabulary
Keywords
Repository
Applies best practices for OSS repositories for Gitlab and Github
Basic Info
Statistics
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 2
- Releases: 3
Topics
Metadata Files
README.md
Repository Template
Authors:
Table of Content (click to expand)
- [What Is This?](#what-is-this) - [Usage](#usage) - [Over Container](#over-container) - [By Cloning](#by-cloning) - [Arguments](#arguments) - [Structure](#structure) - [Generic Template](#generic-template) - [Toolchain](#toolchain) - [Rust Template](#rust-template) - [Toolchain](#toolchain) - [Go Template](#go-template) - [Toolchain](#toolchain) - [Python Template](#python-template) - [Toolchain](#toolchain) - [CI Implementations](#ci-implementations) - [Github Actions](#github-actions) - [Development](#development) - [Copyright](#copyright)What Is This?
This is a repository template giving you a top-level structure with the following features.
- Git & Git Large File System (LFS) configured.
- Nix development shell enabled with
direnvand.envrc. - Language specific best-practice setup for
rust,goorpython. - Formatting with
treefmt-nix. - Githooks (optional) which runs
pre-commitchecks:- Git LFS checks.
- Format with
treefmt-nix.
- Devcontainer: not-yet-provided (future, based on Nix dev shell)
Usage
Over Container
bash
mkdir repo
podman run -it -v "$(pwd)/repo:/workspace" \
ghcr.io/sdsc-ordes/repository-template:latest \
-t "<language>" -d "." [-- ["args-to-copier"...]]
[!CAUTION]
Using
dockerabove will createroot-owned files on your machine (by default without some user namespacing setup etc.), we strongly recommend usingpodmaninstead.
See arguments explanations here.
By Cloning
Clone this repository to some place of your choice.
Apply the templates with copier using the following:
bash
cd repo && git pull
just create -t "<language>" -d "<destination>" [-- ["args-to-copier"...]]
See arguments explanations here.
Arguments
<destination>is the destination folder where you want to place your new repository.<language>is one of the following templates:[args-to-copier...]are optional arguments passed tocopier. If you want to overwrite by default use-wand not answerYall the time and-lto apply all defaults to inspect:
shell
just create -t <language> -d <destination> -- -w -l
Structure
The following describes the content of the top-level directories:
docs: All documentation-related files. The README.md should link into this folder.examples: Examples showing how to use this software component.external: Third party resources imported with git submodules, vendir or other tools.src: Where your source code lives.tools: Specific needs which are not part of the source:
Generic Template
Toolchain
- Command-Runner:
just - Nix Shell:
devenvprovided Nix shell using toolchain-generic.nix. - Formatter: Tree format with
treefmt-nixand enabled languages
Rust Template
Toolchain
- Toolchain: Rust toolchain on
nightly - Build-Tool:
cargo - LSP:
rust-analyzer - Formatter:
rustfmt
Go Template
Toolchain
- Compiler:
goat1.23.X - Build-Tool:
go - LSP:
gopls - Formatter:
gofmt,goimports,golines
Python Template
Toolchain
- Source
Interpreter:
pythonat3.12Build-Tool:
uvLSP:
pyrightFormatter:
ruff
CI Implementations
Github Actions
The following workflows are defined:
format.yaml: Formats the whole repository withtreefmt, configured over Nix. For it to work withcachix(a Nix CI caching mechanism) you need to define two secrets in Settings -> Secrets & variables -> Actions -> Repositories secrets:CACHIX_CACHE_NAME: The cache name you created on cachix.org. This is free for public caches, which is acceptable for OSS repositories.CACHIX_AUTH_TOKEN: The access token created on cachix.org for this cacheCACHIX_CACHE_NAME.
Development
Read first the Contribution Guidelines.
For technical documentation on setup and development, see the Development Guide
Copyright
Copyright © 2025-2028 Swiss Data Science Center (SDSC), www.datascience.ch. All rights reserved. The SDSC is jointly established and legally represented by the École Polytechnique Fédérale de Lausanne (EPFL) and the Eidgenössische Technische Hochschule Zürich (ETH Zürich). This copyright encompasses all materials, software, documentation, and other content created and developed by the SDSC.
Owner
- Name: Swiss Data Science Center - ORD
- Login: sdsc-ordes
- Kind: organization
- Location: Switzerland
- Repositories: 1
- Profile: https://github.com/sdsc-ordes
Open Research Data team at the Swiss Data Science Center.
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "repository-template"
authors:
- family-names: "Gabriel"
given-names: "Nuetzi"
orcid: "https://orcid.org/0009-0008-8197-2851"
affiliation: "SDSC - Swiss Data Science Center"
- family-names: "Cyril"
given-names: "Matthey-Doret"
orcid: "https://orcid.org/0000-0002-1126-1535"
affiliation: "SDSC - Swiss Data Science Center"
date-released: 2025-01-27
version: "1.0.0"
doi: "" # Replace with your DOI if applicable
url: ""
repository-code: "https://github.com/sdsc-ordes/repository-template"
keywords:
- repository template
license: "apache-2.0"
GitHub Events
Total
- Create event: 10
- Issues event: 5
- Release event: 2
- Delete event: 7
- Member event: 1
- Issue comment event: 5
- Push event: 95
- Public event: 1
- Pull request review comment event: 9
- Pull request review event: 15
- Pull request event: 12
Last Year
- Create event: 10
- Issues event: 5
- Release event: 2
- Delete event: 7
- Member event: 1
- Issue comment event: 5
- Push event: 95
- Public event: 1
- Pull request review comment event: 9
- Pull request review event: 15
- Pull request event: 12
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 10
- Average time to close issues: 4 minutes
- Average time to close pull requests: 5 days
- Total issue authors: 1
- Total pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.8
- Merged pull requests: 9
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 10
- Average time to close issues: 4 minutes
- Average time to close pull requests: 5 days
- Issue authors: 1
- Pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.8
- Merged pull requests: 9
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- gabyx (2)
Pull Request Authors
- gabyx (6)
- cmdoret (3)
- rmfranken (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- cachix/cachix-action v15 composite
- cachix/install-nix-action v30 composite
- anstream 0.6.18
- anstyle 1.0.10
- anstyle-parse 0.2.6
- anstyle-query 1.1.2
- anstyle-wincon 3.0.7
- anyhow 1.0.95
- clap 4.5.28
- clap_builder 4.5.27
- clap_derive 4.5.28
- clap_lex 0.7.4
- colorchoice 1.0.3
- heck 0.5.0
- is_terminal_polyfill 1.70.1
- once_cell 1.20.2
- proc-macro2 1.0.93
- quote 1.0.38
- strsim 0.11.1
- syn 2.0.98
- unicode-ident 1.0.16
- utf8parse 0.2.2
- windows-sys 0.59.0
- windows-targets 0.52.6
- windows_aarch64_gnullvm 0.52.6
- windows_aarch64_msvc 0.52.6
- windows_i686_gnu 0.52.6
- windows_i686_gnullvm 0.52.6
- windows_i686_msvc 0.52.6
- windows_x86_64_gnu 0.52.6
- windows_x86_64_gnullvm 0.52.6
- windows_x86_64_msvc 0.52.6
- github.com/cpuguy83/go-md2man/v2 v2.0.4
- github.com/davecgh/go-spew v1.1.1
- github.com/golang-cz/devslog v0.0.11
- github.com/inconshreveable/mousetrap v1.1.0
- github.com/pmezard/go-difflib v1.0.0
- github.com/russross/blackfriday/v2 v2.1.0
- github.com/spf13/cobra v1.8.1
- github.com/spf13/pflag v1.0.5
- github.com/stretchr/testify v1.10.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/yaml.v3 v3.0.1
- annotated-types 0.7.0
- anyio 4.8.0
- appnope 0.1.4
- argon2-cffi 23.1.0
- argon2-cffi-bindings 21.2.0
- arrow 1.3.0
- asttokens 3.0.0
- async-lru 2.0.4
- attrs 25.1.0
- babel 2.17.0
- beautifulsoup4 4.13.1
- bleach 6.2.0
- certifi 2025.1.31
- cffi 1.17.1
- charset-normalizer 3.4.1
- colorama 0.4.6
- comm 0.2.2
- debugpy 1.8.12
- decorator 5.1.1
- defusedxml 0.7.1
- executing 2.2.0
- fastjsonschema 2.21.1
- fqdn 1.5.1
- h11 0.14.0
- httpcore 1.0.7
- httpx 0.28.1
- idna 3.10
- ipykernel 6.29.5
- ipython 8.32.0
- isoduration 20.11.0
- jedi 0.19.2
- jinja2 3.1.5
- json5 0.10.0
- jsonpointer 3.0.0
- jsonschema 4.23.0
- jsonschema-specifications 2024.10.1
- jupyter-client 8.6.3
- jupyter-core 5.7.2
- jupyter-events 0.12.0
- jupyter-lsp 2.2.5
- jupyter-server 2.15.0
- jupyter-server-terminals 0.5.3
- jupyterlab 4.3.5
- jupyterlab-pygments 0.3.0
- jupyterlab-server 2.27.3
- markupsafe 3.0.2
- matplotlib-inline 0.1.7
- mistune 3.1.1
- mymodule 0.0.1
- nbclient 0.10.2
- nbconvert 7.16.6
- nbformat 5.10.4
- nest-asyncio 1.6.0
- notebook 7.3.2
- notebook-shim 0.2.4
- overrides 7.7.0
- packaging 24.2
- pandocfilters 1.5.1
- parso 0.8.4
- pexpect 4.9.0
- platformdirs 4.3.6
- prometheus-client 0.21.1
- prompt-toolkit 3.0.50
- psutil 6.1.1
- ptyprocess 0.7.0
- pure-eval 0.2.3
- pycparser 2.22
- pydantic 2.10.6
- pydantic-core 2.27.2
- pygments 2.19.1
- python-dateutil 2.9.0.post0
- python-json-logger 3.2.1
- pywin32 308
- pywinpty 2.0.15
- pyyaml 6.0.2
- pyzmq 26.2.1
- referencing 0.36.2
- requests 2.32.3
- rfc3339-validator 0.1.4
- rfc3986-validator 0.1.1
- rpds-py 0.22.3
- send2trash 1.8.3
- setuptools 75.8.0
- six 1.17.0
- sniffio 1.3.1
- soupsieve 2.6
- stack-data 0.6.3
- terminado 0.18.1
- tinycss2 1.4.0
- tornado 6.4.2
- traitlets 5.14.3
- types-python-dateutil 2.9.0.20241206
- typing-extensions 4.12.2
- uri-template 1.3.0
- urllib3 2.3.0
- wcwidth 0.2.13
- webcolors 24.11.1
- webencodings 0.5.1
- websocket-client 1.8.0