GithubHelp home page GithubHelp logo

jackvincentnz / lab Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 4.09 MB

Mono repo for experimenting with personal projects

Home Page: https://jack.geek.nz/lab/

License: MIT License

Starlark 37.36% TypeScript 16.22% Java 42.16% JavaScript 0.75% HTML 1.48% CSS 1.70% Shell 0.32%
bazel html java javascript react typescript

lab's People

Contributors

jackvincentnz avatar renovate[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

lab's Issues

Include features of the mono repo

  • overview of commit message linting
  • other commit hooks
  • why mono repos are helpful
  • schematics
  • onboarding time
  • build time
  • test time
  • ci
  • feedback loops

Add CONRIBUTING.md

Things to consider:

  • commit message guidelines
  • pr process
  • build & test etc.
  • when to merge

Setup CI

Determine how to build and test solution in Github actions.

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(deps): update distroless_java docker digest to 97db68b
  • chore(deps): update dependency vite to v5.1.6
  • chore(deps): update dependency bazel to v7.1.0
  • chore(deps): update typescript-eslint monorepo to v7.2.0 (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • chore(deps): update storybook monorepo to v8 (major) (@storybook/addon-essentials, @storybook/addon-interactions, @storybook/addon-links, @storybook/blocks, @storybook/react, @storybook/react-vite, storybook)
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Errored

These updates encountered an error and will be retried. Click on a checkbox below to force a retry now.

  • chore(deps): update dependency @vitejs/plugin-react to v4.2.1

Open

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

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

bazel
WORKSPACE
  • aspect_bazel_lib v2.5.1
  • rules_proto 5.3.0-21.7
  • contrib_rules_jvm v0.24.0
  • rules_spring 2.3.1
  • rules_nodejs v6.0.5
  • aspect_rules_ts v2.2.0
  • aspect_rules_jest v0.17.0
  • io_bazel_rules_go v0.46.0
  • bazel_gazelle v0.35.0
  • rules_oci v1.7.4
  • distroless_java sha256:68e2373f7bef9486c08356bd9ffd3b40b56e6b9316c5f6885eb58b1d9093b43d
  • rules_pkg 0.10.1
  • aspect_rules_swc v1.2.2
  • aspect_rules_cypress v0.3.2
  • rules_multirun 0.8.1
bazelisk
.bazelversion
  • bazel 7.0.2
docker-compose
infra/local/docker-compose.yml
  • confluentinc/cp-zookeeper 7.6.0
  • confluentinc/cp-kafka 7.6.0
  • confluentinc/cp-schema-registry 7.6.0
  • ghcr.io/apollographql/router v1.40.1
learn/kafka/docker-compose.yml
  • confluentinc/cp-zookeeper 7.6.0
  • confluentinc/cp-kafka 7.6.0
  • confluentinc/cp-schema-registry 7.6.0
learn/kafka_transactional/docker-compose.yml
  • confluentinc/cp-zookeeper 7.6.0
  • confluentinc/cp-kafka 7.6.0
github-actions
.github/workflows/main.yml
  • jlumbroso/free-disk-space v1.3.1
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • actions/cache v4
  • codecov/codecov-action v3
  • actions/checkout v4@b4ffde65f46336ab88eb53be808477a3936bae11
  • actions/setup-java v4
  • actions/setup-python v5
  • pre-commit/action v3.0.1
npm
apps/journal_app/package.json
apps/tasklist/package.json
learn/vite/package.json
libs/bubbles/package.json
  • @mantine/core ^7.5.1
  • @mantine/hooks ^7.5.1
  • @tabler/icons-react ^2.24.0
  • react ^18.2.0
package.json
  • @apollo/client 3.9.5
  • @graphql-typed-document-node/core ^3.2.0
  • @mantine/core 7.5.1
  • @mantine/hooks 7.5.1
  • @tabler/icons-react 2.47.0
  • graphql 16.8.1
  • react ^18.2.0
  • react-dom ^18.2.0
  • web-vitals 3.5.2
  • @apollo/rover ^0.22.0
  • @graphql-codegen/cli 5.0.2
  • @graphql-codegen/client-preset 4.2.4
  • @jest/globals ^29.7.0
  • @storybook/addon-essentials 7.6.17
  • @storybook/addon-interactions 7.6.17
  • @storybook/addon-links 7.6.17
  • @storybook/blocks 7.6.17
  • @storybook/react 7.6.17
  • @storybook/react-vite 7.6.17
  • @storybook/testing-library 0.2.2
  • @testcontainers/kafka 10.7.2
  • @testing-library/jest-dom 6.4.2
  • @testing-library/react 14.2.1
  • @testing-library/user-event 14.5.2
  • @types/dockerode 3.3.24
  • @types/node 18.19.21
  • @types/react 18.2.63
  • @types/react-dom 18.2.20
  • @typescript-eslint/eslint-plugin 7.1.1
  • @typescript-eslint/parser 7.1.1
  • @vitejs/plugin-react 4.2.1
  • @vitest/ui 1.3.1
  • cypress 12.17.4
  • dockerode 4.0.2
  • eslint 8.57.0
  • eslint-config-prettier ^9.0.0
  • eslint-plugin-react 7.34.0
  • jest-cli 29.7.0
  • jest-environment-jsdom 29.7.0
  • jest-junit ^16.0.0
  • jest-transform-stub ^2.0.0
  • jsdom 24.0.0
  • prettier 3.2.5
  • storybook 7.6.17
  • testcontainers 10.7.2
  • tsconfig-to-swcconfig 2.7.0
  • typescript 5.3.3
  • vite 5.1.5
  • vitest 1.3.1
  • pnpm >=8.11.0
  • node >=18.18.0

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

Setup application schematic

New applications should be created in /projects with common defaults.

E.g. as strict as possible, with routing etc.

Example of sharing state between multiple isolated page views

E.g using something like apollo cache, or even suggesting we shouldn't do this and instead load all of the page state all in one query?

A common example is a list of objects, and then a details panel that allows editing of the values of the items in the list. How to manage updates to the list when the values are changed in the form in the details?

Ideally the details feature doesn't even know that there are other features that depend on the same state.

Document optimized development process

Draw out diagram of the optimized development workflow from onboarding through to production delivery

  • Optimized environment setup
  • Optimized getting started building / testing
  • Optimized running
  • Optimized feedback loops (build, test, commit, pr, merge)
  • Optimized shipping delivery to production
  • What feedback occurs at what stages of build
  • How we mitigate issues getting into the trunk

etc.

Setup typescript macros

ts_project should be wrapped to supply common inputs for node/web ts projects, and isolate solution code from change in rules_nodejs

Can yarn install be avoided?

Is it possible, and worth it to avoid having to yarn on the solution root?

In place of this can bazel build //... be used instead to install yarn and then make it available to all of the build tooling?

E.g. can commit hooks still work this way? Can they use bazel installed npm packages etc.?

Investigate value of launches and tasks from VSCode

Angular launch config:

{
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "ng serve",
      "type": "pwa-chrome",
      "request": "launch",
      "preLaunchTask": "npm: start",
      "url": "http://localhost:4200/"
    },
    {
      "name": "ng test",
      "type": "chrome",
      "request": "launch",
      "preLaunchTask": "npm: test",
      "url": "http://localhost:9876/debug.html"
    }
  ]
}

