Giter Club home page Giter Club logo

kalos's Introduction

Kalos

This yarn monorepo contains a variety of packages that are published to npm.

Packages

License

MIT License

Contributing

Contributions are encouraged, please see further details below:

Working With Packages

The is a yarn monorepo, therefore scripts in packages can be executed by pre-pending the command with yarn workspace and specifying the name of the package, e.g.

  • Build grpc-boom: yarn workspace grpc-boom build
  • Lint grpc-boom: yarn workspace grpc-boom lint
  • Test grpc-boom: yarn workspace grpc-boom test:unit

Tip: add yarn workspace as an alias to your .bashrc / .zshrc, e.g.

alias yw='yarn workspace'

Creating Package Scoped Commits

In order to assist with changelog generation, this repository uses conventional commit, changes to a package should adhere to this style and include the name of the package, e.g.

  • chore(grpc-boom): set package.json version 3.0.9
  • docs(heart-ping): add contribution guidelines
  • feat(node-ts-uuid): initial migration

Sharing Packages In The Monorepo

Packages can be imported / shared within the monorepo, either using the workspace protocol, the link protocol, or requiring the npm version.

  • npm: Resolves from the npm registry, e.g. "grpc-boom": "npm:^3.0.9"
  • link: Creates a link to a relative folder, e.g. "grpc-boom":"link:../grpc-boom/src"
  • workspace: Creates a link to a package in a workspace e.g. "kalos": "workspace:*"

Package Resolution (Workaround)

The grpc-ts-health-check package uses the grpc-boom package, but because it is in the workspace yarn does not download the dependency from npm. To ensure the package is correctly resolved the following configuration is required:

"dependencies": {
  "grpc-boom": "npm:^3.0.9"
},
"devDependencies": {
  "grpc-boom": "link:../grpc-boom/src"
}

The grpc-boom package can now be resolved locally and when published.

Release Workflow

Each package in this repository has a base workflow, e.g. .github/workflows/grpc-boom.yaml. The base workflow is triggered on each pull-request or push to the main branch based on specific paths, e.g.

on:
  push:
    branches:
      - main
    paths:
      - .github/workflows/grpc-boom.yaml
      - packages/grpc-boom/**
      - package.json
      - tsconfig.json
      - types/**/*.ts
      - '!**.md'
      - '!**/.gitignore'
  pull_request:
    paths:
      - .github/workflows/grpc-boom.yaml
      - packages/grpc-boom/**
      - package.json
      - tsconfig.json
      - types/**/*.ts
      - '!**.md'
      - '!**/.gitignore'

When the workflow is triggered, the first step usually executes build, lint and test operations, if this step succeeds it triggers the next step: draft-release which creates a draft release in kalos.

Publishing

To publish a package to npm one of the draft releases needs to be published:

  1. Navigate to the releases page.
  2. Edit one of the draft releases.
  3. Fill-in the release notes.
  4. Click on the green Publish release button.

This will trigger the the .github/workflows/publish.grpc-boom.yaml workflow by pushing a new tag to the repository. The publish workflow updates the version of the package in the package.json file, and pushes the new version to npm.

Pull Requests

Here are some basic rules to follow to ensure timely addition of your request:

  1. Match coding style (braces, spacing, etc.).
  2. If it is a feature, bugfix, or anything please only change the minimum amount of code required to satisfy the change.
  3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge.
  4. Pull requests must be made against the main branch. Any other branch (unless specified by the maintainers) will get rejected.
  5. Check for existing issues first, before filing a new issue.

kalos's People

Contributors

nicolaspearson avatar renovate[bot] avatar wespen avatar

Watchers

 avatar  avatar

Forkers

wespen

