Infrastructure info for projects associated with the following:
- NC — Namecheap1
- DH — DreamHost1
- GCE — Google (Cloud) Compute Engine 1
- CF — Cloudflare1
- GH — GitHub (under
github.com/cubing) - SW — offline support through service worker
- URL: https://github.com/cubing
- Org settings URL: https://github.com/organizations/cubing/settings/profile
- 2FA enforcement for members:
- Require two-factor authentication
- Only allow secure two-factor methods
- Require two-factor authentication
- Owners:
@lgarron,@jfly
Certain repos have elevated privileges for maintainers. (TODO: document these.)
"Require two-factor authentication" and "Only allow secure two-factor methods" are enabled. This still leaves a lot of authentication options, and prevents a large class of potential risks. (Note that @lgarron worked on authentication at GitHub, and is very familiar with the security model, implementation, and tradeoffs.)
- URL: https://www.npmjs.com/org/cubing
- Org settings URL: https://www.npmjs.com/settings/cubing/packages
- 2FA enforcement for members: No (TODO)
- Owner:
@lgarron - Admin:
@jfly
- URL: (redacted)
- Owner:
@lgarron - Manager:
@jfly
- URL: https://codeberg.org/cubing
- Org settings URL: text
- Owner:
@lgarron
Codeberg is an non-profit alternative to GitHub with a principled mission that pushes back against what many see as hostile practices by GitHub. Projects may migrate there over time to avoid reliance on GitHub.
- We generally publish code under one of the following licenses:
- Dedicate to the public domain using the Unlicense.
- MPL: for projects we want to encourage open collaboration for.
- MIT: for projects with permissive usage.
- GPL: Do not use for new projects. Use the MPL instead.
- Makefile conventions: https://github.com/lgarron/Makefile-convention, particularly:
make devandmake build - Files with a
.jsonextension must contain valid JSON.- If using JSON5 or JSONC:
- Prefer JSON5 (which has a spec) over JSONC (an ad-hoc format that Microsoft refuses to standardize and which even Microsoft's tools parse and validate inconsistently).
- Always use
.json5or.jsoncfile extensions. (Example:biome.jsonc)- If a tool requires a use of a
.jsonfile extension (e.g. TypeScript) and the file contents are not valid JSON, move the file to an adjacent.jsoncor.json5and symlink or reference the.jsonfile path. (Example:tsconfig.json→tsconfig.jsonc)
- If a tool requires a use of a
- If using JSON5 or JSONC:
- Add a
CI.yamlGitHub Actions workflow with the following jobs when relevant. Do not use secrets for any workflows in this file.buildtest
- JS projects:
- Language: TypeScript
- Bundler:
esbuild - Formatter:
biome
- Rust:
- When a nightly toolchain is needed (e.g. for the
portable_simdfeature), usenightly-2025-12-01for now. (Examples)
- When a nightly toolchain is needed (e.g. for the
Many of these conventions are available in: https://github.com/lgarron/ts-project-template