Angular task config:

{
  // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
  "version": "2.0.0",
  "tasks": [
    {
      "type": "npm",
      "script": "start",
      "isBackground": true,
      "problemMatcher": {
        "owner": "typescript",
        "pattern": "$tsc",
        "background": {
          "activeOnStart": true,
          "beginsPattern": {
            "regexp": "(.*?)"
          },
          "endsPattern": {
            "regexp": "bundle generation complete"
          }
        }
      }
    },
    {
      "type": "npm",
      "script": "test",
      "isBackground": true,
      "problemMatcher": {
        "owner": "typescript",
        "pattern": "$tsc",
        "background": {
          "activeOnStart": true,
          "beginsPattern": {
            "regexp": "(.*?)"
          },
          "endsPattern": {
            "regexp": "bundle generation complete"
          }
        }
      }
    }
  ]
}

Add commit linting

It should be impossible to commit files that are not meeting the existing style of the repo.

  • Add prettier
  • Run linting and formatting on commit

Move generation targets into fe_library

Currently there is a weird circle from the graphql documents, out to the generation dir, back to the ts compilation in the lib.

This could be resolved by generated the graphql lib within the fe_library instead.

Tidy up coverage

  • Ensure we are including sources which we want to know coverage for, even if there are no tests at all for those sources.
  • Include FE sources in coverage outputs.
  • Optimize build time for coverage generation, ensuring that production outputs don't include coverage instrumentation.

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.