diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..dc38297f --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1 @@ +FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/jekyll:2-bullseye diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 0e544282..0d24b16f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,41 +1,21 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/jekyll { - "name": "Jekyll", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/jekyll:2-bullseye", - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - // Uncomment the next line to run commands after the container is created. - "postCreateCommand": "zsh scripts/devcontainer/postcreatecommand.sh", - "postStartCommand": "zsh scripts/devcontainer/poststartcommand.sh", - "forwardPorts": [4000], - // Configure tool-specific properties. + "build": { + "dockerfile": "Dockerfile" + }, "customizations": { "codespaces": { - "openFiles": ["README.md", ".github/SECURITY.md", "docs/index.md"] + "openFiles": [ + "README.md", + ".github/SECURITY.md", + "docs/index.md" + ] }, "vscode": { - // Set *default* container specific settings.json values on container create. - "settings": { - "autoOpenWorkspace.enableAutoOpenIfSingleWorkspace": true, - "editor.formatOnSave": true, - "files.insertFinalNewline": true, - "[makefile]": { - "editor.insertSpaces": false, - "editor.detectIndentation": false - } - }, - // Add the IDs of extensions you want installed when the container is created. "extensions": [ - "zoma.vscode-auto-open-workspace", "alefragnani.bookmarks", "davidanson.vscode-markdownlint", "dbaeumer.vscode-eslint", "donjayamanne.githistory", - "eamodio.gitlens", "editorconfig.editorconfig", "esbenp.prettier-vscode", "github.codespaces", @@ -45,6 +25,8 @@ "github.vscode-pull-request-github", "hediet.vscode-drawio", "johnpapa.vscode-peacock", + "joshx.workspace-terminals", + "maattdd.gitless", "mhutchie.git-graph", "ms-azuretools.vscode-docker", "ms-vscode-remote.remote-containers", @@ -54,6 +36,7 @@ "ms-vsliveshare.vsliveshare", "redhat.vscode-xml", "streetsidesoftware.code-spell-checker-british-english", + "takumii.markdowntable", "tamasfe.even-better-toml", "tomoki1207.pdf", "vscode-icons-team.vscode-icons", @@ -62,43 +45,59 @@ "yzane.markdown-pdf", "yzhang.dictionary-completion", "yzhang.markdown-all-in-one", - "joshx.workspace-terminals", - "takumii.markdowntable" - ] + "zoma.vscode-auto-open-workspace" + ], + "settings": { + "[makefile]": { + "editor.detectIndentation": false, + "editor.insertSpaces": false + }, + "autoOpenWorkspace.enableAutoOpenIfSingleWorkspace": true, + "editor.formatOnSave": true, + "extensions.ignoreRecommendations": true, + "files.insertFinalNewline": true + } } }, "features": { "ghcr.io/devcontainers/features/aws-cli:1": { "version": "latest" }, + "ghcr.io/devcontainers/features/common-utils:2": { + "configureZshAsDefaultShell": true, + "installOhMyZsh": true, + "installOhMyZshConfig": true, + "installZsh": true, + "upgradePackages": true, + "userGid": "automatic", + "userUid": "automatic", + "username": "automatic" + }, "ghcr.io/devcontainers/features/docker-in-docker:2": { - "moby": true, "azureDnsAutoDetection": true, + "dockerDashComposeVersion": "latest", "installDockerBuildx": true, "installDockerComposeSwitch": true, - "version": "latest", - "dockerDashComposeVersion": "latest" - }, - "ghcr.io/devcontainers/features/node:1": { - "nodeGypDependencies": true, - "version": "lts", - "nvmVersion": "latest" + "moby": true, + "version": "latest" }, "ghcr.io/devcontainers/features/github-cli:1": { "installDirectlyFromGitHubRelease": true, "version": "latest" }, - "ghcr.io/devcontainers/features/common-utils:2": { - "installZsh": true, - "configureZshAsDefaultShell": true, - "installOhMyZsh": true, - "installOhMyZshConfig": true, - "upgradePackages": true, - "username": "automatic", - "userUid": "automatic", - "userGid": "automatic" + "ghcr.io/devcontainers/features/node:1": { + "nodeGypDependencies": true, + "nvmVersion": "latest", + "version": "lts" } - } - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" + }, + "forwardPorts": [ + 4000 + ], + "name": "Jekyll", + "postCreateCommand": "zsh scripts/devcontainer/postcreatecommand.sh", + "postStartCommand": "zsh scripts/devcontainer/poststartcommand.sh", + "runArgs": [ + "--platform=linux/amd64" + ] } diff --git a/.editorconfig b/.editorconfig index 02e8abcc..fd5c3548 100644 --- a/.editorconfig +++ b/.editorconfig @@ -19,3 +19,13 @@ indent_size = 4 [{Makefile,*.mk,go.mod,go.sum,*.go,.gitmodules}] indent_style = tab + +# Ignore paths +[Gemfile.lock] +charset = unset +end_of_line = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +indent_style = unset +indent_size = unset +generated_code = true diff --git a/.github/actions/build-docs/action.yml b/.github/actions/build-docs/action.yml index 46a1222f..a7001469 100644 --- a/.github/actions/build-docs/action.yml +++ b/.github/actions/build-docs/action.yml @@ -19,7 +19,7 @@ runs: - name: Setup Ruby uses: ruby/setup-ruby@v1.180.1 with: - ruby-version: "3.1" # Not needed with a .ruby-version file + ruby-version: "3.2" # Not needed with a .ruby-version file bundler-cache: true # runs 'bundle install' and caches installed gems automatically cache-version: 0 # Increment this number if you need to re-download cached gems working-directory: "./docs" diff --git a/.gitleaksignore b/.gitleaksignore index cceb449a..1c92293c 100644 --- a/.gitleaksignore +++ b/.gitleaksignore @@ -1,3 +1,5 @@ # SEE: https://github.com/gitleaks/gitleaks/blob/master/README.md#gitleaksignore cd9c0efec38c5d63053dd865e5d4e207c0760d91:docs/guides/Perform_static_analysis.md:generic-api-key:37 +96096685ab3d6876671e2bc9a6ff4d48fc56e521:src/helloworld/helloworld.sln:ipv4:4 +4f4e8c15629b2cb09356a7fed4d72953590227ce:docs/Gemfile.lock:ipv4:4 diff --git a/.tool-versions b/.tool-versions index 79f163d2..079427cb 100644 --- a/.tool-versions +++ b/.tool-versions @@ -3,7 +3,7 @@ terraform 1.7.0 pre-commit 3.6.0 nodejs 18.18.2 -gitleaks 8.15.3 +gitleaks 8.18.4 # ============================================================================== # The section below is reserved for Docker image versions. diff --git a/.vscode/settings.json b/.vscode/settings.json index 7d4e59b9..c2928649 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,19 +1,20 @@ { "autoOpenWorkspace.enableAutoOpenIfSingleWorkspace": true, "files.exclude": { + "**/.DS_Store": true, "**/.git": true, - "**/.svn": true, "**/.hg": true, + "**/.ruby-lsp": true, + "**/.svn": true, "**/CVS": true, - "**/.DS_Store": true, "**/Thumbs.db": true, - "**/.ruby-lsp": true, - "docs": true, - ".github": true, ".devcontainer": true, + ".github": true, ".vscode": false, - "tests":true, - "infrastructure":true, - "scripts":true + "docs": true, + "infrastructure": true, + "scripts": true, + "terraform": true, + "tests": true } } diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..43e9c0bb --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,29 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +### Changed + +### Removed + +### Deprecated + +### Fixed + +### Security + +## [0.0.1] - 2024-06-20 + +### Added + +- Initial release + +[unreleased]: https://github.com/NHSDigital/nhs-notify-internal/compare/v0.0.1...HEAD +[0.0.1]: https://github.com/NHSDigital/nhs-notify-internal/releases/tag/v0.0.1 diff --git a/docs/.gitignore b/docs/.gitignore index e67025b5..7cc3035d 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -2,6 +2,8 @@ _site .sass-cache .jekyll-cache .jekyll-metadata +.bundle vendor +*Zone.Identifier node_modules _config.version.yml diff --git a/docs/.vscode/launch.json b/docs/.vscode/launch.json index 026216c0..c70893cb 100644 --- a/docs/.vscode/launch.json +++ b/docs/.vscode/launch.json @@ -1,15 +1,19 @@ { - "version": "0.2.0", "configurations": [ { + "console": "integratedTerminal", "name": "Debug", + "preLaunchTask": "stop-already-running", "request": "launch", - "runtimeArgs": ["debug"], + "runtimeArgs": [ + "debug" + ], "runtimeExecutable": "make", - "skipFiles": ["/**"], - "type": "node", - "preLaunchTask": "stop-already-running", - "console": "integratedTerminal" + "skipFiles": [ + "/**" + ], + "type": "node" } - ] + ], + "version": "0.2.0" } diff --git a/docs/.vscode/tasks.json b/docs/.vscode/tasks.json index fd80f47f..6f553062 100644 --- a/docs/.vscode/tasks.json +++ b/docs/.vscode/tasks.json @@ -1,13 +1,13 @@ { - "version": "2.0.0", "tasks": [ { + "command": "kill $(lsof -ti :4000); exit 0;", "label": "stop-already-running", "options": { "cwd": "${workspaceFolder}" }, - "command": "kill $(lsof -ti :4000); exit 0;", "type": "shell" } - ] + ], + "version": "2.0.0" } diff --git a/docs/Gemfile b/docs/Gemfile index da46d858..e4ff8d82 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -34,3 +34,4 @@ gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] gem "just-the-docs" +gem 'jemoji' diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index bb1714e5..0fbc826e 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,11 +1,25 @@ GEM remote: https://rubygems.org/ specs: + activesupport (7.1.3.4) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) + base64 (0.2.0) + bigdecimal (3.1.8) cgi (0.4.1) colorator (1.1.0) concurrent-ruby (1.2.3) + connection_pool (2.4.1) + drb (2.2.1) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) @@ -14,7 +28,11 @@ GEM eventmachine (1.2.7) ffi (1.16.3) forwardable-extended (2.6.0) + gemoji (4.1.0) google-protobuf (3.25.3-x86_64-linux) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) http_parser.rb (0.8.0) i18n (1.14.5) concurrent-ruby (~> 1.0) @@ -48,6 +66,10 @@ GEM jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) just-the-docs (0.8.2) jekyll (>= 3.8.5) jekyll-include-cache @@ -66,6 +88,8 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) + minitest (5.24.1) + mutex_m (0.2.0) nokogiri (1.16.5-x86_64-linux) racc (~> 1.4) pathutil (0.16.2) @@ -86,6 +110,8 @@ GEM strscan (3.1.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) unicode-display_width (2.5.0) webrick (1.8.1) @@ -97,6 +123,7 @@ DEPENDENCIES jekyll (~> 4.3.3) jekyll-drawio jekyll-feed (~> 0.12) + jemoji just-the-docs minima (~> 2.5) tzinfo (>= 1, < 3) @@ -104,4 +131,4 @@ DEPENDENCIES wdm (~> 0.1.1) BUNDLED WITH - 2.5.10 + 2.5.10 diff --git a/docs/Makefile b/docs/Makefile index 2aae8c4c..cafd8ae7 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -16,14 +16,14 @@ s serve: bundle exec jekyll serve --trace --livereload define baseurlparam = -$(if $(BASE_URL),-- --baseurl $(BASE_URL),-- --baseurl "/") +$(if $(BASE_URL),-- --baseurl $(BASE_URL),-- --baseurl "") endef build: version npm run build $(baseurlparam) debug: version - npm run debug $(baseurlparam) + npm run debug version: touch _config.version.yml @@ -31,9 +31,10 @@ version: (cd .. && make version); \ ver=$$(head -n 1 ../.version 2> /dev/null || echo unknown); \ echo "version: $$ver" > _config.version.yml; \ - echo "$(VERSION)" > .version; \ + echo "$$ver" > .version; \ else \ echo "version: $(VERSION)" > _config.version.yml; \ echo "$(VERSION)" > .version; \ fi + echo "{ \"schemaVersion\": 1, \"label\": \"version\", \"message\": \"$$(head -n 1 .version 2> /dev/null || echo unknown)\", \"color\": \"orange\" }" > version.json diff --git a/docs/_config.yml b/docs/_config.yml index 23ef3557..ecf001fd 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -25,7 +25,7 @@ description: >- # this means to ignore newlines until "baseurl:" baseurl: "" # the subpath of your site, e.g. /blog url: "https://nhsdigital.github.io" # the base hostname & protocol for your site, e.g. http://example.com -collections_dir: _collections +collections_dir: collections collections: notify-repos: @@ -36,6 +36,7 @@ collections: theme: just-the-docs plugins: - jekyll-feed + - jemoji color_scheme: nhs mermaid: @@ -89,14 +90,13 @@ callouts: # Excluded items can be processed by explicitly listing the directories or # their entries' file path in the `include:` list. # - include: - .version - version.json exclude: - - Makefile - package-lock.json - package.json + - Makefile # - .sass-cache/ # - .jekyll-cache/ # - gemfiles/ diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss index ab525feb..3340d0e3 100644 --- a/docs/_sass/custom/custom.scss +++ b/docs/_sass/custom/custom.scss @@ -79,6 +79,3 @@ body { th, td { min-width: 1%; } - - - diff --git a/docs/adr/assets/ADR-003/examples/nodejs/package.json b/docs/adr/assets/ADR-003/examples/nodejs/package.json index 0a867c4a..277e40f5 100644 --- a/docs/adr/assets/ADR-003/examples/nodejs/package.json +++ b/docs/adr/assets/ADR-003/examples/nodejs/package.json @@ -1,8 +1,4 @@ { - "main": "main.ts", - "scripts": { - "start": "ts-node main.ts" - }, "dependencies": { "@octokit/auth-app": "^6.0.0", "octokit": "^3.1.0" @@ -10,5 +6,9 @@ "devDependencies": { "ts-node": "^10.9.1", "typescript": "^5.2.2" + }, + "main": "main.ts", + "scripts": { + "start": "ts-node main.ts" } } diff --git a/docs/adr/assets/ADR-003/examples/nodejs/tsconfig.json b/docs/adr/assets/ADR-003/examples/nodejs/tsconfig.json index 25105290..3aa58c4e 100644 --- a/docs/adr/assets/ADR-003/examples/nodejs/tsconfig.json +++ b/docs/adr/assets/ADR-003/examples/nodejs/tsconfig.json @@ -1,10 +1,14 @@ { "compilerOptions": { - "target": "ES6", + "esModuleInterop": true, "module": "commonjs", "strict": true, - "esModuleInterop": true + "target": "ES6" }, - "include": ["*.ts"], - "exclude": ["node_modules"] + "exclude": [ + "node_modules" + ], + "include": [ + "*.ts" + ] } diff --git a/docs/_collections/_notify-repos/nhs-notify-repository-template.md b/docs/collections/_notify-repos/nhs-notify-repository-template.md similarity index 100% rename from docs/_collections/_notify-repos/nhs-notify-repository-template.md rename to docs/collections/_notify-repos/nhs-notify-repository-template.md diff --git a/docs/package-lock.json b/docs/package-lock.json index bb77f6ee..dae51275 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,22 +1,22 @@ { - "name": "nhs-notify", - "version": "1.0.0", "lockfileVersion": 3, - "requires": true, + "name": "nhs-notify", "packages": { "": { - "name": "nhs-notify", - "version": "1.0.0", - "license": "ISC", "dependencies": { "nhsuk-frontend": "^8.1.1" }, - "devDependencies": {} + "devDependencies": {}, + "license": "ISC", + "name": "nhs-notify", + "version": "1.0.0" }, "node_modules/nhsuk-frontend": { - "version": "8.2.0", + "integrity": "sha512-qVMhgQqz0UD9D/sXqvllinge2WeGBwyBxdJAfcNxEvWl4oZ6FWCZbMFE9YCTqDjpfy9k2K251x8QJm1MssSA6Q==", "resolved": "https://registry.npmjs.org/nhsuk-frontend/-/nhsuk-frontend-8.2.0.tgz", - "integrity": "sha512-qVMhgQqz0UD9D/sXqvllinge2WeGBwyBxdJAfcNxEvWl4oZ6FWCZbMFE9YCTqDjpfy9k2K251x8QJm1MssSA6Q==" + "version": "8.2.0" } - } + }, + "requires": true, + "version": "1.0.0" } diff --git a/docs/package.json b/docs/package.json index cee750ff..4b923150 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,18 +1,18 @@ { - "name": "nhs-notify", - "version": "1.0.0", + "author": "", + "dependencies": { + "nhsuk-frontend": "^8.1.1" + }, "description": "", - "private": true, + "devDependencies": {}, "engines": {}, - "scripts": { - "debug": "JEKYLL_ENV=development BUNDLE_GEMFILE=Gemfile bundle exec jekyll serve --config _config.yml,_config.dev.yml,_config.version.yml --limit_posts 100 --trace --livereload", - "build": "JEKYLL_ENV=production bundle exec jekyll build --trace --config _config.yml,_config.version.yml" - }, "keywords": [], - "author": "", "license": "ISC", - "devDependencies": {}, - "dependencies": { - "nhsuk-frontend": "^8.1.1" - } + "name": "nhs-notify", + "private": true, + "scripts": { + "build": "JEKYLL_ENV=production bundle exec jekyll build --trace --config _config.yml,_config.version.yml", + "debug": "JEKYLL_ENV=development BUNDLE_GEMFILE=Gemfile bundle exec jekyll serve --config _config.yml,_config.dev.yml,_config.version.yml --limit_posts 100 --trace --livereload" + }, + "version": "1.0.0" } diff --git a/nhs-notify-repository-template.code-workspace b/nhs-notify-repository-template.code-workspace index cb384d0e..1d6f9907 100644 --- a/nhs-notify-repository-template.code-workspace +++ b/nhs-notify-repository-template.code-workspace @@ -4,6 +4,10 @@ "name": "NHS Notify Repository Template", "path": "." }, + { + "name": "Application Source Code", + "path": "./src" + }, { "name": "Docs", "path": "./docs" diff --git a/scripts/config/gitleaks.toml b/scripts/config/gitleaks.toml index af5f0bb7..e4b6bc15 100644 --- a/scripts/config/gitleaks.toml +++ b/scripts/config/gitleaks.toml @@ -16,4 +16,9 @@ regexes = [ ] [allowlist] -paths = ['''.terraform.lock.hcl''', '''poetry.lock''', '''yarn.lock'''] +paths = [ + '''.terraform.lock.hcl''', + '''poetry.lock''', + '''yarn.lock''', + '''Gemfile.lock''', +] diff --git a/scripts/config/pre-commit.yaml b/scripts/config/pre-commit.yaml index 37ca6375..a7c48eae 100644 --- a/scripts/config/pre-commit.yaml +++ b/scripts/config/pre-commit.yaml @@ -1,40 +1,52 @@ repos: -- repo: local - hooks: - - id: scan-secrets - name: Scan secrets - entry: ./scripts/githooks/scan-secrets.sh - args: ["check=staged-changes"] - language: script - pass_filenames: false -- repo: local - hooks: - - id: check-file-format - name: Check file format - entry: ./scripts/githooks/check-file-format.sh - args: ["check=staged-changes"] - language: script - pass_filenames: false -- repo: local - hooks: - - id: check-markdown-format - name: Check Markdown format - entry: ./scripts/githooks/check-markdown-format.sh - args: ["check=staged-changes"] - language: script - pass_filenames: false -- repo: local - hooks: - - id: check-english-usage - name: Check English usage - entry: ./scripts/githooks/check-english-usage.sh - args: ["check=staged-changes"] - language: script - pass_filenames: false -- repo: local - hooks: - - id: lint-terraform - name: Lint Terraform - entry: ./scripts/githooks/check-terraform-format.sh - language: script - pass_filenames: false + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.6.0 # Use the ref you want to point at + hooks: + - id: trailing-whitespace + - id: detect-aws-credentials + args: [--allow-missing-credentials] + - id: check-added-large-files + - id: check-symlinks + - id: detect-private-key + - id: end-of-file-fixer + exclude: .+\.cs + - id: forbid-new-submodules + - id: mixed-line-ending + - id: pretty-format-json + args: ['--autofix'] + # - id: ... + - repo: local + hooks: + - id: scan-secrets + name: Scan secrets + entry: /bin/env check=whole-history ./scripts/githooks/scan-secrets.sh + language: script + pass_filenames: false + - repo: local + hooks: + - id: check-file-format + name: Check file format + entry: /bin/env check=staged-changes ./scripts/githooks/check-file-format.sh + language: script + pass_filenames: false + - repo: local + hooks: + - id: check-markdown-format + name: Check Markdown format + entry: /bin/env check=staged-changes ./scripts/githooks/check-markdown-format.sh + language: script + pass_filenames: false + - repo: local + hooks: + - id: check-english-usage + name: Check English usage + entry: /bin/env check=staged-changes ./scripts/githooks/check-english-usage.sh + language: script + pass_filenames: false + - repo: local + hooks: + - id: lint-terraform + name: Lint Terraform + entry: ./scripts/githooks/check-terraform-format.sh + language: script + pass_filenames: false diff --git a/src/.vscode/settings.json b/src/.vscode/settings.json new file mode 100644 index 00000000..3a87947e --- /dev/null +++ b/src/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "autoOpenWorkspace.enableAutoOpenIfSingleWorkspace": true, + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.hg": true, + "**/.ruby-lsp": true, + "**/.svn": true, + "**/CVS": true, + "**/Thumbs.db": true, + "helloworld": true + } +} diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 00000000..ccfdd5c4 --- /dev/null +++ b/src/Makefile @@ -0,0 +1,3 @@ +build: + +publish: