Setup
After creating any new repository:
- Add the owner team as an administrator.
- Add a description and some topics to the GitHub project.
- Enable “Vulnerability alerts” under GitHub’s Data Services settings.
- Set up our standard GitHub labels. (Manually is probably easiest.)
- Add notifications to the
#auto-prismSlack channel:/github subscribe Banno/repo-name-here issues pulls
Structure
All projects should follow the convention below:
[.github]
[workflows]
build.yml
release.yml
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
[coverage]
[dist]
[src]
[test]
[unit]
[e2e]
[types]
.dockerignore
.editorconfig
.gitignore
catalog-info.yaml
CODEOWNERS
docker-compose.yml
Dockerfile
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
README.md
server.yml
tsconfig.json
tslint.json
Components
All projects should use the following:
- pnpm for dependency management
- NPM Scripts for task management
- TypeScript for build/transpiling
.editorconfigfile for formatting- TSLint (for TS projects) or Standard for enforcing code style
- Jasmine for unit and end-to-end testing
NPM configuration
- All (published) projects should use the
filespackage property to define the files that should be published. This is preferred over using.gitignoreand.npmignoreto blacklist files.
Typescript configuration
- All libraries written in Typescript should have the
declarationoption turned on so that.d.tsfiles are automatically generated. Projects/applications that aren’t imported into other projects can ignore this.
Docker configuration
- Services should use our Docker base images for their base images; see an existing project for an example.
- Read other Docker tips.
- Docker base images are configured to use UTC for their timezone.