kalos's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(): replace eslint-plugin-node with eslint-plugin-n 14.0.0 dev
  • chore(): pin eslint-import-resolver-node v0.3.9 dev
  • chore(): pin ts-jest v29.1.3 dev
  • chore(ewl): pin @types/common-tags v1.8.4 dev
  • chore(grpc-ts-health-check): pin @grpc/proto-loader v0.7.13
  • chore(grpc-ts-health-check): pin @types/google-protobuf v3.15.12 dev
  • chore(node-ts-uuid): pin jest monorepo dev (@types/jest, jest, jest-mock)
  • chore(node-ts-uuid): pin rimraf v5.0.7 dev
  • chore(workflows): pin darioblanco/release-wizard action vv2.0.4
  • fix(ewl): pin uuid v9.0.1 (uuid, @types/uuid)
  • fix(nest-typed-config-extended): pin @nestjs/common v9.4.3
  • fix(nest-typed-config-extended): pin class-validator v0.14.1
  • chore(): pin commitlint monorepo v17.8.1 dev (@commitlint/cli, @commitlint/config-conventional)
  • chore(): pin eslint v8.57.0 dev
  • chore(): pin eslint-config-prettier v8.10.0 dev
  • chore(): pin eslint-import-resolver-typescript v3.6.1 dev
  • chore(): pin eslint-plugin-import v2.29.1 dev
  • chore(): pin eslint-plugin-jest v27.9.0 dev
  • chore(): pin lint-staged v13.3.0 dev
  • chore(): pin markdownlint-cli v0.41.0 dev
  • chore(): pin pretty-quick v3.3.1 dev
  • chore(): pin typescript-eslint monorepo v5.62.0 dev (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • chore(grpc-ts-health-check): pin @grpc/grpc-js v1.10.8
  • chore(grpc-ts-health-check): pin protobufjs v7.3.0 dev
  • chore(workflows): pin ad-m/github-push-action action vv0.8.0
  • chore(workflows): pin mikefarah/yq action vv4.44.1
  • fix(ewl): pin express v4.19.2 (express, @types/express)
  • fix(ewl): pin logform v2.6.0
  • fix(ewl): pin reflect-metadata v0.2.2
  • fix(ewl): pin triple-beam v1.4.1 (triple-beam, @types/triple-beam)
  • fix(ewl): pin validator v13.12.0 (validator, @types/validator)
  • fix(ewl): pin winston-transport v4.7.0
  • fix(nest-typed-config-extended): pin nest-typed-config v2.9.3
  • chore(): pin commitlint monorepo v19 dev (major) (@commitlint/cli, @commitlint/config-conventional)
  • chore(): pin eslint v9 dev
  • chore(): pin eslint-config-prettier v9 dev
  • chore(): pin eslint-plugin-jest v28 dev
  • chore(): pin eslint-plugin-prettier v5 dev
  • chore(): pin eslint-plugin-unicorn v53 dev
  • chore(): pin husky v9 dev
  • chore(): pin lint-staged v15 dev
  • chore(): pin node v20 (node, @types/node)
  • chore(): pin prettier v3 dev (prettier, @types/prettier)
  • chore(): pin pretty-quick v4 dev
  • chore(): pin typescript-eslint monorepo v7 dev (major) (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • chore(): pin yarn v4
  • chore(workflows): pin actions/checkout action v4
  • chore(workflows): pin actions/dependency-review-action action v4
  • chore(workflows): pin actions/setup-node action v4
  • fix(nest-typed-config-extended): pin @nestjs/common v10
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/code.yaml
  • actions/checkout v3
  • actions/setup-node v3
  • darioblanco/release-wizard v2.0.3
.github/workflows/dependency-review.yaml
  • actions/checkout v3
  • actions/dependency-review-action v3
.github/workflows/markdown.yaml
  • actions/checkout v3
  • nosborn/github-action-markdown-cli v3.3.0
.github/workflows/publish.yaml
  • actions/checkout v3
  • actions/setup-node v3
  • mikefarah/yq v4.34.1
  • ad-m/github-push-action v0.6.0
npm
.yarn/sdks/eslint/package.json
.yarn/sdks/prettier/package.json
.yarn/sdks/typescript/package.json
package.json
  • @commitlint/cli 17.6.5
  • @commitlint/config-conventional 17.6.5
  • @types/express 4.17.17
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • @types/prettier 2.7.3
  • @types/validator 13.7.17
  • @typescript-eslint/eslint-plugin 5.59.8
  • @typescript-eslint/parser 5.59.8
  • eslint 8.41.0
  • eslint-config-prettier 8.8.0
  • eslint-import-resolver-node 0.3.7
  • eslint-import-resolver-typescript 3.5.5
  • eslint-plugin-eslint-comments 3.2.0
  • eslint-plugin-import 2.27.5
  • eslint-plugin-jest 27.2.1
  • eslint-plugin-node 11.1.0
  • eslint-plugin-ordered-imports 0.6.0
  • eslint-plugin-prettier 4.2.1
  • eslint-plugin-promise 6.1.1
  • eslint-plugin-unicorn 47.0.0
  • husky 8.0.3
  • jest 29.5.0
  • jest-mock 29.5.0
  • lint-staged 13.2.2
  • markdownlint-cli 0.34.0
  • prettier 2.8.8
  • pretty-quick 3.1.3
  • rimraf 5.0.1
  • run-script-webpack-plugin 0.2.0
  • ts-jest 29.1.0
  • typescript 5.0.4
  • winston-transport 4.5.0
  • node >=v16
  • yarn >=3.5.1
  • yarn 3.5.1
packages/ewl/package.json
  • async_hooks 1.0.0
  • class-transformer 0.5.1
  • class-validator 0.14.0
  • express 4.18.2
  • express-winston 4.2.0
  • logform 2.5.1
  • reflect-metadata 0.1.13
  • safe-stable-stringify 2.4.3
  • triple-beam 1.3.0
  • uuid 9.0.0
  • validator 13.9.0
  • winston 3.8.2
  • winston-transport 4.5.0
  • @types/common-tags 1.8.1
  • @types/express 4.17.17
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • @types/triple-beam 1.3.2
  • @types/uuid 9.0.1
  • @types/validator 13.7.17
  • common-tags 1.8.2
  • jest 29.5.0
  • rimraf 5.0.1
  • typescript 5.0.4
packages/grpc-boom/package.json
  • @grpc/grpc-js 1.8.14
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • jest 29.5.0
  • protobufjs 7.2.3
  • rimraf 5.0.1
  • typescript 5.0.4
  • @grpc/grpc-js 1.8.14
packages/grpc-ts-health-check/package.json
  • google-protobuf 3.21.2
  • @grpc/grpc-js 1.8.14
  • @grpc/proto-loader 0.7.7
  • @types/google-protobuf 3.15.6
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • jest 29.5.0
  • protobufjs 7.2.3
  • rimraf 5.0.1
  • typescript 5.0.4
  • @grpc/grpc-js 1.8.14
  • @grpc/proto-loader 0.7.7
packages/heart-ping/package.json
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • jest 29.5.0
  • rimraf 5.0.1
  • typescript 5.0.4
packages/nest-typed-config-extended/package.json
  • @nestjs/common 9.4.2
  • class-transformer 0.5.1
  • class-validator 0.14.0
  • nest-typed-config 2.5.2
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • jest 29.5.0
  • rimraf 5.0.1
  • typescript 5.0.4
packages/node-ts-uuid/package.json
  • @types/jest 29.5.2
  • @types/node 18.16.15
  • jest 29.5.0
  • rimraf 5.0.1
  • typescript 5.0.4
nvm
.nvmrc
  • node v18.16

  • Check this box to trigger a request for Renovate to run again on this repository

Installing with yarn produces error.

The command yarn add grpc-ts-health-check produces the error below. I can confirm that yarn add with an unrelated library works as expected. This issue only affects version 3 and above of grpc-ts-health-check.

Output from yarn-error.log.

Arguments: 
  /Users/taylor/.nvm/versions/node/v14.19.0/bin/node /usr/local/Cellar/yarn/1.22.17_2/libexec/bin/yarn.js add grpc-ts-health-check

PATH: 
  /Users/taylor/.rvm/gems/ruby-2.4.1/bin:/Users/taylor/.rvm/gems/ruby-2.4.1@global/bin:/Users/taylor/.rvm/rubies/ruby-2.4.1/bin:/Users/taylor/.nvm/versions/node/v14.19.0/bin:/usr/local/opt/postgresql@10/bin:/Users/taylor/.swiftenv/shims:/usr/local/opt/openssl/bin:/Users/taylor/Library/Android/sdk/platform-tools:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin:/Library/Apple/usr/bin:/Users/taylor/Code/Geo/diagnostic-service/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/taylor/Code/Scripts:/Users/taylor/Library/Python/2.7/bin:/Users/taylor/.rvm/bin

Yarn version: 
  1.22.17

Node version: 
  14.19.0

Platform: 
  darwin x64

Trace: 
  Error: https://registry.yarnpkg.com/%5E3.0.11: Not found
      at Request.params.callback [as _callback] (/usr/local/Cellar/yarn/1.22.17_2/libexec/lib/cli.js:67029:18)
      at Request.self.callback (/usr/local/Cellar/yarn/1.22.17_2/libexec/lib/cli.js:140883:22)
      at Request.emit (events.js:400:28)
      at Request.<anonymous> (/usr/local/Cellar/yarn/1.22.17_2/libexec/lib/cli.js:141855:10)
      at Request.emit (events.js:400:28)
      at IncomingMessage.<anonymous> (/usr/local/Cellar/yarn/1.22.17_2/libexec/lib/cli.js:141777:12)
      at Object.onceWrapper (events.js:519:28)
      at IncomingMessage.emit (events.js:412:35)
      at endReadableNT (internal/streams/readable.js:1334:12)
      at processTicksAndRejections (internal/process/task_queues.js:82:21)

Happy to provide any other information. Thank you in advance.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: The following managers configured in enabledManagers are not supported: "github"

CI Improvement: Reuse workflows

Overview

The base and publish workflows are similar across all packages. Find a way to reuse this via configuration variables.

Ideas:

  • Create a new github action that accepts parameters
  • Generate workflows using a custom implementation, e.g. ytt

Update @types/node to 17

Please update @types/node to latest one so we can use it in Nove 18.

This is the error on npm i

npm ERR! node_modules/@types/node
npm ERR!   dev @types/node@"17.0.21" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer @types/node@"^16.11.26" from grpc-ts-health-check@3.0.2
npm ERR! node_modules/grpc-ts-health-check
npm ERR!   grpc-ts-health-check@"3.0.2" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry

CI Improvement: Base workflows triggers

Overview

Do not trigger the base workflow when the version in the package.json file is bumped

Description

Currently the base workflow is triggered when the CI updates the package.json in the publish workflow. This is unnecessary and should be avoided.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.