-*- mode: org -*- #+TITLE: configuration: .gitignore and copyright #+DESCRIPTION: setup only; the code, READMEs and build files are kept as files #+FILETAGS: :spine:build:tools: #+AUTHOR: Ralph Amissah #+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] #+COPYRIGHT: Copyright (C) 2026 Ralph Amissah #+LANGUAGE: en #+STARTUP: show3levels hideblocks hidestars noindent entitiespretty #+PROPERTY: header-args+ :eval never-export :exports code #+PROPERTY: header-args+ :noweb yes :padline no #+PROPERTY: header-args+ :results silent :cache no #+PROPERTY: header-args+ :mkdirp yes #+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t * ./ ** git .gitignore :gitignore: - git ls-files --others --exclude-from=.git/info/exclude - git ls-files --others --ignored --exclude-standard --directory - git check-ignore -v flake.lock - git clean -ix - find . -name "*_" | xargs rm -rf - find . -name "*.o" | xargs rm -rf #+HEADER: :tangle "../.gitignore" #+BEGIN_SRC gitignore # Deny everything, then whitelist what belongs in the repository. # # The practice is deliberate: a repository should hold what was decided to # put in it, not whatever happened to be in the directory when someone ran # "git add .". Build output, editor droppings, downloaded dependencies and # exported binaries are numerous, are regenerated, and differ between # machines; source is few and is chosen. So the default is no, and every # yes below is a decision that can be read. # # To see what is being excluded, and why: # git status --ignored # git check-ignore -v # git ls-files --others --ignored --exclude-standard --directory * # ── the repository itself ──────────────────────────────────────────────── !.gitignore !README.md !**/COPYRIGHT !**/LICENSE # ── directories have to be walked into before a file inside can match ──── !gleam/ !dlang/ !org/ !gleam/**/ !dlang/**/ !org/**/ !pipeline/ # but not these, whatever they contain build/ .build/ .direnv/ .gleam/ bin/ result result-* # ── documentation and notes, in any language directory ─────────────────── !**/*.md !**/*.org # ── nix ────────────────────────────────────────────────────────────────── !**/*.nix !**/flake.lock !**/.envrc # ── dlang ──────────────────────────────────────────────────────────────── !**/*.d !**/dub.json !**/dub.sdl !**/dub.selections.json *.o *.a *.lst # ── gleam ──────────────────────────────────────────────────────────────── !**/*.gleam # Erlang, for what Gleam reaches through FFI (a sha256, from OTP crypto) !**/src/*.erl # gleam.toml is the manifest, manifest.toml is the lockfile: both belong !**/*.toml *.beam *.ez erl_crash.dump # ── ruby, when it arrives ──────────────────────────────────────────────── !**/*.rb !**/Gemfile !**/Gemfile.lock !**/*.gemspec # ── continuous integration ─────────────────────────────────────────────── !**/*.sh !**/*.yml !**/*.yaml #+END_SRC * COPYRIGHT & LICENSE ** notices *** project (project root) ./ #+HEADER: :tangle "../COPYRIGHT" #+HEADER: :noweb yes #+BEGIN_SRC text - Name: <> <> <> <> #+END_SRC #+HEADER: :tangle "../LICENSE" #+HEADER: :noweb yes #+BEGIN_SRC text <> #+END_SRC *** code org ./org - .org literate programming: - copyright asserted - omitted - license - dependency information #+HEADER: :tangle "../org/COPYRIGHT" #+HEADER: :noweb yes #+BEGIN_SRC text - Name: <> <> <> #+END_SRC #+HEADER: :noweb yes #+BEGIN_SRC text - Name: <> <> <> <> #+END_SRC *** code source **** gleam #+HEADER: :tangle "../gleam/COPYRIGHT" #+HEADER: :noweb yes #+BEGIN_SRC org - Name: <> <> <> <> - Copyright for ./nix-gleam/ 2023 Arnar Gauti Ingason - License for ./nix-gleam/ MIT License #+END_SRC ***** gleam src #+HEADER: :tangle "../gleam/src/COPYRIGHT" #+HEADER: :noweb yes #+BEGIN_SRC org - Name: <> <> <> <> #+END_SRC **** dlang ***** dlang #+HEADER: :tangle "../dlang/COPYRIGHT" #+HEADER: :noweb yes #+BEGIN_SRC org - Name: <> <> <> <> #+END_SRC ***** dlang src #+HEADER: :tangle "../dlang/src/COPYRIGHT" #+HEADER: :noweb yes #+BEGIN_SRC org - Name: <> <> <> <> #+END_SRC * org includes ** project name #+NAME: project_name #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:project_name()>> #+END_SRC ** project version #+NAME: spine_version #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:spine_project_version()>> #+END_SRC ** ocda ssp format version #+NAME: ocda_ssp_format_version #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:ocda_ssp_format_version()>> #+END_SRC ** copyright #+NAME: sisudoc_spine_copyright #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:sisudoc_spine_copyright()>> #+END_SRC ** license agpl3 #+NAME: sisudoc_spine_license_agpl3 #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:sisudoc_spine_license_agpl3()>> #+END_SRC #+NAME: sisudoc_spine_license_agpl3_the_license #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:sisudoc_spine_license_agpl3_the_license()>> #+END_SRC ** spine_summary #+NAME: sisudoc_spine_summary #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:sisudoc_spine_summary()>> #+END_SRC ** year #+NAME: year #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:year()>> #+END_SRC * nixpkgs source #+NAME: nixpkgs_unstable #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:nixpkgs_unstable()>> #+END_SRC * __END__