Bibliography
- https://www.pearson.com/us/higher-education/program/Smith-Software-Build-Systems-Principles-and-Experience/PGM105534.html
- Linkers and Loaders by John R. Levine https://www.elsevier.com/books/linkers-and-loaders/levine/978-0-08-051031-6
- https://stackoverflow.com/questions/18835833/is-the-book-linkers-and-loaders-by-levine-still-relevant
- https://linker.iecc.com/
- https://www.iecc.com/linker/
- ftp://ftp.iecc.com/pub/linker/
- GitHub - snowleopard/build: Build Systems à la Carte
- research!rsc: Our Software Dependency Problem
C/C++ package management
- GitHub - ruslo/hunter
- GitHub - pfultz2/cget: C++ package retrieval
- GitHub - conan-io/conan: Conan - The open-source C/C++ package manager
Build systems / environment management
- GitHub - bazelbuild/bazel: a fast, scalable, multi-language and extensible build system
- Starlark Language - Bazel
- https://github.com/bazelbuild/starlark/blob/master/users.md
- Starlark Language - Bazel
- GitHub - facebook/buck: A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.
- https://ndmitchell.com/downloads/slides-cheaply_writing_a_fast_interpreter-23_feb_2021.pdf
- Build Systems for Multi-Language Monorepo
- Gradle vs Bazel for JVM Projects
- Open-Sourcing Isopod: An Expressive DSL Framework for Kubernetes Configuration - by Charles Xu - Cruise - Medium
- Clang Static Analyzer
- GitHub - bookingcom/pakket: An Unopinionated Meta-Packaging System
- GitHub - fluendo/cerbero
- lib/Metabrik/Shell/Command.pm - metacpan.org
- Pants
- Welcome to the BuildStream project - BuildStream, the software integration tool
- crossroad · PyPI
- Module systems
Cross-compiling / older libcs
- SCons: A software construction tool - SCons
- Premake
- tup - Home
Debugging / profiling / coverage tools for C/C++
- GitHub - google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
- Perf Wiki
- GitHub - notfoundry/ppstep: Interactive C/C++ preprocessor macro debugger
- linux - is there a tool for finding shared library symbol conflicts? - Unix & Linux Stack Exchange
- HowToGetABacktrace - Debian Wiki
- https://stackoverflow.com/questions/24284293/recommended-way-to-track-down-array-out-of-bound-access-write-in-c-program
- GitHub - dyninst/dyninst: DyninstAPI: Tools for binary instrumentation, analysis, and modification.
- OllyDbg - Wikipedia
- DUMPBIN Command Line - Microsoft Learn
- GitHub - LLNL/GOTCHA: GOTCHA is a library for wrapping function calls in shared libraries
Language Server
- LSIF.dev
- GitHub - neoclide/coc.nvim: Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
- Official page for Language Server Protocol
Repository indexes
- Repology
- pkgs.org - Packages for Linux and Unix operating systems
- Anitya
- https://reposcope.com/ — seems down?
Package indexes
Parsing / static analysis + API + docs
- List of tools for static code analysis - Wikipedia
- Moosetechnology
- PMD
- GitHub - trailofbits/graphtage: A semantic diff utility and library for tree-like files such as JSON, JSON5, XML, HTML, YAML, and CSV.
- GitHub - returntocorp/pfff: pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.
- GitHub - returntocorp/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
- GitHub - returntocorp/ocaml-tree-sitter-semgrep: Generate parsers from tree-sitter grammars extended to support Semgrep patterns
- GitHub - tree-sitter/tree-sitter: An incremental parsing system for programming tools
- Simplified Wrapper and Interface Generator
- Doxygen: Doxygen
- GitHub - CastXML/CastXML: C-family Abstract Syntax Tree XML Output
- https://www.riverbankcomputing.com/software/sip/intro
- GitHub - vapier/coverity-scan-action: Coverity Scan Github Action
- GitHub - openrewrite/rewrite: Automated mass refactoring of source code.
Misc package managers
Tasks
- GitHub - melezhik/Sparrow6: Raku Automation Framework
- GitHub - RexOps/Rex: Rex, the friendly automation framework
- GitHub - nektos/act: Run your GitHub Actions locally 🚀
- GitHub - casey/just: 🤖 Just a command runner
Linking
- GitHub - JonathonReinhart/staticx: Create static executable from dynamic executable
- GitHub - NixOS/patchelf: A small utility to modify the dynamic linker and RPATH of ELF executables
Rendering debugging
- GitHub - baldurk/renderdoc: RenderDoc is a stand-alone graphics debugging tool.
- GitHub - google/gapid: Graphics API Debugger
- Debugging Tools - OpenGL Wiki
- GitHub - ValveSoftware/vogl: OpenGL capture / playback debugger.
- GitHub - apitrace/apitrace: Tools for tracing OpenGL, Direct3D, and other graphics APIs
- GitHub - LunarG/VulkanTools: Tools to aid in Vulkan development
VM / JIT
Codemeta
- The CodeMeta Project
- Generate CodeMeta Metadata for R Packages • codemetar
- GitHub - cboettig/codemeta: A smaller codemetar
Security
Virtualisation
- Detect virtualisation
- OSes on CI
- https://en.wikipedia.org/wiki/Comparison_of_platform_virtualization_software
GitHub Actions for specific languages
- Examples: https://github.com/actions/starter-workflows
- GitHub - 40ants/setup-lisp: GitHub Action to Setup Common Lisp tools
- GitHub - actions/setup-dotnet: Set up your GitHub Actions workflow with a specific version of the .NET core sdk
- GitHub - actions/setup-go: Set up your GitHub Actions workflow with a specific version of Go
- GitHub - actions/setup-java: Set up your GitHub Actions workflow with a specific version of Java
- GitHub - actions/setup-node: Set up your GitHub Actions workflow with a specific version of node.js
- GitHub - actions/setup-python: Set up your GitHub Actions workflow with a specific version of Python
- GitHub - logtalk-actions/setup-swi-prolog: Setup SWI-Prolog action
- GitHub - r-lib/actions: GitHub Actions for the R community
- GitHub - ruby/setup-ruby: An action to download a prebuilt Ruby and add it to the PATH in 5 seconds
- GitHub - shivammathur/setup-php: GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.
- GitHub - shogo82148/actions-setup-perl: Setup Perl environment Action
Package differences
- GitHub - lvc/pkgdiff: A tool for visualizing changes in Linux software packages
- TarDiff - Tarball comparison tool
- DIFFSTAT – make histogram from diff-output
- diffoscope: in-depth comparison of files, archives, and directories
Runtime environment
- schroot — codelibre.net
- GitHub - containers/bubblewrap: Unprivileged sandboxing tool
- GitHub - lima-vm/lima: Linux virtual machines, typically on macOS, for running containerd
- GitHub - containers/skopeo: Work with remote images registries - retrieving information, images, signing content
- Open Container Initiative - Open Container Initiative
- Welcome to Koji’s documentation! — Koji documentation
- https://github.com/containerbuildsystem/atomic-reactor
- https://github.com/iximiuz/awesome-container-tinkering
Linters / Tidiers
- https://github.com/houseabsolute/precious
- https://github.com/collab-qa/check-all-the-things
- https://metacpan.org/dist/Code-TidyAll
- https://github.com/caramelomartins/awesome-linters
REPL
- https://github.com/replit-archive/repl.it
- https://github.com/replit/prybar
Licenses
Code owners
- https://metacpan.org/dist/File-Codeowners
- https://github.com/toptal/codeowners-checker
- https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
- GitLab https://docs.gitlab.com/ee/user/project/code_owners.html
- https://codeowners.com/
- https://www.fullstory.com/blog/taming-github-codeowners-with-bots/
Intel oneAPI
- Intel oneAPI on GitHub Actions - Scientific Computing - SciVision
- GitHub - intel/oneapi-containers
- intel :: Anaconda.org
HPC workflows
- Singularity (software) - Wikipedia
- Home - Apptainer
- GitHub - apptainer/apptainer: Apptainer: Application containers for Linux
- GitHub - sylabs/singularity: SingularityCE is the Community Edition of Singularity, an open source container platform designed to be simple, fast, and secure.
- GitHub - hpcng/warewulf: Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems.
- Singularity · GitHub
- Snakemake documentation
Website debugging
- Enable remote debugging on the iOS simulator using Chrome Dev Tools · GitHub
- GitHub - remy/jsconsole: Web based console - for presentations and workshops
- GitHub - google/ios-webkit-debug-proxy: A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector).
- Remote debug Android devices - Chrome Developers
- Remote Debugging for Chrome iOS (and Safari) - Stack Overflow
- How to debug remote iOS device using Chrome DevTools - by nikoloza - Symbols
- weinre - Home
- Jon Sadka - How to debug an issue in Chrome for iOS using remote debugging
- Is there any way to debug chrome in any IOS device - Stack Overflow
- RemoteDebug, an initiative to unify remote debugging across browsers.
- Inspect – The mobile DevTools you'll love using
REST APIs
OpenAPI, JSON Schema
- OpenAPI Specification - Swagger
- OpenAPI Examples Need Help
- Creating OpenAPI from HTTP Traffic - APIs You Won't Hate
- JSON Schema - The home of JSON Schema
System package managers
Regular expressions
- regex - Code coverage tools for regexes? - Stack Overflow
- Rex - Regular Expression Exploration - Microsoft Research
- Xeger - A Java library for generating random text from regular expressions
Software architecture
Performance visualisation
VCS
Security
- GitHub - mviereck/x11docker: Run GUI applications and desktops in docker and podman containers. Focus on security.
- ClamAVNet
- Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies - by Alex Birsan - Medium
- Compromised PyTorch-nightly dependency chain between December 25th and December 30th, 2022. - PyTorch
- https://azure.microsoft.com/en-us/resources/3-ways-to-mitigate-risk-using-private-package-feeds/
- Threat Alert: Private npm Packages Disclosed via Timing Attacks
- Python Malware Starting to Employ Anti-Debug Techniques
- New Technique Used by Attackers in NPM to Avoid Detection - Checkmarx.com
- Language-theoretic Security
Dependency resolving
- GitHub - openSUSE/libsolv: Library for solving packages and reading repositories
- How Rust Solved Dependency Hell - Stephen Coakley
- pub/solver.md at master · dart-lang/pub · GitHub
Packaging
Merging
- Mark J. Wielaard » Blog Archive » Automagically merging ChangeLog files with mercurial or git
- Git
merge=union
https://www.git-scm.com/docs/gitattributes#Documentation/gitattributes.txt-union- Support merge=union from .gitattributes when evaluating merge conflicts (#17325) · Issues · GitLab.org / GitLab FOSS · GitLab
- Pull request conflicts: Support
merge=union
in .gitattributes file · community · Discussion #9288 · GitHub - Revisit gitattributes merge=union · Issue #21516 · scikit-learn/scikit-learn · GitHub
- Merge conflicts in csproj files - You’ve Been Haacked
- merge=union · Issue #56 · olivierlacan/keep-a-changelog · GitHub
- GitLab reduced merge conflicts by 90% with changelog placeholders-GitLab
Configuration management
- TODO: Compare with CM capabilities.
Releasing
Visualization
- GitHub - CoatiSoftware/Sourcetrail: Sourcetrail - free and open-source interactive source explorer
- Call graph - Wikipedia
- Mermaid - Diagramming and charting tool
- PlantUML: Open-source tool that uses simple textual descriptions to draw beautiful UML diagrams.
- Home - D2 Documentation
- Plain text diagrams - the best diagrams as code tools
MLOps
Model-based / language-oriented
Literate programming
- GitHub - bashup/mdsh: Multi-lingual, Markdown-based Literate Programming... in run-anywhere bash
- GitHub - bashup/jqmd: Write and document your jq/shell scripts with markdown
- Noweb - Wikipedia